You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ds...@apache.org on 2006/09/22 01:49:14 UTC
svn commit: r448744 - in
/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl:
codegen/ codegen/emitter/ codegen/extension/ util/
Author: dsosnoski
Date: Thu Sep 21 16:49:13 2006
New Revision: 448744
URL: http://svn.apache.org/viewvc?view=rev&rev=448744
Log:
Added config property to support databinding code handling unwrapping, code generation options for databinding code generating methods for operation
Modified:
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/emitter/AxisServiceBasedMultiLanguageEmitter.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/JiBXExtension.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/SchemaUnwrapperExtension.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/ConfigPropertyFileLoader.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/Constants.java
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties?view=diff&rev=448744&r1=448743&r2=448744
==============================================================================
--- 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 Thu Sep 21 16:49:13 2006
@@ -33,7 +33,10 @@
codegen.databinding.frameworks=adb,xmlbeans,jaxme,jibx,jaxbri,none
# this property keeps the names of the databinding frameworks which support
# unwrapping
-codegen.databinding.unwrap.supported=adb,xmlbeans
+codegen.databinding.unwrap.supported=adb,xmlbeans,jibx
+# this property keeps the names of the databinding frameworks that handle unwrapping
+# directly (rather than by using the unwrapper extension)
+codegen.databinding.unwrap.direct=jibx
# 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
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java?view=diff&rev=448744&r1=448743&r2=448744
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java Thu Sep 21 16:49:13 2006
@@ -19,6 +19,7 @@
import org.apache.neethi.Policy;
import org.apache.ws.commons.schema.XmlSchema;
+import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -894,7 +895,8 @@
Document classModel = createDocumentForMessageReceiver(
mep,
codeGenConfiguration.isServerSideInterface());
- debugLogDocument("Document for message receiver:", classModel);
+ debugLogDocument("Document for message receiver (mep=" + mep +
+ "):", classModel);
//write the class only if any methods are found
if (Boolean.TRUE.equals(infoHolder.get(mep))) {
MessageReceiverWriter writer =
@@ -1045,20 +1047,32 @@
//at this point we may need to capture the extra parameters passes to the
//particular databinding framework
- //these parameters showup in the property map and we can just copy these items over
- //to an extra element.
+ //these parameters showup in the property map with String keys, and we
+ //can just copy these items over to the <extra> element.
+ //this code allows both simple values, which are written as name="value"
+ //attributes of the <extra> element, and Element values with property
+ //names starting with "databinders/extra", which are written as child
+ //elements of the <extra> element (with the property name unused, in
+ //this case)
Element extraElement = addElement(doc, "extra", null, rootElement);
Map propertiesMap = codeGenConfiguration.getProperties();
- for (Iterator it = propertiesMap.keySet().iterator();
- it.hasNext();){
+ for (Iterator it = propertiesMap.keySet().iterator(); it.hasNext();){
Object key = it.next();
- Object value = propertiesMap.get(key);
- //if the value is null set it to empty string
- if (value==null) value="";
- //add the property to the extra element only if both
- //are strings
- if (key instanceof String && value instanceof String){
- addAttribute(doc,(String)key,(String)value, extraElement);
+ if (key instanceof String) {
+ Object value = propertiesMap.get(key);
+ if (value instanceof Element) {
+ if (((String)key).startsWith("databinders/extra")) {
+ // append child element
+ extraElement.appendChild(doc.importNode((Element)value, true));
+ }
+ } else {
+ //if the value is null set it to empty string
+ if (value==null) value="";
+ //add key="value" attribute to element iff value a string
+ if (value instanceof String){
+ addAttribute(doc,(String)key,(String)value, extraElement);
+ }
+ }
}
}
@@ -1386,98 +1400,16 @@
if (mep == null) {
opsFound = true;
-
- List soapHeaderInputParameterList = new ArrayList();
- List soapHeaderOutputParameterList = new ArrayList();
-
- methodElement = doc.createElement("method");
-
- String localPart = axisOperation.getName().getLocalPart();
-
- addAttribute(doc, "name", localPart, methodElement);
- addAttribute(doc, "namespace", axisOperation.getName().getNamespaceURI(), methodElement);
- String style = axisOperation.getStyle();
- addAttribute(doc, "style", style, methodElement);
- addAttribute(doc, "dbsupportname", portTypeName + localPart + DATABINDING_SUPPORTER_NAME_SUFFIX,
- methodElement);
-
-
- addAttribute(doc, "mep", Utils.getAxisSpecifMEPConstant(axisOperation.getMessageExchangePattern()) + "", methodElement);
- addAttribute(doc, "mepURI", axisOperation.getMessageExchangePattern(), methodElement);
-
-
- addSOAPAction(doc, methodElement, axisOperation);
- addOutputAndFaultActions(doc, methodElement, axisOperation);
- //add header ops for input
- addHeaderOperations(soapHeaderInputParameterList, axisOperation, true);
- //add header ops for output
- addHeaderOperations(soapHeaderOutputParameterList, axisOperation, false);
-
- PolicyInclude policyInclude = axisOperation.getPolicyInclude();
- Policy policy = policyInclude.getPolicy();
-
-
- if (policy != null) {
- try {
- addAttribute(doc, "policy", PolicyUtil.policyComponentToString(policy), methodElement);
- } catch (Exception ex) {
- throw new RuntimeException(" Can't serialize the policy ..");
- }
- }
-
- methodElement.appendChild(getInputElement(doc, axisOperation, soapHeaderInputParameterList));
- methodElement.appendChild(getOutputElement(doc, axisOperation, soapHeaderOutputParameterList));
- methodElement.appendChild(getFaultElement(doc, axisOperation));
-
+ methodElement = generateMethodElement(doc, portTypeName, axisOperation);
rootElement.appendChild(methodElement);
+
} else {
//mep is present - we move ahead only if the given mep matches the mep of this operation
if (mep.equals(axisOperation.getMessageExchangePattern())) {
//at this point we know it's true
opsFound = true;
- List soapHeaderInputParameterList = new ArrayList();
- List soapHeaderOutputParameterList = new ArrayList();
- methodElement = doc.createElement("method");
- String localPart = axisOperation.getName().getLocalPart();
-
- addAttribute(doc, "name", localPart, methodElement);
- addAttribute(doc, "namespace", axisOperation.getName().getNamespaceURI(), methodElement);
- addAttribute(doc, "style", axisOperation.getStyle(), methodElement);
- addAttribute(doc, "dbsupportname", portTypeName + localPart + DATABINDING_SUPPORTER_NAME_SUFFIX,
- methodElement);
-
- addAttribute(doc, "mep", Utils.getAxisSpecifMEPConstant(axisOperation.getMessageExchangePattern()) + "", methodElement);
- addAttribute(doc, "mepURI", axisOperation.getMessageExchangePattern(), methodElement);
-
-
- addSOAPAction(doc, methodElement, axisOperation);
- addOutputAndFaultActions(doc, methodElement, axisOperation);
- addHeaderOperations(soapHeaderInputParameterList, axisOperation, true);
- addHeaderOperations(soapHeaderOutputParameterList, axisOperation, false);
-
- /*
- * Setting the policy of the operation
- */
-
- Policy policy = axisOperation.getPolicyInclude().getPolicy();
- if (policy != null) {
- try {
- addAttribute(doc, "policy",
- PolicyUtil.policyComponentToString(policy),
- methodElement);
- } catch (Exception ex) {
- throw new RuntimeException("can't serialize the policy ..");
- }
- }
-
-
- methodElement.appendChild(getInputElement(doc,
- axisOperation, soapHeaderInputParameterList));
- methodElement.appendChild(getOutputElement(doc,
- axisOperation, soapHeaderOutputParameterList));
- methodElement.appendChild(getFaultElement(doc,
- axisOperation));
+ methodElement = generateMethodElement(doc, portTypeName, axisOperation);
rootElement.appendChild(methodElement);
//////////////////////
@@ -1487,6 +1419,69 @@
}
return opsFound;
+ }
+
+ /**
+ * Common code to generate a <method> element from an operation.
+ *
+ * @param doc
+ * @param portTypeName
+ * @param axisOperation
+ * @return generated element
+ * @throws DOMException
+ */
+ private Element generateMethodElement(Document doc, String portTypeName, AxisOperation axisOperation) throws DOMException {
+ Element methodElement;
+ List soapHeaderInputParameterList = new ArrayList();
+ List soapHeaderOutputParameterList = new ArrayList();
+ methodElement = doc.createElement("method");
+ String localPart = axisOperation.getName().getLocalPart();
+
+ addAttribute(doc, "name", localPart, methodElement);
+ addAttribute(doc, "namespace", axisOperation.getName().getNamespaceURI(), methodElement);
+ addAttribute(doc, "style", axisOperation.getStyle(), methodElement);
+ addAttribute(doc, "dbsupportname", portTypeName + localPart + DATABINDING_SUPPORTER_NAME_SUFFIX,
+ methodElement);
+ addAttribute(doc, "mep", Utils.getAxisSpecifMEPConstant(axisOperation.getMessageExchangePattern()) + "", methodElement);
+ addAttribute(doc, "mepURI", axisOperation.getMessageExchangePattern(), methodElement);
+
+ // check for this operation to be handled directly by databinding code generation
+ Parameter dbmethname = axisOperation.getParameter(Constants.DATABINDING_GENERATED_RECEIVER);
+ if (dbmethname != null) {
+ addAttribute(doc, "usedbmethod", (String)dbmethname.getValue(), methodElement);
+ }
+ Parameter dbgenimpl = axisOperation.getParameter(Constants.DATABINDING_GENERATED_IMPLEMENTATION);
+ if (dbgenimpl != null && Boolean.TRUE.equals(dbgenimpl.getValue())) {
+ addAttribute(doc, "usdbimpl", "true", methodElement);
+ }
+
+ addSOAPAction(doc, methodElement, axisOperation);
+ addOutputAndFaultActions(doc, methodElement, axisOperation);
+ addHeaderOperations(soapHeaderInputParameterList, axisOperation, true);
+ addHeaderOperations(soapHeaderOutputParameterList, axisOperation, false);
+
+ /*
+ * Setting the policy of the operation
+ */
+ Policy policy = axisOperation.getPolicyInclude().getPolicy();
+ if (policy != null) {
+ try {
+ addAttribute(doc, "policy",
+ PolicyUtil.policyComponentToString(policy),
+ methodElement);
+ } catch (Exception ex) {
+ throw new RuntimeException("can't serialize the policy ..");
+ }
+ }
+
+
+ methodElement.appendChild(getInputElement(doc,
+ axisOperation, soapHeaderInputParameterList));
+ methodElement.appendChild(getOutputElement(doc,
+ axisOperation, soapHeaderOutputParameterList));
+ methodElement.appendChild(getFaultElement(doc,
+ axisOperation));
+ return methodElement;
}
// ==================================================================
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/JiBXExtension.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/JiBXExtension.java?view=diff&rev=448744&r1=448743&r2=448744
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/JiBXExtension.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/JiBXExtension.java Thu Sep 21 16:49:13 2006
@@ -16,28 +16,24 @@
package org.apache.axis2.wsdl.codegen.extension;
-import org.apache.axis2.description.AxisMessage;
-import org.apache.axis2.description.AxisOperation;
-import org.apache.axis2.wsdl.WSDLConstants;
-import org.apache.axis2.wsdl.WSDLUtil;
-import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
-import org.apache.axis2.wsdl.databinding.TypeMapper;
-import org.apache.ws.commons.schema.XmlSchemaElement;
-
-import javax.xml.namespace.QName;
import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Iterator;
+import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
+
+/**
+ * Code generation data binding extension for JiBX support. JiBX currently
+ * requires a predefined binding definition to be supplied in order to be used
+ * with Axis2.
+ */
public class JiBXExtension extends AbstractDBProcessingExtension {
+ /** Name of "extra" option used to supply binding definition path. */
public static final String BINDING_PATH_OPTION = "bindingfile";
- public static final String UNWRAP_OPTION = "unwrap";
- public static final String JIBX_MODEL_CLASS =
+ private static final String JIBX_MODEL_CLASS =
"org.jibx.binding.model.BindingElement";
- public static final String JIBX_UTILITY_CLASS =
+ private static final String JIBX_UTILITY_CLASS =
"org.apache.axis2.jibx.CodeGenerationUtility";
- public static final String BINDING_MAP_METHOD = "getBindingMap";
+ private static final String JIBX_UTILITY_METHOD = "engage";
public void engage(CodeGenConfiguration configuration) {
@@ -49,8 +45,8 @@
// check the JiBX binding definition file specified
String path = (String)configuration.getProperties().get(BINDING_PATH_OPTION);
if (path == null) {
- throw new RuntimeException("jibx binding option requires -" +
- BINDING_PATH_OPTION + " {file path} parameter");
+ throw new RuntimeException("jibx binding option currently requires -" +
+ BINDING_PATH_OPTION + " {file-path} parameter");
}
try {
@@ -69,25 +65,10 @@
throw new RuntimeException("JiBX binding extension not in classpath");
}
- // check if unwrapping message elements
- boolean unwrap = configuration.getProperties().containsKey(UNWRAP_OPTION);
-
- // get all elements for operations, and matching type definitions
- HashMap defsmap = new HashMap();
- Iterator operations = configuration.getAxisService().getOperations();
- while (operations.hasNext()) {
- AxisOperation o = (AxisOperation)operations.next();
- accumulateElements(o, defsmap, configuration);
- }
-
// invoke utility class method for actual processing
- Method method = clazz.getMethod(BINDING_MAP_METHOD,
- new Class[] { String.class, HashMap.class, boolean.class });
- TypeMapper mapper = (TypeMapper)method.invoke(null,
- new Object[] { path, defsmap, Boolean.valueOf(unwrap) });
-
- // set the type mapper to the config
- configuration.setTypeMapper(mapper);
+ Method method = clazz.getMethod(JIBX_UTILITY_METHOD,
+ new Class[] { String.class, CodeGenConfiguration.class });
+ method.invoke(null, new Object[] { path, configuration });
/* // invoke utility class method for actual processing
Method method = clazz.getMethod(BINDING_MAP_METHOD,
@@ -135,45 +116,5 @@
}
}
- }
-
- /**
- * Accumulate the QNames of all message elements used by an interface. Based on
- *
- * @param op
- * @param config
- * @param elements
- */
- private void accumulateElements(AxisOperation op, HashMap defsmap, CodeGenConfiguration config) {
- String MEP = op.getMessageExchangePattern();
- if (WSDLUtil.isInputPresentForMEP(op.getMessageExchangePattern())) {
- AxisMessage msg = op.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
- if (msg != null) {
- addElementType(msg, defsmap, config);
- }
- }
-
- if (WSDLUtil.isOutputPresentForMEP(op.getMessageExchangePattern())) {
- AxisMessage msg = op.getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
- if (msg != null) {
- addElementType(msg, defsmap, config);
- }
- }
- }
-
- /**
- * Add message element information to schema definition mappings.
- *
- * @param msg
- * @param defsmap
- * @param configuration
- */
- private void addElementType(AxisMessage msg, HashMap defsmap, CodeGenConfiguration config) {
- QName qname = msg.getElementQName();
- XmlSchemaElement element =
- config.getAxisService().getSchemaElement(qname);
- if (qname != null) {
- defsmap.put(qname, element);
- }
}
}
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/SchemaUnwrapperExtension.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/SchemaUnwrapperExtension.java?view=diff&rev=448744&r1=448743&r2=448744
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/SchemaUnwrapperExtension.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/SchemaUnwrapperExtension.java Thu Sep 21 16:49:13 2006
@@ -71,20 +71,22 @@
contains(configuration.getDatabindingType())) {
throw new CodeGenerationException(
CodegenMessages.getMessage("extension.unsupportedforunwrapping"));
- }
+ } else if (!ConfigPropertyFileLoader.getUnwrapDirectFrameworkNames().
+ contains(configuration.getDatabindingType())) {
- //walk the schema and find the top level elements
- AxisService axisService = configuration.getAxisService();
+ //walk the schema and find the top level elements
+ AxisService axisService = configuration.getAxisService();
- for (Iterator operations = axisService.getOperations();
- operations.hasNext();) {
- AxisOperation op = (AxisOperation) operations.next();
+ for (Iterator operations = axisService.getOperations();
+ operations.hasNext();) {
+ AxisOperation op = (AxisOperation) operations.next();
- if (WSDLUtil.isInputPresentForMEP(op.getMessageExchangePattern())) {
- walkSchema(op.getMessage(
- WSDLConstants.MESSAGE_LABEL_IN_VALUE));
- }
+ if (WSDLUtil.isInputPresentForMEP(op.getMessageExchangePattern())) {
+ walkSchema(op.getMessage(
+ WSDLConstants.MESSAGE_LABEL_IN_VALUE));
+ }
+ }
}
}
}
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/ConfigPropertyFileLoader.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/ConfigPropertyFileLoader.java?view=diff&rev=448744&r1=448743&r2=448744
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/ConfigPropertyFileLoader.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/ConfigPropertyFileLoader.java Thu Sep 21 16:49:13 2006
@@ -46,6 +46,7 @@
private static String[] languageTypes;
private static String[] databindingFrameworkNames;
private static String[] unwrapSuppoerteddatabindingFrameworkNames;
+ private static String[] unwrapDirectdatabindingFrameworkNames;
private static Map languageEmitterMap;
private static Map languageSpecificPropertiesMap;
@@ -63,6 +64,7 @@
private static final String EMITTER_CLASS_KEY = "codegen.emitters";
private static final String DATA_BINDING_FRAMEWORK_NAME_KEY = "codegen.databinding.frameworks";
private static final String DATA_BINDING_UNWRAP_SUPPORTED_FRAMEWORK_NAME_KEY = "codegen.databinding.unwrap.supported";
+ private static final String DATA_BINDING_UNWRAP_DIRECT_FRAMEWORK_NAME_KEY = "codegen.databinding.unwrap.direct";
private static final String DATA_BINDING_FRAMEWORK_DEFAULT_NAME_KEY = "codegen.databinding.frameworks.default";
private static final String DATA_BINDING_FRAMEWORK_EXTENSION_NAME_KEY = "codegen.databinding.extensions";
private static final String DATA_BINDING_TEMPLATE_NAME_KEY_PREFIX = "codegen.databinding.";
@@ -165,6 +167,12 @@
unwrapSuppoerteddatabindingFrameworkNames = tempString.split(SEPARATOR_CHAR);
}
+ //load the unwrap supported data binding framework names
+ tempString = props.getProperty(DATA_BINDING_UNWRAP_DIRECT_FRAMEWORK_NAME_KEY);
+ if (tempString != null) {
+ unwrapDirectdatabindingFrameworkNames = tempString.split(SEPARATOR_CHAR);
+ }
+
//populate the data binding framework name to extension name map
tempString = props.getProperty(DATA_BINDING_FRAMEWORK_EXTENSION_NAME_KEY);
if (tempString != null) {
@@ -333,6 +341,16 @@
public static List getUnwrapSupportedFrameworkNames(){
return Arrays.asList(unwrapSuppoerteddatabindingFrameworkNames);
}
+
+ /**
+ * Get the list of data binding frameworks that handle unwrapping directly.
+ *
+ * @return names
+ */
+ public static List getUnwrapDirectFrameworkNames(){
+ return Arrays.asList(unwrapDirectdatabindingFrameworkNames);
+ }
+
/**
* Gets the default language name.
*
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/Constants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/Constants.java?view=diff&rev=448744&r1=448743&r2=448744
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/Constants.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/Constants.java Thu Sep 21 16:49:13 2006
@@ -29,6 +29,21 @@
public static final String ANY_ELEMENT_FIELD_NAME = "extraElement";
+ /** Property for message receiver operation method handled by databinding
+ code generation. This is an optional parameter for an {@link
+ org.apache.axis2.description.AxisOperation}. If present, the value is the
+ name of a method to be generated by the databinding code generation and
+ called by the message receiver code generation in order to process the
+ OMElement and invoke the service method. */
+ String DATABINDING_GENERATED_RECEIVER = "databinding-generated-receiver";
+
+ /** Property for interface implementation method handled by databinding
+ code generation. This is an optional parameter for an {@link
+ org.apache.axis2.description.AxisOperation}. If present, the value is a
+ <code>Boolean</code> flag to indicate that the method corresponding to that
+ operation will be generated by the data binding code generation. */
+ String DATABINDING_GENERATED_IMPLEMENTATION = "databinding-generated-implementation";
+
public interface CodegenStyle {
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org