You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2017/03/30 15:38:36 UTC

[1/4] cxf git commit: CXF-7305: replaced prerequisites as this is only intended for maven-plugin projects but not for non maven-plugin projects. see also MNG-6092 This closes #250

Repository: cxf
Updated Branches:
  refs/heads/master fe55813cc -> aa0de494b


CXF-7305: replaced prerequisites as this is only intended for maven-plugin projects but not for non maven-plugin projects. see also MNG-6092
This closes #250


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/ff9e62a4
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/ff9e62a4
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/ff9e62a4

Branch: refs/heads/master
Commit: ff9e62a46c4491d6c5fc8d07b2813fa0224e61c3
Parents: fe55813
Author: Dennis Kieselhorst <de...@apache.org>
Authored: Thu Mar 30 09:18:14 2017 +0200
Committer: Daniel Kulp <dk...@apache.org>
Committed: Thu Mar 30 09:33:49 2017 -0400

----------------------------------------------------------------------
 pom.xml | 29 ++++++++++++++++++++++++++---
 1 file changed, 26 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/ff9e62a4/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 63218c9..0bb74d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,9 +38,6 @@
         <system>jira</system>
         <url>https://issues.apache.org/jira/browse/CXF</url>
     </issueManagement>
-    <prerequisites>
-        <maven>3.1</maven>
-    </prerequisites>
     <properties>
         <cxf.compiler.fork>false</cxf.compiler.fork>
         <cxf.build-utils.version>3.2.2-SNAPSHOT</cxf.build-utils.version>
@@ -651,8 +648,34 @@
                         </lifecycleMappingMetadata>
                     </configuration>
                 </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-enforcer-plugin</artifactId>
+                    <version>1.4.1</version>
+                </plugin>
             </plugins>
         </pluginManagement>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-enforcer-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>enforce-versions</id>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <requireMavenVersion>
+                                    <version>3.1</version>
+                                </requireMavenVersion>
+                            </rules>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
     </build>
     <reporting>
         <plugins>


[4/4] cxf git commit: Allow netbeans to recognize files generated by cxf-xjc-plugin This closes #138

Posted by dk...@apache.org.
Allow netbeans to recognize files generated by cxf-xjc-plugin
This closes #138


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/aa0de494
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/aa0de494
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/aa0de494

Branch: refs/heads/master
Commit: aa0de494b9428be9e1b96c457e0c9037d1f9035c
Parents: 9263c72
Author: Ciprian Ciubotariu <ch...@gmx.net>
Authored: Tue May 24 23:46:20 2016 +0300
Committer: Daniel Kulp <dk...@apache.org>
Committed: Thu Mar 30 10:27:20 2017 -0400

----------------------------------------------------------------------
 core/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/aa0de494/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 445c2e8..68e870e 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -272,7 +272,7 @@
                                 <extension>org.apache.cxf.xjcplugins:cxf-xjc-javadoc:${cxf.xjc-utils.version}</extension>
                                 <extension>org.apache.cxf.xjcplugins:cxf-xjc-dv:${cxf.xjc-utils.version}</extension>
                             </extensions>
-                            <sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot>
+                            <sourceRoot>${basedir}/target/generated-sources/cxf-xjc-plugin</sourceRoot>
                             <xsdOptions>
                                 <xsdOption>
                                     <xsd>${basedir}/src/main/resources/schemas/wsdl/http.xsd</xsd>


[2/4] cxf git commit: change evt cast type IdleStateHandler triggered IdleStateEvent, not IdleState This closes #252

Posted by dk...@apache.org.
change evt cast type
IdleStateHandler triggered IdleStateEvent, not IdleState
This closes #252


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/b5787370
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/b5787370
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/b5787370

Branch: refs/heads/master
Commit: b5787370fd49148f8655df5be76c103a98bf5638
Parents: ff9e62a
Author: msamoylych <ms...@users.noreply.github.com>
Authored: Thu Mar 30 16:16:28 2017 +0300
Committer: Daniel Kulp <dk...@apache.org>
Committed: Thu Mar 30 09:33:56 2017 -0400

----------------------------------------------------------------------
 .../http/netty/server/NettyHttpServletHandler.java          | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/b5787370/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServletHandler.java
----------------------------------------------------------------------
diff --git a/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServletHandler.java b/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServletHandler.java
index 9d55b5c..88fad7e 100644
--- a/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServletHandler.java
+++ b/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServletHandler.java
@@ -50,6 +50,7 @@ import io.netty.handler.codec.http.HttpResponse;
 import io.netty.handler.codec.http.HttpResponseStatus;
 import io.netty.handler.codec.http.HttpVersion;
 import io.netty.handler.timeout.IdleState;
+import io.netty.handler.timeout.IdleStateEvent;
 import io.netty.util.CharsetUtil;
 
 public class NettyHttpServletHandler extends ChannelInboundHandlerAdapter {
@@ -87,10 +88,10 @@ public class NettyHttpServletHandler extends ChannelInboundHandlerAdapter {
 
     @Override
     public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
-        if (evt instanceof IdleState) {
-            IdleState e = (IdleState) evt;
-            if (e == IdleState.READER_IDLE || e == IdleState.WRITER_IDLE) {
-                LOG.log(Level.FINE, "Closing idle channel: {}", e);
+        if (evt instanceof IdleStateEvent) {
+            IdleStateEvent e = (IdleStateEvent) evt;
+            if (e.state() == IdleState.READER_IDLE || e.state() == IdleState.WRITER_IDLE) {
+                LOG.log(Level.FINE, "Closing idle channel: {}", e.state());
                 ctx.close();
             }
         }


[3/4] cxf git commit: [CXF-7186][CXF-7188] Aegis DataBinding ignores certain JAXB annotations Patch from SanjinTulac applied (only to 3.2 branch due to behavior change) This closes #216

Posted by dk...@apache.org.
[CXF-7186][CXF-7188] Aegis DataBinding ignores certain JAXB annotations
Patch from SanjinTulac applied (only to 3.2 branch due to behavior change)
This closes #216


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/9263c72e
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/9263c72e
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/9263c72e

Branch: refs/heads/master
Commit: 9263c72e29ce5169af9f9393bc1e391f0e8d2f64
Parents: b578737
Author: Daniel Kulp <dk...@apache.org>
Authored: Thu Mar 30 09:56:15 2017 -0400
Committer: Daniel Kulp <dk...@apache.org>
Committed: Thu Mar 30 10:27:13 2017 -0400

----------------------------------------------------------------------
 .../cxf/aegis/type/java5/AnnotatedTypeInfo.java | 44 +++++++++++++++++++-
 .../cxf/aegis/type/java5/AnnotationReader.java  | 19 ++++++++-
 .../apache/cxf/aegis/type/java5/EnumType.java   | 37 +++++++++++++---
 .../cxf/aegis/type/java5/EnumTypeTest.java      | 33 +++++++++++++++
 .../apache/cxf/aegis/type/java5/JaxbBean1.java  | 10 +++++
 .../cxf/aegis/type/java5/JaxbTestEnum.java      |  7 +++-
 .../cxf/aegis/type/java5/JaxbTypeTest.java      | 28 ++++++++++++-
 7 files changed, 165 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/9263c72e/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/AnnotatedTypeInfo.java
----------------------------------------------------------------------
diff --git a/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/AnnotatedTypeInfo.java b/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/AnnotatedTypeInfo.java
index 0a4532f..a978bee 100644
--- a/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/AnnotatedTypeInfo.java
+++ b/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/AnnotatedTypeInfo.java
@@ -19,6 +19,7 @@
 package org.apache.cxf.aegis.type.java5;
 
 import java.beans.PropertyDescriptor;
+import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 
 import javax.xml.namespace.QName;
@@ -93,14 +94,46 @@ public class AnnotatedTypeInfo extends BeanTypeInfo {
     }
 
     protected QName createQName(PropertyDescriptor desc) {
+        String name = getName(desc);
+        String namespace = getNamespace(desc);
+        return new QName(namespace, name);
+    }
+
+    /**
+     * XML Name of a field is derived from the following sources in this order of priorities:
+     * <ul>
+     *   <li> getter method annotation
+     *   <li> field annotation
+     *   <li> field name
+     * </ul>
+     */
+    private String getName(PropertyDescriptor desc) {
         String name = annotationReader.getName(desc.getReadMethod());
         if (name == null) {
+            name = annotationReader.getName(getField(desc));
+        }
+        if (name == null) {
             name = desc.getName();
         }
+        return name;
+    }
 
-        // namespace: method, class, package, generated
+    /**
+     * XML Namespace of a field is derived from the following sources in this order of priorities:
+     * <ol>
+     *  <li> getter method annotation
+     *  <li> field annotation
+     *  <li> class annotation
+     *  <li> package annotation
+     *  <li> fully qualified package name
+     * </ol>
+     */
+    private String getNamespace(PropertyDescriptor desc) {
         String namespace = annotationReader.getNamespace(desc.getReadMethod());
         if (namespace == null) {
+            namespace = annotationReader.getNamespace(getField(desc));
+        }
+        if (namespace == null) {
             namespace = annotationReader.getNamespace(getTypeClass());
         }
         if (namespace == null) {
@@ -109,8 +142,15 @@ public class AnnotatedTypeInfo extends BeanTypeInfo {
         if (namespace == null) {
             namespace = NamespaceHelper.makeNamespaceFromClassName(getTypeClass().getName(), "http");
         }
+        return namespace;
+    }
 
-        return new QName(namespace, name);
+    private Field getField(PropertyDescriptor desc) {
+        try {
+            return getTypeClass().getDeclaredField(desc.getName());
+        } catch (NoSuchFieldException e) {
+            return null;
+        }
     }
 
     public boolean isNillable(QName name) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/9263c72e/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/AnnotationReader.java
----------------------------------------------------------------------
diff --git a/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/AnnotationReader.java b/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/AnnotationReader.java
index d4fcb5a..33f1b4f 100644
--- a/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/AnnotationReader.java
+++ b/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/AnnotationReader.java
@@ -20,8 +20,11 @@ package org.apache.cxf.aegis.type.java5;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.AnnotatedElement;
+import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 
+import javax.xml.bind.annotation.XmlEnumValue;
+
 import org.apache.cxf.aegis.type.AegisType;
 
 public class AnnotationReader {
@@ -271,7 +274,7 @@ public class AnnotationReader {
             Class<? extends Annotation>... annotations) {
 
         for (Class<?> annotation : annotations) {
-            if (annotation != null) {
+            if (annotation != null && element != null) {
                 try {
                     Annotation ann = element.getAnnotation(annotation.asSubclass(Annotation.class));
                     if (ann != null) {
@@ -369,5 +372,19 @@ public class AnnotationReader {
         return false;
     }
 
+    public static String getEnumValue(Enum<?> enumConstant) {
+        @SuppressWarnings("rawtypes")
+        Class<? extends Enum> enumClass = enumConstant.getClass();
+        try {
+            Field constantField = enumClass.getDeclaredField(enumConstant.name());
+            XmlEnumValue constantValueAnnotation = constantField.getAnnotation(XmlEnumValue.class);
+            if (constantValueAnnotation == null) {
+                return null;
+            }
+            return constantValueAnnotation.value();
+        } catch (NoSuchFieldException e) {
+            return null;
+        }
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/9263c72e/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/EnumType.java
----------------------------------------------------------------------
diff --git a/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/EnumType.java b/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/EnumType.java
index 82b8cc8..91a4eb2 100644
--- a/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/EnumType.java
+++ b/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/EnumType.java
@@ -34,19 +34,16 @@ import org.apache.ws.commons.schema.XmlSchemaSimpleTypeRestriction;
 import org.apache.ws.commons.schema.constants.Constants;
 
 public class EnumType extends AegisType {
-    @SuppressWarnings("unchecked")
     @Override
     public Object readObject(MessageReader reader, Context context) {
         String value = reader.getValue();
-        @SuppressWarnings("rawtypes")
-        Class<? extends Enum> cls = (Class<? extends Enum>)getTypeClass();
-        return Enum.valueOf(cls, value.trim());
+        return matchValue(value);
     }
 
     @Override
     public void writeObject(Object object, MessageWriter writer, Context context) {
         // match the reader.
-        writer.writeValue(((Enum<?>)object).name());
+        writer.writeValue(getValue((Enum<?>)object));
     }
 
     @Override
@@ -77,11 +74,39 @@ public class EnumType extends AegisType {
         List<XmlSchemaFacet> facets = restriction.getFacets();
         for (Object constant : constants) {
             XmlSchemaEnumerationFacet f = new XmlSchemaEnumerationFacet();
-            f.setValue(((Enum<?>)constant).name());
+            f.setValue(getValue(constant));
             facets.add(f);
         }
     }
 
+    @SuppressWarnings("unchecked")
+    private Enum<?> matchValue(String value) {
+        if (value == null) {
+            return null;
+        }
+        @SuppressWarnings("rawtypes")
+        Class<? extends Enum> enumClass = (Class<? extends Enum>)getTypeClass();
+        for (Enum<?> enumConstant : enumClass.getEnumConstants()) {
+            if (value.equals(AnnotationReader.getEnumValue(enumConstant))) {
+                return enumConstant;
+            }
+        }
+        return Enum.valueOf(enumClass, value.trim());
+    }
+
+
+    private Object getValue(Object constant) {
+        if (!(constant instanceof Enum<?>)) {
+            return null;
+        }
+        Enum<?> enumConstant = (Enum<?>)constant;
+        String annotatedValue = AnnotationReader.getEnumValue(enumConstant);
+        if (annotatedValue != null) {
+            return annotatedValue;
+        }
+        return enumConstant.name();
+    }
+
     @Override
     public boolean isComplex() {
         return true;

http://git-wip-us.apache.org/repos/asf/cxf/blob/9263c72e/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java
----------------------------------------------------------------------
diff --git a/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java b/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java
index 96dd683..83a4b87 100644
--- a/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java
+++ b/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java
@@ -157,6 +157,39 @@ public class EnumTypeTest extends AbstractAegisTest {
         EnumBean bean = (EnumBean)value;
         assertNull(bean.getCurrency());
     }
+    
+    /**
+     * {@link https://issues.apache.org/jira/browse/CXF-7188}
+     */
+    @Test
+    public void testTypeWithJaxbAnnotations() throws Exception {
+        AegisType type = tm.getTypeCreator().createType(JaxbTestEnum.class);
+
+        Element element = writeObjectToElement(type, JaxbTestEnum.VALUE1, getContext());
+
+        assertEquals("Value1", element.getTextContent());
+        XMLStreamReader xreader = StaxUtils.createXMLStreamReader(element);
+        ElementReader reader = new ElementReader(xreader);
+        Object value = type.readObject(reader, getContext());
+        assertEquals(JaxbTestEnum.VALUE1, value);
+    }
+    
+    /**
+     * {@link https://issues.apache.org/jira/browse/CXF-7188}
+    */
+    @Test
+    public void testWsdlFromJaxbAnnotations() throws Exception {
+        AegisType type = tm.getTypeCreator().createType(JaxbTestEnum.class);
+        XmlSchema schema = newXmlSchema("urn:test");
+        type.writeSchema(schema);
+
+        XmlSchemaSerializer ser = new XmlSchemaSerializer();
+        Document doc = ser.serializeSchema(schema, false)[0];
+        addNamespace("xsd", Constants.URI_2001_SCHEMA_XSD);
+        assertValid("//xsd:simpleType[@name='bar']/xsd:restriction[@base='xsd:string']", doc);
+        assertValid("//xsd:restriction[@base='xsd:string']/xsd:enumeration[@value='Value1']", doc);
+        assertValid("//xsd:restriction[@base='xsd:string']/xsd:enumeration[@value='VALUE2']", doc);
+    }
 
     public static class EnumBean {
         private Currency currency;

http://git-wip-us.apache.org/repos/asf/cxf/blob/9263c72e/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbBean1.java
----------------------------------------------------------------------
diff --git a/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbBean1.java b/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbBean1.java
index d3312bb..64e8d8e 100644
--- a/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbBean1.java
+++ b/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbBean1.java
@@ -25,6 +25,8 @@ public class JaxbBean1 {
     private String elementProperty;
     private String attributeProperty;
     private String bogusProperty;
+    @XmlElement(name = "Annotated")
+    private String annotatedProperty;
 
     @XmlAttribute
     public String getAttributeProperty() {
@@ -51,4 +53,12 @@ public class JaxbBean1 {
     public void setElementProperty(String elementProperty) {
         this.elementProperty = elementProperty;
     }
+
+    public String getAnnotatedProperty() {
+        return annotatedProperty;
+    }
+
+    public void setAnnotatedProperty(String annotatedProperty) {
+        this.annotatedProperty = annotatedProperty;
+    }
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/9263c72e/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbTestEnum.java
----------------------------------------------------------------------
diff --git a/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbTestEnum.java b/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbTestEnum.java
index aacb8ab..aad0f91 100644
--- a/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbTestEnum.java
+++ b/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbTestEnum.java
@@ -18,9 +18,12 @@
  */
 package org.apache.cxf.aegis.type.java5;
 
+import javax.xml.bind.annotation.XmlEnumValue;
 import javax.xml.bind.annotation.XmlType;
 
-@XmlType(namespace = "urn:xfire:foo")
+@XmlType(namespace = "urn:xfire:foo", name = "bar")
 public enum JaxbTestEnum {
-    VALUE1, VALUE2
+    @XmlEnumValue("Value1")
+    VALUE1,
+    VALUE2
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/9263c72e/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbTypeTest.java
----------------------------------------------------------------------
diff --git a/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbTypeTest.java b/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbTypeTest.java
index 33f6911..d7a1258 100644
--- a/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbTypeTest.java
+++ b/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbTypeTest.java
@@ -67,7 +67,7 @@ public class JaxbTypeTest extends AbstractAegisTest {
 
         Iterator<QName> elements = info.getElements().iterator();
         assertTrue(elements.hasNext());
-        QName element = elements.next();
+        QName element = elements.next(); //1st element of 3 expected
         assertTrue(elements.hasNext());
 
         AegisType custom = info.getType(element);
@@ -76,10 +76,28 @@ public class JaxbTypeTest extends AbstractAegisTest {
             assertTrue(custom instanceof StringType);
         } else if ("elementProperty".equals(element.getLocalPart())) {
             assertTrue(custom instanceof CustomStringType);
+        } else if ("Annotated".equals(element.getLocalPart())) {
+            assertTrue(custom instanceof StringType);
         } else {
             fail("Unexpected element name: " + element.getLocalPart());
         }
-        element = elements.next();
+
+        assertTrue(elements.hasNext());
+        element = elements.next(); //2nd element of 3 expected
+        assertTrue(elements.hasNext());
+
+        custom = info.getType(element);
+
+        if ("bogusProperty".equals(element.getLocalPart())) {
+            assertTrue(custom instanceof StringType);
+        } else if ("elementProperty".equals(element.getLocalPart())) {
+            assertTrue(custom instanceof CustomStringType);
+        } else if ("Annotated".equals(element.getLocalPart())) {
+            assertTrue(custom instanceof StringType);
+        } else {
+            fail("Unexpected element name: " + element.getLocalPart());
+        }
+        element = elements.next();  //3rd element of 3 expected
         assertFalse(elements.hasNext());
 
         custom = info.getType(element);
@@ -88,6 +106,8 @@ public class JaxbTypeTest extends AbstractAegisTest {
             assertTrue(custom instanceof StringType);
         } else if ("elementProperty".equals(element.getLocalPart())) {
             assertTrue(custom instanceof CustomStringType);
+        } else if ("Annotated".equals(element.getLocalPart())) {
+            assertTrue(custom instanceof StringType);
         } else {
             fail("Unexpected element name: " + element.getLocalPart());
         }
@@ -165,6 +185,10 @@ public class JaxbTypeTest extends AbstractAegisTest {
                     "//xsd:complexType[@name='JaxbBean1']/xsd:sequence/xsd:element"
                     + "[@name='bogusProperty']",
                     wsdl);
+        assertValid(
+                    "//xsd:complexType[@name='JaxbBean1']/xsd:sequence/xsd:element"
+                    + "[@name='Annotated']",
+                    wsdl);
 
         assertValid(
                     "//xsd:complexType[@name='JaxbBean2']/xsd:sequence/xsd:element"