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;
+ }
+}