1 16 17 18 package org.apache.commons.modeler.ant; 19 20 21 import java.io.File ; 22 import java.io.FileOutputStream ; 23 import java.io.ObjectOutputStream ; 24 import java.net.URL ; 25 26 import org.apache.commons.logging.Log; 27 import org.apache.commons.logging.LogFactory; 28 import org.apache.commons.modeler.ManagedBean; 29 import org.apache.commons.modeler.Registry; 30 import org.apache.tools.ant.BuildException; 31 32 37 public final class RegistryTask { 38 private static Log log = LogFactory.getLog(RegistryTask.class); 39 40 public RegistryTask() { 41 } 42 43 String resource; 44 String file; 45 String type="MbeansDescriptorsDOMSource"; 46 47 51 public void setType( String type ) { 52 this.type=type; 53 } 54 55 public void setFile( String file ) { 56 this.file=file; 57 } 58 59 public void setResource( String res ) { 60 this.resource=res; 61 } 62 63 String outFile; 64 65 public void setOut( String outFile ) { 66 this.outFile=outFile; 67 } 68 69 public void execute() throws Exception { 70 URL url=null; 71 72 if( resource != null ) { 73 url=this.getClass().getClassLoader().getResource(resource); 74 } else if( file != null ) { 75 File f=new File (file); 76 url=new URL ("file", null, f.getAbsolutePath()); 77 } else { 78 throw new BuildException( "Resource or file attribute required"); 79 } 80 81 Registry.getRegistry().loadDescriptors( type, url, null); 82 83 if( outFile !=null ) { 84 FileOutputStream fos=new FileOutputStream (outFile); 85 ObjectOutputStream oos=new ObjectOutputStream (fos); 86 Registry reg=Registry.getRegistry(); 87 String beans[]=reg.findManagedBeans(); 88 ManagedBean mbeans[]=new ManagedBean[beans.length]; 89 for( int i=0; i<beans.length; i++ ) { 90 mbeans[i]=reg.findManagedBean(beans[i]); 91 } 92 oos.writeObject( mbeans ); 93 oos.flush(); 94 oos.close(); 95 fos.close(); 96 } 97 } 98 } 99 | Popular Tags |