You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by aj...@apache.org on 2005/12/20 08:14:22 UTC
svn commit: r357931 - in
/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen:
CodeGenerationEngine.java codegen-config.properties
extension/AbstractDBProcessingExtension.java
extension/DefaultDatabindingExtension.java
Author: ajith
Date: Mon Dec 19 23:14:10 2005
New Revision: 357931
URL: http://svn.apache.org/viewcvs?rev=357931&view=rev
Log:
reverting the change by Dims (Sorry dims, the proposed change does not solve all the cases, especially when the user says -adb none then the defaulttypemapper is not set
1. Added the DefaultDatabindingExtension.java
2. changed the codegen-config.properties
3. updated the AbstractDBProcessingExtension.java changing the change by dims
Added:
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/DefaultDatabindingExtension.java
Modified:
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/AbstractDBProcessingExtension.java
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java?rev=357931&r1=357930&r2=357931&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java Mon Dec 19 23:14:10 2005
@@ -60,7 +60,6 @@
for (int i = 0; i < extensions.length; i++) {
//load the Extension class
addExtension((CodeGenExtension)getObjectFromClassName(extensions[i]));
-
}
}
@@ -78,20 +77,23 @@
}
Emitter emitter;
+
+
TypeMapper mapper = configuration.getTypeMapper();
if (mapper==null){
- //this shouldn't happen
+ // this check is redundant here. The default databinding extension should
+ // have already figured this out and thrown an error message. However in case the
+ // users mess with the config it is safe to keep this check in order to throw
+ // a meaningful error message
throw new CodeGenerationException("No proper databinding has taken place");
}
-
+
Map emitterMap = ConfigPropertyFileLoader.getLanguageEmitterMap();
String className = emitterMap.get(configuration.getOutputLanguage()).toString();
if (className!=null){
-
emitter = (Emitter)getObjectFromClassName(className);
emitter.setCodeGenConfiguration(configuration);
emitter.setMapper(mapper);
-
}else{
throw new Exception("Emitter class not found!");
}
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties?rev=357931&r1=357930&r2=357931&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties Mon Dec 19 23:14:10 2005
@@ -3,7 +3,9 @@
#######################################################################################################################
# Extensions - The extensions are comma separated
# 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.SimpleDBExtension
+# Note the last extension - It includes a check to figure out whether proper databinding has taken place
+# This extension should appear AFTER all the databinding extensions inorder to function properly
+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.SimpleDBExtension,org.apache.axis2.wsdl.codegen.extension.DefaultDatabindingExtension
#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.SimpleDBExtension
# The third party schemas to be loaded. e.g. The Xmime extension
# Note - these will be loaded from the org.apache.axis2.wsdl.codegen.schema package.
@@ -19,7 +21,7 @@
# the related extensions for the specified data binding frameworks above
# Note - these are in the lexical order of the framework names. There is an implicit assumption
# that a given databinding framework will be processed only by one extension
-codegen.databinding.extensions=org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension,org.apache.axis2.wsdl.codegen.extension.XMLBeansExtension
+codegen.databinding.extensions=org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension,org.apache.axis2.wsdl.codegen.extension.XMLBeansExtension,org.apache.axis2.wsdl.codegen.extension.DefaultDatabindingExtension
# the default data binding framework name
codegen.databinding.frameworks.default=adb
#####################################################################################################################
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/AbstractDBProcessingExtension.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/AbstractDBProcessingExtension.java?rev=357931&r1=357930&r2=357931&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/AbstractDBProcessingExtension.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/AbstractDBProcessingExtension.java Mon Dec 19 23:14:10 2005
@@ -30,10 +30,8 @@
*/
protected boolean testFallthrough(String dbFrameworkName){
Map extensionsMap = ConfigPropertyFileLoader.getDatabindingFrameworkNameToExtensionMap();
- Object mappedExtension=extensionsMap.get(dbFrameworkName);
- if(mappedExtension == null)
- return true;
- return !(getClass().getName().equals(mappedExtension.toString()));
+ String mappedExtension=extensionsMap.get(dbFrameworkName)!=null?extensionsMap.get(dbFrameworkName).toString():"";
+ return !(getClass().getName().equals(mappedExtension));
}
}
Added: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/DefaultDatabindingExtension.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/DefaultDatabindingExtension.java?rev=357931&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/DefaultDatabindingExtension.java (added)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/DefaultDatabindingExtension.java Mon Dec 19 23:14:10 2005
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.axis2.wsdl.codegen.extension;
+
+import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
+import org.apache.axis2.wsdl.codegen.CodeGenerationException;
+import org.apache.axis2.wsdl.codegen.XSLTConstants;
+import org.apache.axis2.wsdl.databinding.DefaultTypeMapper;
+import org.apache.axis2.wsdl.databinding.TypeMapper;
+
+public class DefaultDatabindingExtension extends AbstractDBProcessingExtension{
+ private CodeGenConfiguration configuration;
+ public void init(CodeGenConfiguration configuration) {
+ this.configuration = configuration;
+ }
+
+ public void engage() throws CodeGenerationException {
+ TypeMapper mappper = configuration.getTypeMapper();
+ if (testFallthrough(configuration.getDatabindingType())){
+ //if it's fall through for the default databinding extension and a mapper has
+ //not yet being set, then there's a problem.
+ //Hence check the mapper status here
+
+ if (mappper==null){
+ //this shouldn't happen
+ throw new CodeGenerationException("No proper databinding has taken place");
+ }
+ return;
+ }
+
+ configuration.setTypeMapper(new DefaultTypeMapper());
+ }
+}