[jboss-svn-commits] JBL Code SVN: r12951 - in labs/jbossesb/trunk/product: extras and 23 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jun 29 12:59:21 EDT 2007
Author: tfennelly
Date: 2007-06-29 12:59:20 -0400 (Fri, 29 Jun 2007)
New Revision: 12951
Added:
labs/jbossesb/trunk/product/extras/
labs/jbossesb/trunk/product/extras/jaxbintros/
labs/jbossesb/trunk/product/extras/jaxbintros/build.xml
labs/jbossesb/trunk/product/extras/jaxbintros/jaxb-bindings.xjb
labs/jbossesb/trunk/product/extras/jaxbintros/lib/
labs/jbossesb/trunk/product/extras/jaxbintros/lib/activation.jar
labs/jbossesb/trunk/product/extras/jaxbintros/lib/jaxb-api.jar
labs/jbossesb/trunk/product/extras/jaxbintros/lib/jaxb-impl.jar
labs/jbossesb/trunk/product/extras/jaxbintros/lib/jboss-jaxws.jar
labs/jbossesb/trunk/product/extras/jaxbintros/lib/jbossws-core.jar
labs/jbossesb/trunk/product/extras/jaxbintros/lib/jbossws-spi.jar
labs/jbossesb/trunk/product/extras/jaxbintros/lib/log4j.jar
labs/jbossesb/trunk/product/extras/jaxbintros/lib/stax-api-1.0.1.jar
labs/jbossesb/trunk/product/extras/jaxbintros/src/
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/ConfigurationException.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/IntroductionsAnnotationReader.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/IntroductionsConfigParser.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/ClassIntroConfig.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/ClassMemberIntroConfig.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/FieldIntroConfig.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/JaxbIntros.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/MethodIntroConfig.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/ObjectFactory.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/XmlAttributeIntro.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/XmlElementIntro.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/XmlTypeIntro.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/package-info.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/ClassValue.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/XmlAttributeHandler.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/XmlElementHandler.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/XmlTypeHandler.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/wsf/
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/wsf/spi/
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/wsf/spi/deployment/
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/wsf/spi/deployment/JAXBIntrosCustomizationsDeployer.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/resources/
labs/jbossesb/trunk/product/extras/jaxbintros/src/main/resources/jaxb-intros.xsd
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/IntroductionsAnnotationReaderUnitTest.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/IntroductionsConfigParserUnitTest.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/TestBean1.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/TestBean2.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/intro-config-01.xml
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/intro-config-02.xml
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/intro-config-03.xml
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/order-message.xml
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Address.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Contact.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/CustomerOrder.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Item.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/OrderHeader.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Party.java
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/resources/
labs/jbossesb/trunk/product/extras/jaxbintros/src/test/resources/log4j.xml
Log:
Added the "extras/jaxbintros" module.
Added: labs/jbossesb/trunk/product/extras/jaxbintros/build.xml
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/build.xml (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/build.xml 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,44 @@
+<project name="jaxb-intros" basedir="." default="dist">
+
+ <target name="dist" depends="clean,package,test" />
+
+ <path id="compile-classpath">
+ <fileset dir="lib" includes="*.jar" />
+ </path>
+
+ <target name="package">
+ <mkdir dir="target/classes" />
+ <javac srcdir="src/main/java" destdir="target/classes" debug="on" >
+ <classpath refid="compile-classpath" />
+ </javac>
+ <jar basedir="target/classes" destfile="target/jboss-${ant.project.name}.jar" />
+ </target>
+
+ <target name="test">
+ <mkdir dir="target/test/classes" />
+ <mkdir dir="target/test/report" />
+
+ <path id="test-compile-classpath">
+ <path refid="compile-classpath" />
+ <fileset dir="target" includes="*.jar" />
+ </path>
+ <javac srcdir="src/test/java" destdir="target/test/classes" debug="on" classpathref="test-compile-classpath" />
+ <junit fork="yes" haltonfailure="true" haltonerror="true" showoutput="off">
+ <formatter type="plain" usefile="false" />
+ <classpath>
+ <path refid="test-compile-classpath"/>
+ <pathelement location="target/test/classes" />
+ <pathelement location="src/test/java" />
+ </classpath>
+ <sysproperty key="log4j.configuration" value="log4j.xml" />
+ <batchtest todir="target/test/report">
+ <fileset dir="target/test/classes" includes="**/*Test.class" />
+ </batchtest>
+ </junit>
+ </target>
+
+ <target name="clean">
+ <delete dir="target" />
+ </target>
+
+</project>
\ No newline at end of file
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/build.xml
___________________________________________________________________
Name: svn:mime-type
+ text/xml
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/jaxb-bindings.xjb
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/jaxb-bindings.xjb (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/jaxb-bindings.xjb 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,43 @@
+<jxb:bindings version="1.0"
+ xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <jxb:bindings schemaLocation="src/main/resources/jaxb-intros.xsd" node="/xs:schema">
+ <jxb:schemaBindings>
+ <jxb:package name="org.jboss.jaxb.intros.configmodel">
+ </jxb:package>
+ </jxb:schemaBindings>
+
+ <jxb:bindings node="//xs:complexType[@name='Class']">
+ <jxb:class name="ClassIntroConfig">
+ </jxb:class>
+ </jxb:bindings>
+
+ <jxb:bindings node="//xs:complexType[@name='Field']">
+ <jxb:class name="FieldIntroConfig">
+ </jxb:class>
+ </jxb:bindings>
+
+ <jxb:bindings node="//xs:complexType[@name='Method']">
+ <jxb:class name="MethodIntroConfig">
+ </jxb:class>
+ </jxb:bindings>
+
+ <jxb:bindings node="//xs:complexType[@name='XmlType']">
+ <jxb:class name="XmlTypeIntro">
+ </jxb:class>
+ </jxb:bindings>
+
+ <jxb:bindings node="//xs:complexType[@name='XmlElement']">
+ <jxb:class name="XmlElementIntro">
+ </jxb:class>
+ </jxb:bindings>
+
+ <jxb:bindings node="//xs:complexType[@name='XmlAttribute']">
+ <jxb:class name="XmlAttributeIntro">
+ </jxb:class>
+ </jxb:bindings>
+
+ </jxb:bindings>
+
+</jxb:bindings>
Added: labs/jbossesb/trunk/product/extras/jaxbintros/lib/activation.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/lib/activation.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/extras/jaxbintros/lib/jaxb-api.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/lib/jaxb-api.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/extras/jaxbintros/lib/jaxb-impl.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/lib/jaxb-impl.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/extras/jaxbintros/lib/jboss-jaxws.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/lib/jboss-jaxws.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/extras/jaxbintros/lib/jbossws-core.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/lib/jbossws-core.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/extras/jaxbintros/lib/jbossws-spi.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/lib/jbossws-spi.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/extras/jaxbintros/lib/log4j.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/lib/log4j.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/extras/jaxbintros/lib/stax-api-1.0.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/lib/stax-api-1.0.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/ConfigurationException.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/ConfigurationException.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/ConfigurationException.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.jaxb.intros;
+
+import javax.xml.bind.JAXBException;
+
+/**
+ * JAXB Introductions configuration error.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class ConfigurationException extends RuntimeException {
+ public ConfigurationException(String message) {
+ super(message);
+ }
+ public ConfigurationException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/ConfigurationException.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/IntroductionsAnnotationReader.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/IntroductionsAnnotationReader.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/IntroductionsAnnotationReader.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,327 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.jaxb.intros;
+
+import com.sun.xml.bind.v2.model.annotation.*;
+
+import java.lang.reflect.*;
+import java.lang.annotation.Annotation;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.regex.Pattern;
+
+import org.jboss.jaxb.intros.configmodel.*;
+import org.jboss.jaxb.intros.handlers.*;
+import org.apache.log4j.Logger;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * JAXB Annotation Reader for the JAXB RI context interface.
+ * <p/>
+ * Used for introduction of annotations on bean classes which are not annotated
+ * for JAXB. Allows us to use JAXB (and hence JBossWS 2.x+) with unannotated
+ * interfaces.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class IntroductionsAnnotationReader extends AbstractInlineAnnotationReaderImpl<Type,Class,Field,Method> implements RuntimeAnnotationReader {
+
+ private static Logger logger = Logger.getLogger(IntroductionsAnnotationReader.class);
+ private RuntimeAnnotationReader baseReader = new RuntimeInlineAnnotationReader();
+ private JaxbIntros introductions;
+
+ public IntroductionsAnnotationReader(JaxbIntros introductions) {
+ if(introductions == null) {
+ throw new IllegalArgumentException("arg 'introductions' is null.");
+ }
+ this.introductions = introductions;
+ }
+
+ public <A extends Annotation> A getFieldAnnotation(Class<A> annotation, Field field, Locatable srcPos) {
+ Annotation proxy = getProxy(annotation, field);
+
+ if(proxy != null) {
+ return (A) proxy;
+ }
+
+ return LocatableAnnotation.create(field.getAnnotation(annotation),srcPos);
+ }
+
+ public boolean hasFieldAnnotation(Class<? extends Annotation> annotationType, Field field) {
+ FieldIntroConfig fieldIntroConfig = getFieldIntroConfig(field);
+
+ if(fieldIntroConfig != null) {
+ return isMemberAnnotationIntroAvailable(annotationType, fieldIntroConfig);
+ }
+
+ return field.isAnnotationPresent(annotationType);
+ }
+
+ public Annotation[] getAllFieldAnnotations(Field field, Locatable srcPos) {
+ return getAllAnnotations(field, srcPos);
+ }
+
+ public <A extends Annotation> A getMethodAnnotation(Class<A> annotation, Method method, Locatable srcPos) {
+ Annotation proxy = getProxy(annotation, method);
+
+ if(proxy != null) {
+ return (A) proxy;
+ }
+
+ return LocatableAnnotation.create(method.getAnnotation(annotation),srcPos);
+ }
+
+ public boolean hasMethodAnnotation(Class<? extends Annotation> annotation, Method method) {
+ MethodIntroConfig methodAnnotations = getMethodIntroConfig(method);
+
+ if(methodAnnotations != null) {
+ return isMemberAnnotationIntroAvailable(annotation, methodAnnotations);
+ }
+
+ return method.isAnnotationPresent(annotation);
+ }
+
+ public Annotation[] getAllMethodAnnotations(Method method, Locatable srcPos) {
+ return getAllAnnotations(method, srcPos);
+ }
+
+ public <A extends Annotation> A getMethodParameterAnnotation(Class<A> annotation, Method method, int paramIndex, Locatable srcPos) {
+ return baseReader.getMethodParameterAnnotation(annotation, method, paramIndex, srcPos);
+ }
+
+ public <A extends Annotation> A getClassAnnotation(Class<A> a, Class clazz, Locatable srcPos) {
+ if(a == XmlType.class) {
+ ClassIntroConfig classIntroConfig = getClassIntroConfig(clazz);
+
+ if(classIntroConfig != null) {
+ XmlTypeIntro intro = classIntroConfig.getXmlType();
+ if(intro != null) {
+ return (A) XmlTypeHandler.createProxy(intro);
+ }
+ }
+ }
+
+ return LocatableAnnotation.create(((Class<?>)clazz).getAnnotation(a),srcPos);
+ }
+
+ public boolean hasClassAnnotation(Class clazz, Class<? extends Annotation> annotationType) {
+ if(annotationType == XmlType.class) {
+ ClassIntroConfig classIntroConfig = getClassIntroConfig(clazz);
+
+ if(classIntroConfig != null && classIntroConfig.getXmlType() != null) {
+ return true;
+ }
+ }
+ return clazz.isAnnotationPresent(annotationType);
+ }
+
+ public <A extends Annotation> A getPackageAnnotation(Class<A> a, Class clazz, Locatable srcPos) {
+ return baseReader.getPackageAnnotation(a, clazz, srcPos);
+ }
+
+ public Class getClassValue(Annotation a, String name) {
+ if(a instanceof ClassValue) {
+ return ((ClassValue)a).getClassValue(a, name);
+ }
+ return (Class) baseReader.getClassValue(a, name);
+ }
+
+ public Class[] getClassArrayValue(Annotation a, String name) {
+ if(a instanceof ClassValue) {
+ return ((ClassValue)a).getClassArrayValue(a, name);
+ }
+ return (Class[]) baseReader.getClassArrayValue(a, name);
+ }
+
+ protected String fullName(Method m) {
+ return m.getDeclaringClass().getName()+'#'+m.getName();
+ }
+
+ private ClassIntroConfig getClassIntroConfig(Class clazz) {
+ String className = clazz.getName();
+ ClassIntroConfig globalIntro = null;
+
+ for(ClassIntroConfig classIntro : introductions.getClazz()) {
+ if(classIntro.getName().equals(className)) {
+ return classIntro;
+ } else if(globalIntro == null && isRegexMatch(className, classIntro.getName())) {
+ globalIntro = classIntro;
+ }
+ }
+
+ return globalIntro;
+ }
+
+ private FieldIntroConfig getFieldIntroConfig(Field field) {
+ ClassIntroConfig classIntroConfig = getClassIntroConfig(field.getDeclaringClass());
+ FieldIntroConfig globalIntro = null;
+
+ if(classIntroConfig != null) {
+ String fieldName = field.getName();
+
+ for(FieldIntroConfig fieldIntro : classIntroConfig.getField()) {
+ if(fieldIntro.getName().equals(fieldName)) {
+ return fieldIntro;
+ } else if(globalIntro == null && isRegexMatch(fieldName, fieldIntro.getName())) {
+ globalIntro = fieldIntro;
+ }
+ }
+ }
+
+ return globalIntro;
+ }
+
+ private MethodIntroConfig getMethodIntroConfig(Method method) {
+ ClassIntroConfig classIntroConfig = getClassIntroConfig(method.getDeclaringClass());
+ MethodIntroConfig globalIntro = null;
+
+ if(classIntroConfig != null) {
+ String methodName = method.getName();
+
+ for(MethodIntroConfig methodIntro : classIntroConfig.getMethod()) {
+ if(methodIntro.getName().equals(methodName)) {
+ return methodIntro;
+ } else if(globalIntro == null && isRegexMatch(methodName, methodIntro.getName())) {
+ globalIntro = methodIntro;
+ }
+ }
+ }
+
+ return globalIntro;
+ }
+
+ private static Map<String, Pattern> patternCache = new HashMap<String, Pattern>();
+ private boolean isRegexMatch(String string, String regex) {
+ Pattern pattern = patternCache.get(regex);
+
+ if(pattern == null) {
+ try {
+ pattern = Pattern.compile(regex);
+ } catch(Exception e) {
+ logger.warn("Error compiling '" + regex + "' as a regular expression: " + e.getMessage());
+ return false;
+ }
+ patternCache.put(regex, pattern);
+ }
+
+ return pattern.matcher(string).matches();
+ }
+
+ private Annotation getMemberAnnotationProxy(Class annotation, ClassMemberIntroConfig memberIntroConfig) {
+ Annotation proxy = null;
+
+ if(annotation == javax.xml.bind.annotation.XmlAttribute.class) {
+ XmlAttributeIntro xmlAttributeIntro = memberIntroConfig.getXmlAttribute();
+ if(xmlAttributeIntro != null) {
+ proxy = XmlAttributeHandler.createProxy(xmlAttributeIntro);
+ }
+ } else if(annotation == javax.xml.bind.annotation.XmlElement.class) {
+ XmlElementIntro xmlElementIntro = memberIntroConfig.getXmlElement();
+ if(xmlElementIntro != null) {
+ proxy = XmlElementHandler.createProxy(xmlElementIntro);
+ }
+ }
+
+ return proxy;
+ }
+
+ private boolean isMemberAnnotationIntroAvailable(Class<? extends Annotation> annotation, ClassMemberIntroConfig memberIntroConfig) {
+ if(annotation == javax.xml.bind.annotation.XmlAttribute.class) {
+ return (memberIntroConfig.getXmlAttribute() != null);
+ } else if(annotation == javax.xml.bind.annotation.XmlElement.class) {
+ return (memberIntroConfig.getXmlElement() != null);
+ }
+
+ return false;
+ }
+
+ private Annotation[] getAllAnnotations(Member member, Locatable srcPos) {
+ Annotation[] r = ((AnnotatedElement)member).getAnnotations();
+ List<Annotation> annotations = new ArrayList<Annotation>();
+
+ for( int i = 0; i < r.length; i++ ) {
+ Class<? extends Object> annType = r[i].getClass();
+ if(annType == XmlAttribute.class || annType == XmlElement.class) {
+ // We'll handle these explicitly (below)!!
+ continue;
+ }
+ annotations.add(LocatableAnnotation.create(r[i], srcPos));
+ }
+
+ // Now we explicitly handle the supported Introduction annotations...
+ ClassMemberIntroConfig memberIntroConfig = null;
+ if(member instanceof Field) {
+ memberIntroConfig = getFieldIntroConfig((Field)member);
+ } else if(member instanceof Method) {
+ memberIntroConfig = getMethodIntroConfig((Method)member);
+ }
+ if(memberIntroConfig != null) {
+ addMemberAnnotation(XmlAttribute.class, memberIntroConfig, annotations, member, srcPos);
+ addMemberAnnotation(XmlElement.class, memberIntroConfig, annotations, member, srcPos);
+ }
+
+ r = annotations.toArray(new Annotation[annotations.size()]);
+
+ return r;
+ }
+
+ private void addMemberAnnotation(Class annotationType, ClassMemberIntroConfig memberIntroConfig, List<Annotation> annotations, Member member, Locatable srcPos) {
+ Annotation annotation = getMemberAnnotationProxy(annotationType, memberIntroConfig);
+ if(annotation != null) {
+ annotations.add(annotation);
+ } else {
+ annotation = ((AnnotatedElement)member).getAnnotation(annotationType);
+ if(annotation != null) {
+ annotations.add(LocatableAnnotation.create(annotation, srcPos));
+ }
+ }
+ }
+
+ private Annotation getProxy(Class annotation, Field field) {
+ FieldIntroConfig fieldIntroConfig = getFieldIntroConfig(field);
+
+ if(fieldIntroConfig != null) {
+ Annotation proxy = getMemberAnnotationProxy(annotation, fieldIntroConfig);
+ if(proxy != null) {
+ return proxy;
+ }
+ }
+
+ return null;
+ }
+
+ private Annotation getProxy(Class annotation, Method method) {
+ MethodIntroConfig methodIntroConfig = getMethodIntroConfig(method);
+
+ if(methodIntroConfig != null) {
+ Annotation proxy = getMemberAnnotationProxy(annotation, methodIntroConfig);
+ if(proxy != null) {
+ return proxy;
+ }
+ }
+
+ return null;
+ }
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/IntroductionsAnnotationReader.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/IntroductionsConfigParser.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/IntroductionsConfigParser.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/IntroductionsConfigParser.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,53 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.jaxb.intros;
+
+import org.jboss.jaxb.intros.configmodel.JaxbIntros;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+import java.io.InputStream;
+
+/**
+ * Configuration Parser for a JBossESB JAXB Annotations Introduction Configuration.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class IntroductionsConfigParser {
+
+ /**
+ * Parse a JAXB Annotations Introduction Configuration stream.
+ *
+ * @param config The configuration stream.
+ * @return The configuration model.
+ * @throws ConfigurationException Bad configuration.
+ */
+ public static JaxbIntros parseConfig(InputStream config) throws ConfigurationException {
+ try {
+ JAXBContext jaxbContext = JAXBContext.newInstance(JaxbIntros.class);
+ Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
+
+ return (JaxbIntros) unmarshaller.unmarshal(config);
+ } catch (JAXBException e) {
+ throw new ConfigurationException("Bad JAXB Annotations Introduction Configuration.", e);
+ }
+ }
+}
\ No newline at end of file
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/IntroductionsConfigParser.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/ClassIntroConfig.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/ClassIntroConfig.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/ClassIntroConfig.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,167 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.3-b01-fcs
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2007.06.28 at 05:23:39 PM BST
+//
+
+
+package org.jboss.jaxb.intros.configmodel;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Class complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="Class">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{http://www.jboss.org/xsd/jaxb/intros}XmlType" minOccurs="0"/>
+ * <element ref="{http://www.jboss.org/xsd/jaxb/intros}Field" maxOccurs="unbounded" minOccurs="0"/>
+ * <element ref="{http://www.jboss.org/xsd/jaxb/intros}Method" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "Class", propOrder = {
+ "xmlType",
+ "field",
+ "method"
+})
+public class ClassIntroConfig {
+
+ @XmlElement(name = "XmlType")
+ protected XmlTypeIntro xmlType;
+ @XmlElement(name = "Field")
+ protected List<FieldIntroConfig> field;
+ @XmlElement(name = "Method")
+ protected List<MethodIntroConfig> method;
+ @XmlAttribute(required = true)
+ @XmlSchemaType(name = "anySimpleType")
+ protected String name;
+
+ /**
+ * Gets the value of the xmlType property.
+ *
+ * @return
+ * possible object is
+ * {@link XmlTypeIntro }
+ *
+ */
+ public XmlTypeIntro getXmlType() {
+ return xmlType;
+ }
+
+ /**
+ * Sets the value of the xmlType property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XmlTypeIntro }
+ *
+ */
+ public void setXmlType(XmlTypeIntro value) {
+ this.xmlType = value;
+ }
+
+ /**
+ * Gets the value of the field property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the field property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getField().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link FieldIntroConfig }
+ *
+ *
+ */
+ public List<FieldIntroConfig> getField() {
+ if (field == null) {
+ field = new ArrayList<FieldIntroConfig>();
+ }
+ return this.field;
+ }
+
+ /**
+ * Gets the value of the method property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the method property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getMethod().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link MethodIntroConfig }
+ *
+ *
+ */
+ public List<MethodIntroConfig> getMethod() {
+ if (method == null) {
+ method = new ArrayList<MethodIntroConfig>();
+ }
+ return this.method;
+ }
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/ClassIntroConfig.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/ClassMemberIntroConfig.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/ClassMemberIntroConfig.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/ClassMemberIntroConfig.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,134 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.3-b01-fcs
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2007.06.28 at 05:23:39 PM BST
+//
+
+
+package org.jboss.jaxb.intros.configmodel;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Java Class Member (Field, Method Constructor) JAXB Annotation Introductions configuration base type.
+ *
+ * <p>Java class for class-member-intro-config complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="class-member-intro-config">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{http://www.jboss.org/xsd/jaxb/intros}XmlElement" minOccurs="0"/>
+ * <element ref="{http://www.jboss.org/xsd/jaxb/intros}XmlAttribute" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "class-member-intro-config", propOrder = {
+ "xmlElement",
+ "xmlAttribute"
+})
+ at XmlSeeAlso({
+ MethodIntroConfig.class,
+ FieldIntroConfig.class
+})
+public class ClassMemberIntroConfig {
+
+ @XmlElement(name = "XmlElement")
+ protected XmlElementIntro xmlElement;
+ @XmlElement(name = "XmlAttribute")
+ protected XmlAttributeIntro xmlAttribute;
+ @XmlAttribute(required = true)
+ @XmlSchemaType(name = "anySimpleType")
+ protected String name;
+
+ /**
+ * Gets the value of the xmlElement property.
+ *
+ * @return
+ * possible object is
+ * {@link XmlElementIntro }
+ *
+ */
+ public XmlElementIntro getXmlElement() {
+ return xmlElement;
+ }
+
+ /**
+ * Sets the value of the xmlElement property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XmlElementIntro }
+ *
+ */
+ public void setXmlElement(XmlElementIntro value) {
+ this.xmlElement = value;
+ }
+
+ /**
+ * Gets the value of the xmlAttribute property.
+ *
+ * @return
+ * possible object is
+ * {@link XmlAttributeIntro }
+ *
+ */
+ public XmlAttributeIntro getXmlAttribute() {
+ return xmlAttribute;
+ }
+
+ /**
+ * Sets the value of the xmlAttribute property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XmlAttributeIntro }
+ *
+ */
+ public void setXmlAttribute(XmlAttributeIntro value) {
+ this.xmlAttribute = value;
+ }
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/ClassMemberIntroConfig.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/FieldIntroConfig.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/FieldIntroConfig.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/FieldIntroConfig.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,39 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.3-b01-fcs
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2007.06.28 at 05:23:39 PM BST
+//
+
+
+package org.jboss.jaxb.intros.configmodel;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Field complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="Field">
+ * <complexContent>
+ * <extension base="{http://www.jboss.org/xsd/jaxb/intros}class-member-intro-config">
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "Field")
+public class FieldIntroConfig
+ extends ClassMemberIntroConfig
+{
+
+
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/FieldIntroConfig.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/JaxbIntros.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/JaxbIntros.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/JaxbIntros.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,108 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.3-b01-fcs
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2007.06.28 at 05:23:39 PM BST
+//
+
+
+package org.jboss.jaxb.intros.configmodel;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{http://www.jboss.org/xsd/jaxb/intros}Class" maxOccurs="unbounded"/>
+ * </sequence>
+ * <attribute name="default-namespace" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+ "clazz"
+})
+ at XmlRootElement(name = "jaxb-intros")
+public class JaxbIntros {
+
+ @XmlElement(name = "Class", required = true)
+ protected List<ClassIntroConfig> clazz;
+ @XmlAttribute(name = "default-namespace")
+ @XmlSchemaType(name = "anySimpleType")
+ protected String defaultNamespace;
+
+ /**
+ * Gets the value of the clazz property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the clazz property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getClazz().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link ClassIntroConfig }
+ *
+ *
+ */
+ public List<ClassIntroConfig> getClazz() {
+ if (clazz == null) {
+ clazz = new ArrayList<ClassIntroConfig>();
+ }
+ return this.clazz;
+ }
+
+ /**
+ * Gets the value of the defaultNamespace property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDefaultNamespace() {
+ return defaultNamespace;
+ }
+
+ /**
+ * Sets the value of the defaultNamespace property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDefaultNamespace(String value) {
+ this.defaultNamespace = value;
+ }
+
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/JaxbIntros.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/MethodIntroConfig.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/MethodIntroConfig.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/MethodIntroConfig.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,39 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.3-b01-fcs
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2007.06.28 at 05:23:39 PM BST
+//
+
+
+package org.jboss.jaxb.intros.configmodel;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Method complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="Method">
+ * <complexContent>
+ * <extension base="{http://www.jboss.org/xsd/jaxb/intros}class-member-intro-config">
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "Method")
+public class MethodIntroConfig
+ extends ClassMemberIntroConfig
+{
+
+
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/MethodIntroConfig.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/ObjectFactory.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/ObjectFactory.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/ObjectFactory.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,176 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.3-b01-fcs
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2007.06.28 at 05:23:39 PM BST
+//
+
+
+package org.jboss.jaxb.intros.configmodel;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each
+ * Java content interface and Java element interface
+ * generated in the org.jboss.jaxb.intros.configmodel package.
+ * <p>An ObjectFactory allows you to programatically
+ * construct new instances of the Java representation
+ * for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces
+ * and classes representing the binding of schema
+ * type definitions, element declarations and model
+ * groups. Factory methods for each of these are
+ * provided in this class.
+ *
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+ private final static QName _XmlElement_QNAME = new QName("http://www.jboss.org/xsd/jaxb/intros", "XmlElement");
+ private final static QName _Class_QNAME = new QName("http://www.jboss.org/xsd/jaxb/intros", "Class");
+ private final static QName _XmlType_QNAME = new QName("http://www.jboss.org/xsd/jaxb/intros", "XmlType");
+ private final static QName _XmlAttribute_QNAME = new QName("http://www.jboss.org/xsd/jaxb/intros", "XmlAttribute");
+ private final static QName _Method_QNAME = new QName("http://www.jboss.org/xsd/jaxb/intros", "Method");
+ private final static QName _Field_QNAME = new QName("http://www.jboss.org/xsd/jaxb/intros", "Field");
+ private final static QName _ClassMemberIntroConfig_QNAME = new QName("http://www.jboss.org/xsd/jaxb/intros", "class-member-intro-config");
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.jboss.jaxb.intros.configmodel
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link XmlAttributeIntro }
+ *
+ */
+ public XmlAttributeIntro createXmlAttributeIntro() {
+ return new XmlAttributeIntro();
+ }
+
+ /**
+ * Create an instance of {@link ClassMemberIntroConfig }
+ *
+ */
+ public ClassMemberIntroConfig createClassMemberIntroConfig() {
+ return new ClassMemberIntroConfig();
+ }
+
+ /**
+ * Create an instance of {@link FieldIntroConfig }
+ *
+ */
+ public FieldIntroConfig createFieldIntroConfig() {
+ return new FieldIntroConfig();
+ }
+
+ /**
+ * Create an instance of {@link XmlTypeIntro }
+ *
+ */
+ public XmlTypeIntro createXmlTypeIntro() {
+ return new XmlTypeIntro();
+ }
+
+ /**
+ * Create an instance of {@link MethodIntroConfig }
+ *
+ */
+ public MethodIntroConfig createMethodIntroConfig() {
+ return new MethodIntroConfig();
+ }
+
+ /**
+ * Create an instance of {@link XmlElementIntro }
+ *
+ */
+ public XmlElementIntro createXmlElementIntro() {
+ return new XmlElementIntro();
+ }
+
+ /**
+ * Create an instance of {@link ClassIntroConfig }
+ *
+ */
+ public ClassIntroConfig createClassIntroConfig() {
+ return new ClassIntroConfig();
+ }
+
+ /**
+ * Create an instance of {@link JaxbIntros }
+ *
+ */
+ public JaxbIntros createJaxbIntros() {
+ return new JaxbIntros();
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link XmlElementIntro }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.jboss.org/xsd/jaxb/intros", name = "XmlElement")
+ public JAXBElement<XmlElementIntro> createXmlElement(XmlElementIntro value) {
+ return new JAXBElement<XmlElementIntro>(_XmlElement_QNAME, XmlElementIntro.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link ClassIntroConfig }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.jboss.org/xsd/jaxb/intros", name = "Class")
+ public JAXBElement<ClassIntroConfig> createClass(ClassIntroConfig value) {
+ return new JAXBElement<ClassIntroConfig>(_Class_QNAME, ClassIntroConfig.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link XmlTypeIntro }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.jboss.org/xsd/jaxb/intros", name = "XmlType")
+ public JAXBElement<XmlTypeIntro> createXmlType(XmlTypeIntro value) {
+ return new JAXBElement<XmlTypeIntro>(_XmlType_QNAME, XmlTypeIntro.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link XmlAttributeIntro }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.jboss.org/xsd/jaxb/intros", name = "XmlAttribute")
+ public JAXBElement<XmlAttributeIntro> createXmlAttribute(XmlAttributeIntro value) {
+ return new JAXBElement<XmlAttributeIntro>(_XmlAttribute_QNAME, XmlAttributeIntro.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link MethodIntroConfig }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.jboss.org/xsd/jaxb/intros", name = "Method", substitutionHeadNamespace = "http://www.jboss.org/xsd/jaxb/intros", substitutionHeadName = "class-member-intro-config")
+ public JAXBElement<MethodIntroConfig> createMethod(MethodIntroConfig value) {
+ return new JAXBElement<MethodIntroConfig>(_Method_QNAME, MethodIntroConfig.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link FieldIntroConfig }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.jboss.org/xsd/jaxb/intros", name = "Field", substitutionHeadNamespace = "http://www.jboss.org/xsd/jaxb/intros", substitutionHeadName = "class-member-intro-config")
+ public JAXBElement<FieldIntroConfig> createField(FieldIntroConfig value) {
+ return new JAXBElement<FieldIntroConfig>(_Field_QNAME, FieldIntroConfig.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link Object }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.jboss.org/xsd/jaxb/intros", name = "class-member-intro-config")
+ public JAXBElement<Object> createClassMemberIntroConfig(Object value) {
+ return new JAXBElement<Object>(_ClassMemberIntroConfig_QNAME, Object.class, null, value);
+ }
+
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/ObjectFactory.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/XmlAttributeIntro.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/XmlAttributeIntro.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/XmlAttributeIntro.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,134 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.3-b01-fcs
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2007.06.28 at 05:23:39 PM BST
+//
+
+
+package org.jboss.jaxb.intros.configmodel;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for XmlAttribute complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="XmlAttribute">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="name" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" default="##default" />
+ * <attribute name="required" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * <attribute name="namespace" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" default="##default" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "XmlAttribute")
+public class XmlAttributeIntro {
+
+ @XmlAttribute
+ @XmlSchemaType(name = "anySimpleType")
+ protected String name;
+ @XmlAttribute
+ protected Boolean required;
+ @XmlAttribute
+ @XmlSchemaType(name = "anySimpleType")
+ protected String namespace;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ if (name == null) {
+ return "##default";
+ } else {
+ return name;
+ }
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ /**
+ * Gets the value of the required property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isRequired() {
+ if (required == null) {
+ return false;
+ } else {
+ return required;
+ }
+ }
+
+ /**
+ * Sets the value of the required property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setRequired(Boolean value) {
+ this.required = value;
+ }
+
+ /**
+ * Gets the value of the namespace property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getNamespace() {
+ if (namespace == null) {
+ return "##default";
+ } else {
+ return namespace;
+ }
+ }
+
+ /**
+ * Sets the value of the namespace property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setNamespace(String value) {
+ this.namespace = value;
+ }
+
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/XmlAttributeIntro.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/XmlElementIntro.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/XmlElementIntro.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/XmlElementIntro.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,221 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.3-b01-fcs
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2007.06.28 at 05:23:39 PM BST
+//
+
+
+package org.jboss.jaxb.intros.configmodel;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for XmlElement complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="XmlElement">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="name" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" default="##default" />
+ * <attribute name="nillable" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * <attribute name="required" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * <attribute name="namespace" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" default="##default" />
+ * <attribute name="defaultValue" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" />
+ * <attribute name="type" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "XmlElement")
+public class XmlElementIntro {
+
+ @XmlAttribute
+ @XmlSchemaType(name = "anySimpleType")
+ protected String name;
+ @XmlAttribute
+ protected Boolean nillable;
+ @XmlAttribute
+ protected Boolean required;
+ @XmlAttribute
+ @XmlSchemaType(name = "anySimpleType")
+ protected String namespace;
+ @XmlAttribute
+ @XmlSchemaType(name = "anySimpleType")
+ protected String defaultValue;
+ @XmlAttribute
+ @XmlSchemaType(name = "anySimpleType")
+ protected String type;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ if (name == null) {
+ return "##default";
+ } else {
+ return name;
+ }
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ /**
+ * Gets the value of the nillable property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isNillable() {
+ if (nillable == null) {
+ return false;
+ } else {
+ return nillable;
+ }
+ }
+
+ /**
+ * Sets the value of the nillable property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setNillable(Boolean value) {
+ this.nillable = value;
+ }
+
+ /**
+ * Gets the value of the required property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isRequired() {
+ if (required == null) {
+ return false;
+ } else {
+ return required;
+ }
+ }
+
+ /**
+ * Sets the value of the required property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setRequired(Boolean value) {
+ this.required = value;
+ }
+
+ /**
+ * Gets the value of the namespace property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getNamespace() {
+ if (namespace == null) {
+ return "##default";
+ } else {
+ return namespace;
+ }
+ }
+
+ /**
+ * Sets the value of the namespace property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setNamespace(String value) {
+ this.namespace = value;
+ }
+
+ /**
+ * Gets the value of the defaultValue property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+
+ /**
+ * Sets the value of the defaultValue property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDefaultValue(String value) {
+ this.defaultValue = value;
+ }
+
+ /**
+ * Gets the value of the type property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * Sets the value of the type property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setType(String value) {
+ this.type = value;
+ }
+
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/XmlElementIntro.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/XmlTypeIntro.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/XmlTypeIntro.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/XmlTypeIntro.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,195 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.3-b01-fcs
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2007.06.28 at 05:23:39 PM BST
+//
+
+
+package org.jboss.jaxb.intros.configmodel;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for XmlType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="XmlType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="name" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" default="##default" />
+ * <attribute name="propOrder" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" default="" />
+ * <attribute name="namespace" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" default="##default" />
+ * <attribute name="factoryClass" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" />
+ * <attribute name="factoryMethod" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" default="" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "XmlType")
+public class XmlTypeIntro {
+
+ @XmlAttribute
+ @XmlSchemaType(name = "anySimpleType")
+ protected String name;
+ @XmlAttribute
+ @XmlSchemaType(name = "anySimpleType")
+ protected String propOrder;
+ @XmlAttribute
+ @XmlSchemaType(name = "anySimpleType")
+ protected String namespace;
+ @XmlAttribute
+ @XmlSchemaType(name = "anySimpleType")
+ protected String factoryClass;
+ @XmlAttribute
+ @XmlSchemaType(name = "anySimpleType")
+ protected String factoryMethod;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ if (name == null) {
+ return "##default";
+ } else {
+ return name;
+ }
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ /**
+ * Gets the value of the propOrder property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getPropOrder() {
+ if (propOrder == null) {
+ return "";
+ } else {
+ return propOrder;
+ }
+ }
+
+ /**
+ * Sets the value of the propOrder property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setPropOrder(String value) {
+ this.propOrder = value;
+ }
+
+ /**
+ * Gets the value of the namespace property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getNamespace() {
+ if (namespace == null) {
+ return "##default";
+ } else {
+ return namespace;
+ }
+ }
+
+ /**
+ * Sets the value of the namespace property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setNamespace(String value) {
+ this.namespace = value;
+ }
+
+ /**
+ * Gets the value of the factoryClass property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getFactoryClass() {
+ return factoryClass;
+ }
+
+ /**
+ * Sets the value of the factoryClass property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setFactoryClass(String value) {
+ this.factoryClass = value;
+ }
+
+ /**
+ * Gets the value of the factoryMethod property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getFactoryMethod() {
+ if (factoryMethod == null) {
+ return "";
+ } else {
+ return factoryMethod;
+ }
+ }
+
+ /**
+ * Sets the value of the factoryMethod property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setFactoryMethod(String value) {
+ this.factoryMethod = value;
+ }
+
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/XmlTypeIntro.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/package-info.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/package-info.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/package-info.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,9 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.3-b01-fcs
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2007.06.28 at 05:23:39 PM BST
+//
+
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://www.jboss.org/xsd/jaxb/intros", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.jboss.jaxb.intros.configmodel;
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/configmodel/package-info.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/ClassValue.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/ClassValue.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/ClassValue.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.jaxb.intros.handlers;
+
+import java.lang.annotation.Annotation;
+
+/**
+ * Annotation Class Value interface.
+ * <p/>
+ * See same methods on the {@link com.sun.xml.bind.v2.model.annotation.AnnotationReader} interface.
+ * We want to proxy these calls back to the annotation handlers.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public interface ClassValue {
+
+ Class getClassValue( Annotation a, String name );
+
+ Class[] getClassArrayValue( Annotation a, String name );
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/ClassValue.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/XmlAttributeHandler.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/XmlAttributeHandler.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/XmlAttributeHandler.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,66 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.jaxb.intros.handlers;
+
+import org.jboss.jaxb.intros.configmodel.XmlAttributeIntro;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.lang.annotation.Annotation;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class XmlAttributeHandler implements InvocationHandler {
+
+ private XmlAttributeIntro xmlAttributeIntro;
+
+ public XmlAttributeHandler(XmlAttributeIntro xmlAttributeIntro) {
+ this.xmlAttributeIntro = xmlAttributeIntro;
+ }
+
+ public static Annotation createProxy(XmlAttributeIntro xmlAttributeIntro) {
+ return (Annotation) Proxy.newProxyInstance(XmlAttribute.class.getClassLoader(),
+ new Class[] { XmlAttribute.class },
+ new XmlAttributeHandler(xmlAttributeIntro));
+ }
+
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ /*
+ <xsd:complexType>
+ <xsd:attribute name="name" use="optional" default="##default"/>
+ <xsd:attribute name="required" type="xsd:boolean" use="optional" default="false"/>
+ <xsd:attribute name="namespace" use="optional" default="##default"/>
+ </xsd:complexType>
+ */
+
+ if(method.getName().equals("namespace")) {
+ return xmlAttributeIntro.getNamespace();
+ } else if(method.getName().equals("name")) {
+ return xmlAttributeIntro.getName();
+ } else if(method.getName().equals("required")) {
+ return xmlAttributeIntro.isRequired();
+ }
+
+ return null;
+ }
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/XmlAttributeHandler.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/XmlElementHandler.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/XmlElementHandler.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/XmlElementHandler.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,89 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.jaxb.intros.handlers;
+
+import org.jboss.jaxb.intros.configmodel.XmlElementIntro;
+import org.jboss.jaxb.intros.ConfigurationException;
+
+import javax.xml.bind.annotation.XmlElement;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.lang.annotation.Annotation;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class XmlElementHandler implements InvocationHandler {
+
+ private XmlElementIntro xmlElementIntro;
+
+ private XmlElementHandler(XmlElementIntro xmlElementIntro) {
+ this.xmlElementIntro = xmlElementIntro;
+ }
+
+ public static Annotation createProxy(XmlElementIntro xmlElementIntro) {
+ return (Annotation) Proxy.newProxyInstance(XmlElement.class.getClassLoader(),
+ new Class[] { XmlElement.class, ClassValue.class },
+ new XmlElementHandler(xmlElementIntro));
+ }
+
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ /*
+ <xsd:complexType>
+ <xsd:attribute name="name" use="optional" default="##default"/>
+ <xsd:attribute name="nillable" type="xsd:boolean" use="optional" default="false"/>
+ <xsd:attribute name="required" type="xsd:boolean" use="optional" default="false"/>
+ <xsd:attribute name="namespace" use="optional" default="##default"/>
+ <xsd:attribute name="defaultValue" use="optional"/>
+ <xsd:attribute name="type" use="optional"/>
+ </xsd:complexType>
+ */
+ String methodName = method.getName();
+
+ if(methodName.equals("getClassValue")) {
+ methodName = (String)args[1];
+ }
+
+ if(methodName.equals("namespace")) {
+ return xmlElementIntro.getNamespace();
+ } else if(methodName.equals("name")) {
+ return xmlElementIntro.getName();
+ } else if(methodName.equals("nillable")) {
+ return xmlElementIntro.isNillable();
+ } else if(methodName.equals("required")) {
+ return xmlElementIntro.isRequired();
+ } else if(methodName.equals("defaultValue")) {
+ String defaultVal = xmlElementIntro.getDefaultValue();
+ return (defaultVal != null?defaultVal:"\u0000");
+ } else if(methodName.equals("type")) {
+ if(xmlElementIntro.getType() != null) {
+ try {
+ return Class.forName(xmlElementIntro.getType());
+ } catch(ClassNotFoundException e) {
+ throw new ConfigurationException("Bad 'XmlElement.type' config value '" + xmlElementIntro.getType() + "' in JAXB Annotation Introduction config. Class not found.");
+ }
+ }
+ return XmlElement.DEFAULT.class;
+ }
+
+ return null;
+ }
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/XmlElementHandler.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/XmlTypeHandler.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/XmlTypeHandler.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/XmlTypeHandler.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.jaxb.intros.handlers;
+
+import org.jboss.jaxb.intros.configmodel.XmlTypeIntro;
+import org.jboss.jaxb.intros.ConfigurationException;
+import org.apache.log4j.Logger;
+
+import javax.xml.bind.annotation.XmlType;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.lang.annotation.Annotation;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class XmlTypeHandler implements InvocationHandler {
+
+ private static Logger logger = Logger.getLogger(XmlTypeHandler.class);
+ private XmlTypeIntro xmlTypeIntro;
+
+ private XmlTypeHandler(XmlTypeIntro xmlTypeIntro) {
+ this.xmlTypeIntro = xmlTypeIntro;
+ }
+
+ public static Annotation createProxy(XmlTypeIntro xmlTypeIntro) {
+ return (Annotation) Proxy.newProxyInstance(XmlType.class.getClassLoader(),
+ new Class[] { XmlType.class, ClassValue.class },
+ new XmlTypeHandler(xmlTypeIntro));
+ }
+
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ /*
+ <xsd:complexType>
+ <xsd:attribute name="name" use="optional" default="##default"/>
+ <xsd:attribute name="propOrder" use="optional" default=""/>
+ <xsd:attribute name="namespace" use="optional" default="##default"/>
+ <xsd:attribute name="factoryClass" use="optional"/>
+ <xsd:attribute name="factoryMethod" use="optional" default=""/>
+ </xsd:complexType>
+ */
+ String methodName = method.getName();
+
+ if(methodName.equals("getClassValue")) {
+ methodName = (String)args[1];
+ }
+
+ if(methodName.equals("namespace")) {
+ return xmlTypeIntro.getNamespace();
+ } else if(methodName.equals("name")) {
+ return xmlTypeIntro.getName();
+ } else if(methodName.equals("propOrder")) {
+ try {
+ return xmlTypeIntro.getPropOrder().split(",");
+ } catch(Exception e) {
+ logger.warn("Bad 'XmlType.propOrder' config value '" + xmlTypeIntro.getPropOrder() + "' in JAXB Annotation Introduction config. Must be a CSV String.");
+ }
+ } else if(methodName.equals("factoryClass")) {
+ if(xmlTypeIntro.getFactoryClass() != null) {
+ try {
+ return Class.forName(xmlTypeIntro.getFactoryClass());
+ } catch(ClassNotFoundException e) {
+ throw new ConfigurationException("Bad 'XmlType.factoryClass' config value '" + xmlTypeIntro.getFactoryClass() + "' in JAXB Annotation Introduction config. Class not found.");
+ }
+ }
+ return XmlType.DEFAULT.class;
+ } else if(methodName.equals("factoryMethod")) {
+ return xmlTypeIntro.getFactoryMethod();
+ }
+
+ return null;
+ }
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/jaxb/intros/handlers/XmlTypeHandler.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/wsf/spi/deployment/JAXBIntrosCustomizationsDeployer.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/wsf/spi/deployment/JAXBIntrosCustomizationsDeployer.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/wsf/spi/deployment/JAXBIntrosCustomizationsDeployer.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,86 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.wsf.spi.deployment;
+
+import org.jboss.jaxb.intros.configmodel.JaxbIntros;
+import org.jboss.jaxb.intros.IntroductionsConfigParser;
+import org.jboss.jaxb.intros.IntroductionsAnnotationReader;
+import org.jboss.wsf.spi.binding.BindingCustomization;
+import org.jboss.ws.core.jaxws.JAXBBindingCustomization;
+import org.jboss.ws.integration.UnifiedVirtualFile;
+import org.apache.log4j.Logger;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLClassLoader;
+
+import com.sun.xml.bind.api.JAXBRIContext;
+
+/**
+ * Deployer for {@link BindingCustomization BindingCustomizations} for JAXB
+ * Introductions.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class JAXBIntrosCustomizationsDeployer extends AbstractDeployer {
+
+ private static Logger logger = Logger.getLogger(JAXBIntrosCustomizationsDeployer.class);
+ private static final String META_INF_JAXB_INTROS_XML = "META-INF/jaxb-intros.xml";
+
+ public void create(Deployment deployment) {
+ UnifiedVirtualFile virtualFile = deployment.getRootFile();
+ InputStream introsConfigStream = null;
+
+ try {
+ URLClassLoader classLoader = new URLClassLoader(new URL[] {virtualFile.toURL()});
+ introsConfigStream = classLoader.getResource(META_INF_JAXB_INTROS_XML).openStream();
+ } catch (Exception e) {
+ logger.info("[" + deployment.getService().getContextRoot() + "] No JAXB Introductions Configurations specified (" + META_INF_JAXB_INTROS_XML + ").");
+ return;
+ }
+
+ try {
+ if(introsConfigStream != null) {
+ JaxbIntros jaxbIntros = IntroductionsConfigParser.parseConfig(introsConfigStream);
+ IntroductionsAnnotationReader annotationReader = new IntroductionsAnnotationReader(jaxbIntros);
+ String defaultNamespace = jaxbIntros.getDefaultNamespace();
+ BindingCustomization jaxbCustomizations = new JAXBBindingCustomization();
+
+ jaxbCustomizations.put(JAXBRIContext.ANNOTATION_READER, annotationReader);
+ if(defaultNamespace != null) {
+ jaxbCustomizations.put(JAXBRIContext.DEFAULT_NAMESPACE_REMAP, defaultNamespace);
+ }
+
+ for (Endpoint endpoint : deployment.getService().getEndpoints()) {
+ endpoint.addBindingCustomization(jaxbCustomizations);
+ }
+ }
+ } finally {
+ if(introsConfigStream != null) {
+ try {
+ introsConfigStream.close();
+ } catch (IOException e) {
+ logger.error("[" + deployment.getService().getContextRoot() + "] Error closing JAXB Introductions Configurations stream " + META_INF_JAXB_INTROS_XML + ".", e);
+ }
+ }
+ }
+ }
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/java/org/jboss/wsf/spi/deployment/JAXBIntrosCustomizationsDeployer.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/resources/jaxb-intros.xsd
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/main/resources/jaxb-intros.xsd (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/main/resources/jaxb-intros.xsd 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:jaxb-intros="http://www.jboss.org/xsd/jaxb/intros"
+ targetNamespace="http://www.jboss.org/xsd/jaxb/intros"
+ elementFormDefault="qualified">
+
+ <xsd:element name="jaxb-intros">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">The jbossesb JAXB Annotation Introductions configuration.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="jaxb-intros:Class" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="default-namespace" use="optional"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="Class">
+ <xsd:sequence>
+ <xsd:element ref="jaxb-intros:XmlType" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="jaxb-intros:Field" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="jaxb-intros:Method" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required"/>
+ </xsd:complexType>
+ <xsd:element name="Class" type="jaxb-intros:Class">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">Java Top Level Class JAXB Annotation Introductions configuration.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:complexType name="class-member-intro-config">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">Java Class Member (Field, Method Constructor) JAXB Annotation Introductions configuration base type.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="jaxb-intros:XmlElement" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="jaxb-intros:XmlAttribute" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required"/>
+ </xsd:complexType>
+ <xsd:element name="class-member-intro-config" abstract="true" />
+
+ <xsd:complexType name="Field">
+ <xsd:complexContent>
+ <xsd:extension base="jaxb-intros:class-member-intro-config" />
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:element name="Field" type="jaxb-intros:Field" substitutionGroup="jaxb-intros:class-member-intro-config">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">Java Class Field JAXB Annotation Introductions configuration.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:complexType name="Method">
+ <xsd:complexContent>
+ <xsd:extension base="jaxb-intros:class-member-intro-config" />
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:element name="Method" type="jaxb-intros:Method" substitutionGroup="jaxb-intros:class-member-intro-config">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">Java Class Method JAXB Annotation Introductions configuration.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:complexType name="XmlType">
+ <xsd:attribute name="name" use="optional" default="##default"/>
+ <xsd:attribute name="propOrder" use="optional" default=""/>
+ <xsd:attribute name="namespace" use="optional" default="##default"/>
+ <xsd:attribute name="factoryClass" use="optional"/>
+ <xsd:attribute name="factoryMethod" use="optional" default=""/>
+ </xsd:complexType>
+ <xsd:element name="XmlType" type="jaxb-intros:XmlType">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">JAXB 'XmlType' Annotation Introduction configuration.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:complexType name="XmlElement">
+ <xsd:attribute name="name" use="optional" default="##default"/>
+ <xsd:attribute name="nillable" type="xsd:boolean" use="optional" default="false"/>
+ <xsd:attribute name="required" type="xsd:boolean" use="optional" default="false"/>
+ <xsd:attribute name="namespace" use="optional" default="##default"/>
+ <xsd:attribute name="defaultValue" use="optional"/>
+ <xsd:attribute name="type" use="optional"/>
+ </xsd:complexType>
+ <xsd:element name="XmlElement" type="jaxb-intros:XmlElement">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">JAXB 'XmlElement' Annotation Introduction configuration.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:complexType name="XmlAttribute">
+ <xsd:attribute name="name" use="optional" default="##default"/>
+ <xsd:attribute name="required" type="xsd:boolean" use="optional" default="false"/>
+ <xsd:attribute name="namespace" use="optional" default="##default"/>
+ </xsd:complexType>
+ <xsd:element name="XmlAttribute" type="jaxb-intros:XmlAttribute">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">JAXB 'XmlAttribute' Annotation Introduction configuration.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+</xsd:schema>
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/main/resources/jaxb-intros.xsd
___________________________________________________________________
Name: svn:mime-type
+ text/xml
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/IntroductionsAnnotationReaderUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/IntroductionsAnnotationReaderUnitTest.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/IntroductionsAnnotationReaderUnitTest.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,96 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.jaxb.intros;
+
+import junit.framework.TestCase;
+import org.jboss.jaxb.intros.configmodel.JaxbIntros;
+import org.jboss.jaxb.intros.testbeans.*;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.transform.stream.StreamSource;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.Map;
+import java.util.HashMap;
+import java.math.BigDecimal;
+
+import com.sun.xml.bind.api.JAXBRIContext;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class IntroductionsAnnotationReaderUnitTest extends TestCase {
+
+ public void test_annotation_intro() throws ConfigurationException, NoSuchMethodException, NoSuchFieldException {
+ JaxbIntros config = IntroductionsConfigParser.parseConfig(getClass().getResourceAsStream("intro-config-02.xml"));
+ IntroductionsAnnotationReader reader = new IntroductionsAnnotationReader(config);
+ Method testBean1Method = TestBean1.class.getMethod("getOrderDate");
+ Field testBean2Field = TestBean2.class.getField("orderNumber");
+
+ assertTrue("Failed", reader.hasClassAnnotation(TestBean1.class, XmlType.class));
+ XmlType xmlType = reader.getClassAnnotation(XmlType.class, TestBean1.class, null);
+ assertEquals("http://jbossesb.y.jboss.org", xmlType.namespace());
+ String[] propOrder = xmlType.propOrder();
+ assertEquals(3, propOrder.length);
+ assertTrue(propOrder[0].equals("a") && propOrder[1].equals("b") && propOrder[2].equals("c"));
+ assertTrue(xmlType.factoryClass() == TestBean1.class);
+
+ XmlAttribute xmlAttribute = reader.getMethodAnnotation(XmlAttribute.class, testBean1Method, null);
+ assertEquals("##default", xmlAttribute.name());
+ assertEquals("http://jbossesb.z.jboss.org", xmlAttribute.namespace());
+ assertFalse(xmlAttribute.required());
+
+ XmlElement xmlElement = reader.getFieldAnnotation(XmlElement.class, testBean2Field, null);
+ assertEquals("OrderNum", xmlElement.name());
+ assertTrue(xmlElement.nillable());
+ assertTrue(xmlElement.type() == TestBean2.class);
+
+ xmlAttribute = reader.getFieldAnnotation(XmlAttribute.class, testBean2Field, null);
+ assertEquals("http://jbossesb.org", xmlAttribute.namespace());
+ }
+
+ public void test_jaxb_unmarshal() throws ConfigurationException, JAXBException {
+ JaxbIntros config = IntroductionsConfigParser.parseConfig(getClass().getResourceAsStream("intro-config-03.xml"));
+ IntroductionsAnnotationReader reader = new IntroductionsAnnotationReader(config);
+ Map<String, Object> jaxbConfig = new HashMap<String, Object>();
+
+ jaxbConfig.put(JAXBRIContext.DEFAULT_NAMESPACE_REMAP, "http://org.jboss.esb/namespace2");
+ jaxbConfig.put(JAXBRIContext.ANNOTATION_READER, reader);
+
+ JAXBContext jaxbContext = JAXBContext.newInstance(new Class[] {CustomerOrder.class}, jaxbConfig);
+ Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
+
+ JAXBElement jbe = unmarshaller.unmarshal(new StreamSource(getClass().getResourceAsStream("order-message.xml")), CustomerOrder.class);
+ CustomerOrder order = (CustomerOrder) jbe.getValue();
+
+ assertNotNull("null Order", order);
+ assertNotNull("null Header", order.getHeader());
+ assertNotNull("null Items", order.getItems());
+ assertEquals("Shelton", order.getHeader().getBillTo().getAddress().getCity());
+ assertEquals("bob at activeSteel.com", order.getHeader().getBillTo().getContact().getEmail());
+ assertEquals((new BigDecimal(490.00)).toBigInteger(), (order.getItems()[0].getPrice()).toBigInteger());
+ }
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/IntroductionsAnnotationReaderUnitTest.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/IntroductionsConfigParserUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/IntroductionsConfigParserUnitTest.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/IntroductionsConfigParserUnitTest.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.jaxb.intros;
+
+import junit.framework.TestCase;
+import org.jboss.jaxb.intros.configmodel.JaxbIntros;
+import org.jboss.jaxb.intros.configmodel.ClassIntroConfig;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class IntroductionsConfigParserUnitTest extends TestCase {
+
+ public void test() throws ConfigurationException {
+ JaxbIntros config = IntroductionsConfigParser.parseConfig(getClass().getResourceAsStream("intro-config-01.xml"));
+
+ assertEquals("http://jbossesb.x.jboss.org", config.getDefaultNamespace());
+ assertEquals(2, config.getClazz().size());
+ ClassIntroConfig classIntroConfig = config.getClazz().get(0);
+ assertEquals(TestBean1.class.getName(), classIntroConfig.getName());
+ assertEquals("http://jbossesb.y.jboss.org", classIntroConfig.getXmlType().getNamespace());
+ assertEquals(1, classIntroConfig.getMethod().size());
+
+ // Could add more tests here but we're OK for now... JAXB seems to be working fine and
+ // we'll have more tests on the AnnotationReader!
+ }
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/IntroductionsConfigParserUnitTest.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/TestBean1.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/TestBean1.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/TestBean1.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.jaxb.intros;
+
+import java.util.Date;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class TestBean1 {
+
+ public Date getOrderDate() {
+ return null;
+ }
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/TestBean1.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/TestBean2.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/TestBean2.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/TestBean2.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.jaxb.intros;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class TestBean2 {
+
+ @XmlAttribute(namespace="http://jbossesb.org") // This should be picked up
+ @XmlElement(name="xyz") // This should be overridden by the introduced config (intro-config-02.xml)
+ public int orderNumber;
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/TestBean2.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/intro-config-01.xml
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/intro-config-01.xml (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/intro-config-01.xml 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,24 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jaxb-intros xmlns="http://www.jboss.org/xsd/jaxb/intros"
+ default-namespace="http://jbossesb.x.jboss.org">
+
+ <!--
+ The XSD for the schema can be found at:
+ http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/extras/jaxbintros/src/main/resources/jaxb-intros.xsd
+ Register it against the http://www.jboss.org/xsd/jaxb/intros namespace in your IDE and away you go :-)
+ -->
+
+ <Class name="org.jboss.jaxb.intros.TestBean1">
+ <XmlType namespace="http://jbossesb.y.jboss.org" />
+ <Method name="getOrderDate">
+ <XmlAttribute namespace="http://jbossesb.z.jboss.org" required="false"/>
+ </Method>
+ </Class>
+
+ <Class name="org.jboss.jaxb.intros.TestBean2">
+ <Field name="orderNumber">
+ <XmlElement name="OrderNum" nillable="true" />
+ </Field>
+ </Class>
+
+</jaxb-intros>
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/intro-config-01.xml
___________________________________________________________________
Name: svn:mime-type
+ text/xml
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/intro-config-02.xml
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/intro-config-02.xml (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/intro-config-02.xml 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,24 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jaxb-intros xmlns="http://www.jboss.org/xsd/jaxb/intros"
+ default-namespace="http://jbossesb.x.jboss.org">
+
+ <!--
+ The XSD for the schema can be found at:
+ http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/extras/jaxbintros/src/main/resources/jaxb-intros.xsd
+ Register it against the http://www.jboss.org/xsd/jaxb/intros namespace in your IDE and away you go :-)
+ -->
+
+ <Class name="org.jboss.jaxb.intros.TestBean1">
+ <XmlType namespace="http://jbossesb.y.jboss.org" propOrder="a,b,c" factoryClass="org.jboss.jaxb.intros.TestBean1" />
+ <Method name="getOrderDate">
+ <XmlAttribute namespace="http://jbossesb.z.jboss.org" required="false"/>
+ </Method>
+ </Class>
+
+ <Class name="org.jboss.jaxb.intros.TestBean2">
+ <Field name="orderNumber">
+ <XmlElement name="OrderNum" nillable="true" type="org.jboss.jaxb.intros.TestBean2" />
+ </Field>
+ </Class>
+
+</jaxb-intros>
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/intro-config-02.xml
___________________________________________________________________
Name: svn:mime-type
+ text/xml
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/intro-config-03.xml
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/intro-config-03.xml (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/intro-config-03.xml 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,32 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jaxb-intros xmlns="http://www.jboss.org/xsd/jaxb/intros">
+
+ <!--
+ The XSD for the schema can be found at:
+ http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/extras/jaxbintros/src/main/resources/jaxb-intros.xsd
+ Register it against the http://www.jboss.org/xsd/jaxb/intros namespace in your IDE and away you go :-)
+ -->
+
+ <!--
+ Note: how the "name" attributes on class, field and method configs can be regular expressions.
+ -->
+
+ <!--
+ The type namespaces on the customerOrder are different from the rest of the message...
+ -->
+ <Class name="org.jboss.jaxb.intros.testbeans.CustomerOrder">
+ <Method name="get.*">
+ <XmlElement namespace="http://org.jboss.esb/ns" />
+ </Method>
+ </Class>
+
+ <!--
+ More general namespace config...
+ -->
+ <Class name="org.jboss.jaxb.intros.testbeans.*">
+ <Method name="get.*">
+ <XmlElement namespace="http://org.jboss.esb/ns1" />
+ </Method>
+ </Class>
+
+</jaxb-intros>
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/intro-config-03.xml
___________________________________________________________________
Name: svn:mime-type
+ text/xml
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/order-message.xml
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/order-message.xml (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/order-message.xml 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,49 @@
+<ns:customerOrder xmlns:ns="http://org.jboss.esb/ns" xmlns:ns1="http://org.jboss.esb/ns1">
+ <ns:header>
+ <ns1:billTerms/>
+ <ns1:billTo>
+ <ns1:address>
+ <ns1:city>Shelton</ns1:city>
+ <ns1:state>CT</ns1:state>
+ <ns1:street1>160 Active Lane</ns1:street1>
+ <ns1:street2/>
+ <ns1:zip>06484</ns1:zip>
+ </ns1:address>
+ <ns1:company>Active Steel</ns1:company>
+ <ns1:contact>
+ <ns1:email>bob at activeSteel.com</ns1:email>
+ <ns1:fax>(203) 555-1235</ns1:fax>
+ <ns1:name>Bob Active</ns1:name>
+ <ns1:phone>(203) 555-1234</ns1:phone>
+ </ns1:contact>
+ </ns1:billTo>
+ <ns1:customerNumber>123456</ns1:customerNumber>
+ <ns1:orderDate>2006-05-01T00:00:00.000Z </ns1:orderDate>
+ <ns1:orderTotal>88500.00</ns1:orderTotal>
+ <ns1:poNumber>PO000123</ns1:poNumber>
+ <ns1:shipTerms/>
+ <ns1:shipTo>
+ <ns1:address>
+ <ns1:city>Shelton</ns1:city>
+ <ns1:state>CT</ns1:state>
+ <ns1:street1>160 Active Lane</ns1:street1>
+ <ns1:street2/>
+ <ns1:zip>06484</ns1:zip>
+ </ns1:address>
+ <ns1:company>Active Steel</ns1:company>
+ <ns1:contact>
+ <ns1:email>bob at activeSteel.com</ns1:email>
+ <ns1:fax>(203) 555-1235</ns1:fax>
+ <ns1:name>Bob Active</ns1:name>
+ <ns1:phone>(203) 555-1234</ns1:phone>
+ </ns1:contact>
+ </ns1:shipTo>
+ </ns:header>
+ <ns:items>
+ <ns1:description>Flat 16 feet 100 count</ns1:description>
+ <ns1:extensionAmount>24500.00</ns1:extensionAmount>
+ <ns1:partNumber>FLT16100</ns1:partNumber>
+ <ns1:price>490.00</ns1:price>
+ <ns1:quantity>50</ns1:quantity>
+ </ns:items>
+</ns:customerOrder>
\ No newline at end of file
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/order-message.xml
___________________________________________________________________
Name: svn:mime-type
+ text/xml
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Address.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Address.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Address.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,45 @@
+package org.jboss.jaxb.intros.testbeans;
+
+import java.io.Serializable;
+
+public class Address implements Serializable {
+
+protected String street1;
+
+protected String street2;
+
+protected String city;
+
+protected String state;
+
+protected String zip;
+public Address(){}
+
+public Address(String street1, String street2, String city, String state, String zip){
+this.street1=street1;
+this.street2=street2;
+this.city=city;
+this.state=state;
+this.zip=zip;
+}
+public String getStreet1() { return street1 ;}
+
+public void setStreet1(String street1){ this.street1=street1; }
+
+public String getStreet2() { return street2 ;}
+
+public void setStreet2(String street2){ this.street2=street2; }
+
+public String getCity() { return city ;}
+
+public void setCity(String city){ this.city=city; }
+
+public String getState() { return state ;}
+
+public void setState(String state){ this.state=state; }
+
+public String getZip() { return zip ;}
+
+public void setZip(String zip){ this.zip=zip; }
+
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Address.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Contact.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Contact.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Contact.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,38 @@
+package org.jboss.jaxb.intros.testbeans;
+
+import java.io.Serializable;
+
+public class Contact implements Serializable {
+
+protected String name;
+
+protected String phone;
+
+protected String fax;
+
+protected String email;
+public Contact(){}
+
+public Contact(String name, String phone, String fax, String email){
+this.name=name;
+this.phone=phone;
+this.fax=fax;
+this.email=email;
+}
+public String getName() { return name ;}
+
+public void setName(String name){ this.name=name; }
+
+public String getPhone() { return phone ;}
+
+public void setPhone(String phone){ this.phone=phone; }
+
+public String getFax() { return fax ;}
+
+public void setFax(String fax){ this.fax=fax; }
+
+public String getEmail() { return email ;}
+
+public void setEmail(String email){ this.email=email; }
+
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Contact.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/CustomerOrder.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/CustomerOrder.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/CustomerOrder.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,27 @@
+package org.jboss.jaxb.intros.testbeans;
+
+import java.io.Serializable;
+
+public class CustomerOrder implements Serializable {
+
+ protected OrderHeader header;
+
+ protected Item[] items;
+
+ public OrderHeader getHeader() {
+ return header;
+ }
+
+ public void setHeader(OrderHeader header) {
+ this.header = header;
+ }
+
+ public Item[] getItems() {
+ return items;
+ }
+
+ public void setItems(Item[] items) {
+ this.items = items;
+ }
+
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/CustomerOrder.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Item.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Item.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Item.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,45 @@
+package org.jboss.jaxb.intros.testbeans;
+
+import java.io.Serializable;
+
+public class Item implements Serializable {
+
+protected String partNumber;
+
+protected String description;
+
+protected int quantity;
+
+protected java.math.BigDecimal price;
+
+protected java.math.BigDecimal extensionAmount;
+public Item(){}
+
+public Item(String partNumber, String description, int quantity, java.math.BigDecimal price, java.math.BigDecimal extensionAmount){
+this.partNumber=partNumber;
+this.description=description;
+this.quantity=quantity;
+this.price=price;
+this.extensionAmount=extensionAmount;
+}
+public String getPartNumber() { return partNumber ;}
+
+public void setPartNumber(String partNumber){ this.partNumber=partNumber; }
+
+public String getDescription() { return description ;}
+
+public void setDescription(String description){ this.description=description; }
+
+public int getQuantity() { return quantity ;}
+
+public void setQuantity(int quantity){ this.quantity=quantity; }
+
+public java.math.BigDecimal getPrice() { return price ;}
+
+public void setPrice(java.math.BigDecimal price){ this.price=price; }
+
+public java.math.BigDecimal getExtensionAmount() { return extensionAmount ;}
+
+public void setExtensionAmount(java.math.BigDecimal extensionAmount){ this.extensionAmount=extensionAmount; }
+
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Item.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/OrderHeader.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/OrderHeader.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/OrderHeader.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,101 @@
+package org.jboss.jaxb.intros.testbeans;
+
+import java.io.Serializable;
+
+public class OrderHeader implements Serializable {
+
+ protected String customerNumber;
+
+ protected String poNumber;
+
+ protected java.util.Calendar orderDate;
+
+ protected java.math.BigDecimal orderTotal;
+
+ protected Party billTo;
+
+ protected Party shipTo;
+
+ protected String billTerms;
+
+ protected String shipTerms;
+
+ public OrderHeader() {
+ }
+
+ public OrderHeader(String customerNumber, String poNumber, java.util.Calendar orderDate, java.math.BigDecimal orderTotal, Party billTo, Party shipTo, String billTerms, String shipTerms) {
+ this.customerNumber = customerNumber;
+ this.poNumber = poNumber;
+ this.orderDate = orderDate;
+ this.orderTotal = orderTotal;
+ this.billTo = billTo;
+ this.shipTo = shipTo;
+ this.billTerms = billTerms;
+ this.shipTerms = shipTerms;
+ }
+
+ public String getCustomerNumber() {
+ return customerNumber;
+ }
+
+ public void setCustomerNumber(String customerNumber) {
+ this.customerNumber = customerNumber;
+ }
+
+ public String getPoNumber() {
+ return poNumber;
+ }
+
+ public void setPoNumber(String poNumber) {
+ this.poNumber = poNumber;
+ }
+
+ public java.util.Calendar getOrderDate() {
+ return orderDate;
+ }
+
+ public void setOrderDate(java.util.Calendar orderDate) {
+ this.orderDate = orderDate;
+ }
+
+ public java.math.BigDecimal getOrderTotal() {
+ return orderTotal;
+ }
+
+ public void setOrderTotal(java.math.BigDecimal orderTotal) {
+ this.orderTotal = orderTotal;
+ }
+
+ public Party getBillTo() {
+ return billTo;
+ }
+
+ public void setBillTo(Party billTo) {
+ this.billTo = billTo;
+ }
+
+ public Party getShipTo() {
+ return shipTo;
+ }
+
+ public void setShipTo(Party shipTo) {
+ this.shipTo = shipTo;
+ }
+
+ public String getBillTerms() {
+ return billTerms;
+ }
+
+ public void setBillTerms(String billTerms) {
+ this.billTerms = billTerms;
+ }
+
+ public String getShipTerms() {
+ return shipTerms;
+ }
+
+ public void setShipTerms(String shipTerms) {
+ this.shipTerms = shipTerms;
+ }
+
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/OrderHeader.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Party.java
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Party.java (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Party.java 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,31 @@
+package org.jboss.jaxb.intros.testbeans;
+
+import java.io.Serializable;
+
+public class Party implements Serializable {
+
+protected String company;
+
+protected Contact contact;
+
+protected Address address;
+public Party(){}
+
+public Party(String company, Contact contact, Address address){
+this.company=company;
+this.contact=contact;
+this.address=address;
+}
+public String getCompany() { return company ;}
+
+public void setCompany(String company){ this.company=company; }
+
+public Contact getContact() { return contact ;}
+
+public void setContact(Contact contact){ this.contact=contact; }
+
+public Address getAddress() { return address ;}
+
+public void setAddress(Address address){ this.address=address; }
+
+}
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/java/org/jboss/jaxb/intros/testbeans/Party.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/resources/log4j.xml
===================================================================
--- labs/jbossesb/trunk/product/extras/jaxbintros/src/test/resources/log4j.xml (rev 0)
+++ labs/jbossesb/trunk/product/extras/jaxbintros/src/test/resources/log4j.xml 2007-06-29 16:59:20 UTC (rev 12951)
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <category name="org.jbpm">
+ <priority value="INFO"/>
+ </category>
+ <category name="org.hibernate">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.jboss">
+ <priority value="WARN"/>
+ </category>
+ <category name="org.jboss.soa.esb">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.jboss.internal.soa.esb">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.apache">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.jboss.soa.esb.services.jbpm">
+ <priority value="DEBUG"/>
+ </category>
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ </root>
+
+</log4j:configuration>
Property changes on: labs/jbossesb/trunk/product/extras/jaxbintros/src/test/resources/log4j.xml
___________________________________________________________________
Name: svn:mime-type
+ text/xml
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list