Author: ajith
Date: Thu Aug 25 03:50:10 2005
New Revision: 240042

URL: http://svn.apache.org/viewcvs?rev=240042&view=rev
Log:
Updated the codegen engine to laod the extensions from a property file

Added:
    
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/codegen-config.properties
    
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/util/ConfigPropertyFileLoader.java
Modified:
    
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java

Modified: 
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java
URL: 
http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java?rev=240042&r1=240041&r2=240042&view=diff
==============================================================================
--- 
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java
 (original)
+++ 
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java
 Thu Aug 25 03:50:10 2005
@@ -22,6 +22,7 @@
 import org.apache.axis2.wsdl.codegen.emitter.JavaEmitter;

 import org.apache.axis2.wsdl.codegen.extension.*;

 import org.apache.axis2.wsdl.databinding.TypeMapper;

+import org.apache.axis2.wsdl.util.ConfigPropertyFileLoader;

 import org.apache.wsdl.WSDLDescription;

 

 import javax.wsdl.WSDLException;

@@ -57,22 +58,29 @@
         loadExtensions();

     }

 

-    private void loadExtensions() {

-        //Ideally these extensions should be loaded through a configuration 
taken

-        //from some external location. Say a config file.

-        addExtension(new AxisBindingBuilder());

-        addExtension(new WSDLValidatorExtension());

-        addExtension(new PackageFinder());

-        //Xbeans extension

-        addExtension(new XMLBeansExtension());

-        //simple databinding extension

-        //addExtension(new SimpleDBExtension());

-        //default extension. Does the cleanup

-        addExtension(new DefaultDatabindingExtension());

+    private void loadExtensions() throws CodeGenerationException{

+        try {

+            String[] extensions = 
ConfigPropertyFileLoader.getExtensionClassNames();

+            Class extensionClass;

+            for (int i = 0; i < extensions.length; i++) {

+                //load the Extension class

+                extensionClass = 
this.getClass().getClassLoader().loadClass(extensions[i]);

+                addExtension((CodeGenExtension)extensionClass.newInstance());

+

+            }

+        } catch (ClassNotFoundException e) {

+            throw new CodeGenerationException("Extension class loading 
problem",e);

+        } catch (InstantiationException e) {

+            throw new CodeGenerationException("Extension class instantiation 
problem",e);

+        } catch (IllegalAccessException e) {

+            throw new CodeGenerationException("Illegal extension!",e);

+        } catch (Exception e) {

+            throw new CodeGenerationException(e);

+        }

 

     }

 

-    private void addExtension(AbstractCodeGenerationExtension ext){

+    private void addExtension(CodeGenExtension ext){

         ext.init(this.configuration);

         this.moduleEndpoints.add(ext);

     }


Added: 
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/codegen-config.properties
URL: 
http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/codegen-config.properties?rev=240042&view=auto
==============================================================================
--- 
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/codegen-config.properties
 (added)
+++ 
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/codegen-config.properties
 Thu Aug 25 03:50:10 2005
@@ -0,0 +1,6 @@
+#######################################################################################################################

+#####################   code generator property file  
#################################################################

+#######################################################################################################################

+#Extensions - The extensions are comma seperated

+#these are loaded in their lexical order

+codegen.extension=org.apache.axis2.wsdl.codegen.extension.AxisBindingBuilder,org.apache.axis2.wsdl.codegen.extension.WSDLValidatorExtension,org.apache.axis2.wsdl.codegen.extension.PackageFinder,org.apache.axis2.wsdl.codegen.extension.XMLBeansExtension,org.apache.axis2.wsdl.codegen.extension.DefaultDatabindingExtension
\ No newline at end of file

Added: 
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/util/ConfigPropertyFileLoader.java
URL: 
http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/util/ConfigPropertyFileLoader.java?rev=240042&view=auto
==============================================================================
--- 
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/util/ConfigPropertyFileLoader.java
 (added)
+++ 
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/util/ConfigPropertyFileLoader.java
 Thu Aug 25 03:50:10 2005
@@ -0,0 +1,39 @@
+package org.apache.axis2.wsdl.util;

+

+import java.io.InputStream;

+import java.io.IOException;

+import java.util.Properties;

+

+/**

+ * Tries to load the properties from the config properties

+ */

+public class ConfigPropertyFileLoader {

+

+    private static String[] extensionClassNames;

+

+    private static final String CODE_GEN_KEY = "codegen.extension";

+

+    static{

+        try {

+            InputStream stream = 
Object.class.getResourceAsStream("/org/apache/axis2/wsdl/codegen/codegen-config.properties");

+            Properties props = new Properties();

+            props.load(stream);

+

+            String codeGenExtensionClasses = props.getProperty(CODE_GEN_KEY);

+            if (codeGenExtensionClasses!=null){

+                extensionClassNames = codeGenExtensionClasses.split(",");

+

+            }

+

+

+

+        } catch (IOException e) {

+           throw new RuntimeException(e);

+        }

+

+    }

+

+    public static String[] getExtensionClassNames() {

+        return extensionClassNames;

+    }

+}



Reply via email to