diff --git a/ant/pom.xml b/ant/pom.xml
index f1c6c13d..0f049bed 100644
--- a/ant/pom.xml
+++ b/ant/pom.xml
@@ -1,12 +1,11 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/api-base/pom.xml b/api-base/pom.xml
index d6db9e6a..603b615e 100644
--- a/api-base/pom.xml
+++ b/api-base/pom.xml
@@ -1,12 +1,11 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/api-base/src/main/java/org/jboss/shrinkwrap/descriptor/api/CommonExtends.java b/api-base/src/main/java/org/jboss/shrinkwrap/descriptor/api/CommonExtends.java
new file mode 100644
index 00000000..5fa913c4
--- /dev/null
+++ b/api-base/src/main/java/org/jboss/shrinkwrap/descriptor/api/CommonExtends.java
@@ -0,0 +1,12 @@
+package org.jboss.shrinkwrap.descriptor.api;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.TYPE})
+public @interface CommonExtends {
+ String[] common();
+}
diff --git a/api-javaee-prototype/pom.xml b/api-javaee-prototype/pom.xml
index 6b20564d..3a5bf903 100644
--- a/api-javaee-prototype/pom.xml
+++ b/api-javaee-prototype/pom.xml
@@ -5,7 +5,7 @@
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/api-javaee/pom.xml b/api-javaee/pom.xml
index e8a69f67..d239b93e 100644
--- a/api-javaee/pom.xml
+++ b/api-javaee/pom.xml
@@ -1,12 +1,11 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/api-jboss/pom.xml b/api-jboss/pom.xml
index f0e4bda1..d20df6fc 100644
--- a/api-jboss/pom.xml
+++ b/api-jboss/pom.xml
@@ -1,12 +1,11 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/api-misc/pom.xml b/api-misc/pom.xml
index faf789ba..29ad0c76 100644
--- a/api-misc/pom.xml
+++ b/api-misc/pom.xml
@@ -1,12 +1,11 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/bom/pom.xml b/bom/pom.xml
index 1cfa9f85..2f62143d 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -1,7 +1,6 @@
-
+
4.0.0
@@ -9,7 +8,7 @@
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-bom
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
pom
ShrinkWrap Descriptors Bill of Materials
Centralized dependencyManagement for the ShrinkWrap Descriptors Project
diff --git a/build-resources/pom.xml b/build-resources/pom.xml
index a20c862a..116df5df 100644
--- a/build-resources/pom.xml
+++ b/build-resources/pom.xml
@@ -1,11 +1,10 @@
-
+
4.0.0
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/depchain/pom.xml b/depchain/pom.xml
index 36b9dbab..e9ee3065 100644
--- a/depchain/pom.xml
+++ b/depchain/pom.xml
@@ -1,13 +1,12 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/gen/pom.xml b/gen/pom.xml
index 12a595ef..6ecaabf5 100644
--- a/gen/pom.xml
+++ b/gen/pom.xml
@@ -1,12 +1,11 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
@@ -116,11 +115,15 @@
@author
- <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
+ <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
@author
- <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
+ <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
+
+
+ @author
+ <a href="mailto:ggastald@redhat.com">George Gastaldi</a>
@@ -136,6 +139,7 @@
ConnectorDescriptor
connector
j2ee:connector
+ false
@@ -152,11 +156,15 @@
@author
- <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
+ <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
+
+
+ @author
+ <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
@author
- <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
+ <a href="mailto:ggastald@redhat.com">George Gastaldi</a>
@@ -180,6 +188,7 @@
org.jboss.shrinkwrap.descriptor.api.j2eewebservicesclient11
org.jboss.shrinkwrap.descriptor.impl.j2eewebservicesclient11
true
+ false
@@ -195,6 +204,17 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd
+
+ connector15
+ true
+ ${basedir}/../api-javaee/src/main/java
+ ConnectorCommonDescriptor
+ j2ee
+ org.jboss.shrinkwrap.descriptor.api.connector
+
+ j2ee:resourceadapterType:single:resourceadapter
+
+
@@ -210,6 +230,7 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd
+ false
@@ -225,6 +246,27 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd
+ false
+
@@ -241,11 +283,15 @@
@author
- <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
+ <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
@author
- <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
+ <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
+
+
+ @author
+ <a href="mailto:ggastald@redhat.com">George Gastaldi</a>
@@ -260,6 +306,7 @@
org.jboss.shrinkwrap.descriptor.api.javaee5
org.jboss.shrinkwrap.descriptor.impl.javaee5
true
+ true
@@ -268,8 +315,38 @@
org.jboss.shrinkwrap.descriptor.api.javaeewebservicesclient12
org.jboss.shrinkwrap.descriptor.impl.javaeewebservicesclient12
true
+ false
+
+ ${basedir}/src/main/resources/xsd/ejb-jar_3_0.xsd
+ javaee
+ org.jboss.shrinkwrap.descriptor.api.ejbjar30
+ org.jboss.shrinkwrap.descriptor.impl.ejbjar30
+ EjbJarDescriptor
+ ejb-jar
+ javaee:ejb-jarType
+
+ xmlnshttp://java.sun.com/xml/ns/javaee
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd
+
+
+ ejbjar30
+ true
+ ${basedir}/../api-javaee/src/main/java
+ EjbJarCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.ejbjar
+
+ org.jboss.shrinkwrap.descriptor.api.javaee
+
+
+ javaee:enterprise-beansType:single:enterprise-beans
+ javaee:assembly-descriptorType:single:assembly-descriptor
+
+
+
+
${basedir}/src/main/resources/xsd/application_5.xsd
javaee
@@ -283,6 +360,20 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd
+
+ Application5
+ true
+ ${basedir}/../api-javaee/src/main/java
+ ApplicationCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.application
+
+ org.jboss.shrinkwrap.descriptor.api.javaee
+
+
+ javaee:moduleType:unbounded:module
+ javaee:security-roleType:unbounded:security-role
+
+
@@ -298,6 +389,19 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd
+
+ Pesistence10
+
+
+ Pesistence10
+ true
+ ${basedir}/../api-javaee/src/main/java
+ PersistenceCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.persistence
+
+ persistence:persistence-unit:unbounded:persistence-unit
+
+
@@ -313,9 +417,25 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd
+
+ orm10
+ true
+ ${basedir}/../api-javaee/src/main/java
+ OrmCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.orm
+
+ orm:persistence-unit-metadata:single:persistence-unit-metadata
+ orm:sequence-generator:unbounded:sequence-generator
+ orm:table-generator:unbounded:table-generator
+ orm:named-query:unbounded:named-query
+ orm:named-native-query:unbounded:named-native-query
+ orm:sql-result-set-mapping:unbounded:sql-result-set-mapping
+ orm:embeddable:unbounded:embeddable
+
+
-
+
${basedir}/src/main/resources/xsd/web-jsptaglibrary_2_1.xsd
@@ -343,6 +477,7 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd
+ false
@@ -358,6 +493,7 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd
+ false
@@ -373,21 +509,7 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd
-
-
-
- ${basedir}/src/main/resources/xsd/web-facesconfig_2_1.xsd
- javaee
- org.jboss.shrinkwrap.descriptor.api.facesconfig21
- org.jboss.shrinkwrap.descriptor.impl.facesconfig21
- WebFacesConfigDescriptor
- faces-config
- javaee:faces-configType
-
- xmlnshttp://java.sun.com/xml/ns/javaee
- xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
- xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd
-
+ false
@@ -403,6 +525,7 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesuicomponent_2_0.xsd
+ false
@@ -418,6 +541,21 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-partialresponse_2_0.xsd
+
+ partialresponse20
+ true
+ ${basedir}/../api-javaee/src/main/java
+ WebFacesPartialResponseCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.facespartialresponse
+
+ javaee:partial-response-changesType:single:changes
+ javaee:partial-response-redirectType:single:redirect
+ javaee:partial-response-errorType:single:error
+
+
+ javaee:partial-response-updateType
+
+
@@ -441,6 +579,39 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
+
+ WebApp25
+
+
+ WebApp25
+ true
+ ${basedir}/../api-javaee/src/main/java
+ org.jboss.shrinkwrap.descriptor.api.webapp
+ WebAppCommonDescriptor
+
+ org.jboss.shrinkwrap.descriptor.api.javaee
+ org.jboss.shrinkwrap.descriptor.api.webapp
+ org.jboss.shrinkwrap.descriptor.api.jsp
+
+
+ javaee:param-valueType:unbounded:context-param
+ javaee:error-pageType:unbounded:error-page
+ javaee:servletType:unbounded:servlet
+ javaee:servlet-mappingType:unbounded:servlet-mapping
+ javaee:filterType:unbounded:filter
+ javaee:filter-mappingType:unbounded:filter-mapping
+ javaee:listenerType:unbounded:listener
+ javaee:session-configType:unbounded:session-config
+ javaee:mime-mappingType:unbounded:mime-mapping
+ javaee:welcome-file-listType:unbounded:welcome-file-list
+ javaee:jsp-configType:unbounded:jsp-config
+ javaee:security-constraintType:unbounded:security-constraint
+ javaee:login-configType:unbounded:login-config
+ javaee:security-roleType:unbounded:security-role
+ javaee:message-destinationType:unbounded:message-destination
+ javaee:locale-encoding-mapping-listType:unbounded:locale-encoding-mapping-list
+
+
@@ -457,11 +628,15 @@
@author
- <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
+ <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
+
+
+ @author
+ <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
@author
- <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
+ <a href="mailto:ggastald@redhat.com">George Gastaldi</a>
@@ -484,6 +659,11 @@
org.jboss.shrinkwrap.descriptor.api.webcommon30
org.jboss.shrinkwrap.descriptor.impl.webcommon30
true
+
+ org.jboss.shrinkwrap.descriptor.api.javaee
+ org.jboss.shrinkwrap.descriptor.api.webapp
+ org.jboss.shrinkwrap.descriptor.api.jsp
+
@@ -500,6 +680,7 @@
org.jboss.shrinkwrap.descriptor.api.javaeewebservicesclient13
org.jboss.shrinkwrap.descriptor.impl.javaeewebservicesclient13
true
+ false
@@ -515,6 +696,20 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd
+
+ Application6
+ false
+ ${basedir}/../api-javaee/src/main/java
+ ApplicationCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.application
+
+ org.jboss.shrinkwrap.descriptor.api.javaee
+
+
+ javaee:moduleType:unbounded:module
+ javaee:security-roleType:unbounded:security-role
+
+
@@ -530,8 +725,57 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd
+
+ WebApp30
+
+
+ WebApp30
+ false
+ ${basedir}/../api-javaee/src/main/java
+ WebAppCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.webapp
+
+ org.jboss.shrinkwrap.descriptor.api.javaee
+ org.jboss.shrinkwrap.descriptor.api.webapp
+ org.jboss.shrinkwrap.descriptor.api.jsp
+
+
+ javaee:param-valueType:unbounded:context-param
+ javaee:error-pageType:unbounded:error-page
+ javaee:servletType:unbounded:servlet
+ javaee:servlet-mappingType:unbounded:servlet-mapping
+ javaee:filterType:unbounded:filter
+ javaee:filter-mappingType:unbounded:filter-mapping
+ javaee:listenerType:unbounded:listener
+ javaee:session-configType:unbounded:session-config
+ javaee:mime-mappingType:unbounded:mime-mapping
+ javaee:welcome-file-listType:unbounded:welcome-file-list
+ javaee:jsp-configType:unbounded:jsp-config
+ javaee:security-constraintType:unbounded:security-constraint
+ javaee:login-configType:unbounded:login-config
+ javaee:security-roleType:unbounded:security-role
+ javaee:message-destinationType:unbounded:message-destination
+ javaee:locale-encoding-mapping-listType:unbounded:locale-encoding-mapping-list
+
+
+
+ ${basedir}/src/main/resources/xsd/web-facesconfig_2_1.xsd
+ javaee
+ org.jboss.shrinkwrap.descriptor.api.facesconfig21
+ org.jboss.shrinkwrap.descriptor.impl.facesconfig21
+ WebFacesConfigDescriptor
+ faces-config
+ javaee:faces-configType
+
+ xmlnshttp://java.sun.com/xml/ns/javaee
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd
+
+ false
+
+
${basedir}/src/main/resources/xsd/persistence_2_0.xsd
persistence
@@ -545,6 +789,19 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd
+
+ Pesistence20
+
+
+ Pesistence20
+ false
+ ${basedir}/../api-javaee/src/main/java
+ PersistenceCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.persistence
+
+ persistence:persistence-unit:unbounded:persistence-unit
+
+
@@ -560,7 +817,24 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_2_0.xsd
+
+ orm20
+ false
+ ${basedir}/../api-javaee/src/main/java
+ OrmCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.orm
+
+ orm:persistence-unit-metadata:single:persistence-unit-metadata
+ orm:sequence-generator:unbounded:sequence-generator
+ orm:table-generator:unbounded:table-generator
+ orm:named-query:unbounded:named-query
+ orm:named-native-query:unbounded:named-native-query
+ orm:sql-result-set-mapping:unbounded:sql-result-set-mapping
+ orm:embeddable:unbounded:embeddable
+
+
+
${basedir}/src/main/resources/xsd/web-fragment_3_0.xsd
javaee
@@ -574,6 +848,23 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd
+
+ WebFragment30
+ true
+ ${basedir}/../api-javaee/src/main/java
+ WebFragmentCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.webfragment
+
+ org.jboss.shrinkwrap.descriptor.api.javaee
+ org.jboss.shrinkwrap.descriptor.api.webapp
+
+
+ javaee:servlet-mappingType:unbounded:servlet-mapping
+ javaee:filterType:unbounded:filter
+ javaee:filter-mappingType:unbounded:filter-mapping
+ javaee:listenerType:unbounded:listener
+
+
@@ -589,6 +880,20 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd
+
+ ejbjar31
+ false
+ ${basedir}/../api-javaee/src/main/java
+ EjbJarCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.ejbjar
+
+ org.jboss.shrinkwrap.descriptor.api.javaee
+
+
+ javaee:enterprise-beansType:single:enterprise-beans
+ javaee:assembly-descriptorType:single:assembly-descriptor
+ >
+
@@ -604,6 +909,17 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/connector_1_6.xsd
+
+ connector16
+ false
+ ${basedir}/../api-javaee/src/main/java
+ ConnectorCommonDescriptor
+ j2ee
+ org.jboss.shrinkwrap.descriptor.api.connector
+
+ javaee:resourceadapterType:single:resourceadapter
+
+
@@ -619,6 +935,16 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd
+
+ beans10
+
+
+ beans10
+ true
+ ${basedir}/../api-javaee/src/main/java
+ BeansCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.beans
+
@@ -628,6 +954,624 @@
+
+ executionJavaEE7
+ validate
+
+ false
+
+
+ @author
+ <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
+
+
+ @author
+ <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
+
+
+
+ ${basedir}/../api-javaee/src/main/java
+ ${basedir}/../impl-javaee/src/main/java
+
+
+
+
+ ${basedir}/src/main/resources/xsd/javaee_7.xsd
+ javaee
+ org.jboss.shrinkwrap.descriptor.api.javaee7
+ org.jboss.shrinkwrap.descriptor.impl.javaee7
+ true
+
+
+
+ ${basedir}/src/main/resources/xsd/web-common_3_1.xsd
+ javaee
+ org.jboss.shrinkwrap.descriptor.api.webcommon31
+ org.jboss.shrinkwrap.descriptor.impl.webcommon31
+ true
+
+ org.jboss.shrinkwrap.descriptor.api.javaee
+ org.jboss.shrinkwrap.descriptor.api.webapp
+ org.jboss.shrinkwrap.descriptor.api.jsp
+
+
+
+
+ ${basedir}/src/main/resources/xsd/jsp_2_3.xsd
+ javaee
+ org.jboss.shrinkwrap.descriptor.api.jsp23
+ org.jboss.shrinkwrap.descriptor.impl.jsp23
+ true
+
+
+
+ ${basedir}/src/main/resources/xsd/javaee_web_services_client_1_4.xsd
+ javaee
+ org.jboss.shrinkwrap.descriptor.api.javaeewebservicesclient14
+ org.jboss.shrinkwrap.descriptor.impl.javaeewebservicesclient14
+ true
+ false
+
+
+
+ ${basedir}/src/main/resources/xsd/application_7.xsd
+ javaee
+ org.jboss.shrinkwrap.descriptor.api.application7
+ org.jboss.shrinkwrap.descriptor.impl.application7
+ ApplicationDescriptor
+ application
+ javaee:applicationType
+
+ xmlnshttp://xmlns.jcp.org/xml/ns/javaee
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd
+
+
+ Application7
+ false
+ ${basedir}/../api-javaee/src/main/java
+ ApplicationCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.application
+
+ org.jboss.shrinkwrap.descriptor.api.javaee
+
+
+ javaee:moduleType:unbounded:module
+ javaee:security-roleType:unbounded:security-role
+
+
+
+
+
+ ${basedir}/src/main/resources/xsd/web-app_3_1.xsd
+ javaee
+ org.jboss.shrinkwrap.descriptor.api.webapp31
+ org.jboss.shrinkwrap.descriptor.impl.webapp31
+ WebAppDescriptor
+ web-app
+ javaee:web-appType
+
+ xmlnshttp://xmlns.jcp.org/xml/ns/javaee
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd
+
+
+ WebApp31
+
+
+ WebApp31
+ false
+ ${basedir}/../api-javaee/src/main/java
+ WebAppCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.webapp
+
+ org.jboss.shrinkwrap.descriptor.api.javaee
+ org.jboss.shrinkwrap.descriptor.api.webapp
+ org.jboss.shrinkwrap.descriptor.api.jsp
+
+
+ javaee:param-valueType:unbounded:context-param
+ javaee:error-pageType:unbounded:error-page
+ javaee:servletType:unbounded:servlet
+ javaee:servlet-mappingType:unbounded:servlet-mapping
+ javaee:filterType:unbounded:filter
+ javaee:filter-mappingType:unbounded:filter-mapping
+ javaee:listenerType:unbounded:listener
+ javaee:session-configType:unbounded:session-config
+ javaee:mime-mappingType:unbounded:mime-mapping
+ javaee:welcome-file-listType:unbounded:welcome-file-list
+ javaee:jsp-configType:unbounded:jsp-config
+ javaee:security-constraintType:unbounded:security-constraint
+ javaee:login-configType:unbounded:login-config
+ javaee:security-roleType:unbounded:security-role
+ javaee:message-destinationType:unbounded:message-destination
+ javaee:locale-encoding-mapping-listType:unbounded:locale-encoding-mapping-list
+
+
+
+
+
+ ${basedir}/src/main/resources/xsd/persistence_2_1.xsd
+ persistence
+ org.jboss.shrinkwrap.descriptor.api.persistence21
+ org.jboss.shrinkwrap.descriptor.impl.persistence21
+ PersistenceDescriptor
+ persistence
+ persistence:persistence
+
+ xmlnshttp://xmlns.jcp.org/xml/ns/persistence
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd
+
+
+ Pesistence21
+
+
+ Pesistence21
+ false
+ ${basedir}/../api-javaee/src/main/java
+ PersistenceCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.persistence
+
+ persistence:persistence-unit:unbounded:persistence-unit
+
+
+
+
+
+ ${basedir}/src/main/resources/xsd/orm_2_1.xsd
+ orm
+ org.jboss.shrinkwrap.descriptor.api.orm21
+ org.jboss.shrinkwrap.descriptor.impl.orm21
+ OrmDescriptor
+ entity-mappings
+ orm:entity-mappings
+
+ xmlnshttp://xmlns.jcp.org/xml/ns/persistence/orm
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/persistence/orm http://xmlns.jcp.org/xml/ns/persistence/orm_2_1.xsd
+
+
+ orm21
+ false
+ ${basedir}/../api-javaee/src/main/java
+ OrmCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.orm
+
+ orm:persistence-unit-metadata:single:persistence-unit-metadata
+ orm:sequence-generator:unbounded:sequence-generator
+ orm:table-generator:unbounded:table-generator
+ orm:named-query:unbounded:named-query
+ orm:named-native-query:unbounded:named-native-query
+ orm:sql-result-set-mapping:unbounded:sql-result-set-mapping
+ orm:embeddable:unbounded:embeddable
+
+
+
+
+
+ ${basedir}/src/main/resources/xsd/web-fragment_3_1.xsd
+ javaee
+ org.jboss.shrinkwrap.descriptor.api.webfragment31
+ org.jboss.shrinkwrap.descriptor.impl.webfragment31
+ WebFragmentDescriptor
+ web-fragment
+ javaee:web-fragmentType
+
+ xmlnshttp://xmlns.jcp.org/xml/ns/javaee
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-fragment_3_1.xsd
+
+
+ WebFragment31
+ false
+ ${basedir}/../api-javaee/src/main/java
+ WebFragmentCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.webfragment
+
+ org.jboss.shrinkwrap.descriptor.api.javaee
+ org.jboss.shrinkwrap.descriptor.api.webapp
+
+
+ javaee:servlet-mappingType:unbounded:servlet-mapping
+ javaee:filterType:unbounded:filter
+ javaee:filter-mappingType:unbounded:filter-mapping
+ javaee:listenerType:unbounded:listener
+
+
+
+
+
+ ${basedir}/src/main/resources/xsd/ejb-jar_3_2.xsd
+ javaee
+ org.jboss.shrinkwrap.descriptor.api.ejbjar32
+ org.jboss.shrinkwrap.descriptor.impl.ejbjar32
+ EjbJarDescriptor
+ ejb-jar
+ javaee:ejb-jarType
+
+ xmlnshttp://xmlns.jcp.org/xml/ns/javaee
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/ejb-jar_3_2.xsd
+
+
+ ejbjar32
+ false
+ ${basedir}/../api-javaee/src/main/java
+ EjbJarCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.ejbjar
+
+ org.jboss.shrinkwrap.descriptor.api.javaee
+
+
+ javaee:enterprise-beansType:single:enterprise-beans
+ javaee:assembly-descriptorType:single:assembly-descriptor
+
+
+
+
+
+ ${basedir}/src/main/resources/xsd/connector_1_7.xsd
+ javaee
+ org.jboss.shrinkwrap.descriptor.api.connector17
+ org.jboss.shrinkwrap.descriptor.impl.connector17
+ ConnectorDescriptor
+ connector
+ javaee:connectorType
+
+ xmlnshttp://xmlns.jcp.org/xml/ns/javaee
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/connector_1_7.xsd
+
+
+ connector17
+ false
+ ${basedir}/../api-javaee/src/main/java
+ ConnectorCommonDescriptor
+ j2ee
+ org.jboss.shrinkwrap.descriptor.api.connector
+
+ javaee:resourceadapterType:single:resourceadapter
+
+
+
+
+
+ ${basedir}/src/main/resources/xsd/beans_1_1.xsd
+ javaee
+ org.jboss.shrinkwrap.descriptor.api.beans11
+ org.jboss.shrinkwrap.descriptor.impl.beans11
+ BeansDescriptor
+ beans
+ javaee:beans
+
+ xmlnshttp://xmlns.jcp.org/xml/ns/javaee
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd
+
+
+ beans11
+
+
+ beans11
+ false
+ ${basedir}/../api-javaee/src/main/java
+ BeansCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.beans
+
+
+
+
+ ${basedir}/src/main/resources/xsd/web-facesconfig_2_2.xsd
+ javaee
+ org.jboss.shrinkwrap.descriptor.api.facesconfig22
+ org.jboss.shrinkwrap.descriptor.impl.facesconfig22
+ WebFacesConfigDescriptor
+ faces-config
+ javaee:faces-configType
+
+ xmlnshttp://xmlns.jcp.org/xml/ns/javaee
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd
+
+ false
+
+
+
+ ${basedir}/src/main/resources/xsd/web-partialresponse_2_2.xsd
+ javaee
+ org.jboss.shrinkwrap.descriptor.api.facespartialresponse22
+ org.jboss.shrinkwrap.descriptor.impl.facespartialresponse22
+ WebFacesPartialResponseDescriptor
+ partial-response
+ javaee:partial-responseType
+
+ xmlnshttp://xmlns.jcp.org/xml/ns/javaee
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-partialresponse_2_2.xsd
+
+
+ partialresponse22
+ false
+ ${basedir}/../api-javaee/src/main/java
+ WebFacesPartialResponseCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.facespartialresponse
+
+ javaee:partial-response-changesType:single:changes
+ javaee:partial-response-redirectType:single:redirect
+ javaee:partial-response-errorType:single:error
+
+
+
+
+
+ ${basedir}/src/main/resources/xsd/web-facelettaglibrary_2_2.xsd
+ javaee
+ org.jboss.shrinkwrap.descriptor.api.facelettaglibrary22
+ org.jboss.shrinkwrap.descriptor.impl.facelettaglibrary22
+ WebFacelettaglibraryDescriptor
+ facelet-taglib
+ javaee:facelet-taglibType
+
+ xmlnshttp://xmlns.jcp.org/xml/ns/javaee
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facelettaglibrary_2_2.xsd
+
+ false
+
+
+
+ ${basedir}/src/main/resources/xsd/permissions_7.xsd
+ permissions
+ org.jboss.shrinkwrap.descriptor.api.permissions7
+ org.jboss.shrinkwrap.descriptor.impl.permissions7
+ PermissionsDescriptor
+ permissions
+ permissions:permissions
+
+ xmlnshttp://xmlns.jcp.org/xml/ns/javaee
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/permissions_7.xsd
+
+
+ permissions7
+ true
+ ${basedir}/../api-javaee/src/main/java
+ PermissionsCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.permission
+
+
+
+
+
+ ${basedir}/src/main/resources/xsd/jobXML_1_0.xsd
+ jsl
+ org.jboss.shrinkwrap.descriptor.api.jobXML10
+ org.jboss.shrinkwrap.descriptor.impl.jobXML10
+ JobXMLDescriptor
+ job
+ jsl:Job
+
+ xmlnshttp://xmlns.jcp.org/xml/ns/javaee
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/jobXML_1_0.xsd
+
+
+ jobXML10
+ true
+ ${basedir}/../api-javaee/src/main/java
+ JobXMLCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.jobXML
+
+ jsl:Properties:single:properties
+ jsl:Listeners:single:listeners
+ jsl:Decision:unbounded:decision
+ jsl:Flow:unbounded:flow
+ jsl:Split:unbounded:split
+ jsl:Step:unbounded:step
+
+
+
+
+
+ ${basedir}/src/main/resources/xsd/batchXML_1_0.xsd
+ jbatch
+ org.jboss.shrinkwrap.descriptor.api.batchXML10
+ org.jboss.shrinkwrap.descriptor.impl.batchXML10
+ BatchXMLDescriptor
+ batch-artifacts
+ jbatch:BatchArtifacts
+
+ xmlnshttp://xmlns.jcp.org/xml/ns/javaee
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/batchXML_1_0.xsd
+
+
+ batch10
+ true
+ ${basedir}/../api-javaee/src/main/java
+ BatchXMLCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.batchXML
+
+ jbatch:BatchArtifactRef:unbounded:ref
+
+
+
+
+
+
+ parse
+
+
+
+
+
+ executionJavaEE6BeansValidation
+ validate
+
+ false
+
+
+ @author
+ <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
+
+
+ @author
+ <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
+
+
+ @author
+ <a href="mailto:ggastald@redhat.com">George Gastaldi</a>
+
+
+
+ ${basedir}/../api-javaee/src/main/java
+ ${basedir}/../impl-javaee/src/main/java
+
+
+
+
+ ${basedir}/src/main/resources/xsd/validation-mapping-1.0.xsd
+ map
+ org.jboss.shrinkwrap.descriptor.api.validationMapping10
+ org.jboss.shrinkwrap.descriptor.impl.validationMapping10
+ ValidationMappingDescriptor
+ constraint-mappings
+ map:constraint-mappingsType
+
+ xmlnshttp://jboss.org/xml/ns/javax/validation/mapping
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://jboss.org/xml/ns/javax/validation/mapping validation-mapping-1.0.xsd
+
+
+ validationMapping10
+ true
+ ${basedir}/../api-javaee/src/main/java
+ ValidationMappingCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.validationMapping
+
+ map:beanType:unbounded:bean
+ map:constraint-definitionType:unbounded:constraint-definition
+
+
+
+
+
+ ${basedir}/src/main/resources/xsd/validation-configuration-1.0.xsd
+ config
+ org.jboss.shrinkwrap.descriptor.api.validationConfiguration10
+ org.jboss.shrinkwrap.descriptor.impl.validationConfiguration10
+ ValidationConfigurationDescriptor
+ validation-config
+ config:validation-configType
+
+ xmlnshttp://jboss.org/xml/ns/javax/validation/configuration
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://jboss.org/xml/ns/javax/validation/configuration validation-configuration-1.0.xsd
+
+
+ validationConfiguration10
+ true
+ ${basedir}/../api-javaee/src/main/java
+ ValidationConfigurationCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.validationConfiguration
+
+ config:propertyType:unbounded:property
+
+
+
+
+
+
+
+ parse
+
+
+
+
+
+ executionJavaEE7BeansValidation
+ validate
+
+ false
+
+
+ @author
+ <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
+
+
+ @author
+ <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
+
+
+ @author
+ <a href="mailto:ggastald@redhat.com">George Gastaldi</a>
+
+
+
+ ${basedir}/../api-javaee/src/main/java
+ ${basedir}/../impl-javaee/src/main/java
+
+
+
+
+ ${basedir}/src/main/resources/xsd/validation-mapping-1.1.xsd
+ map
+ org.jboss.shrinkwrap.descriptor.api.validationMapping11
+ org.jboss.shrinkwrap.descriptor.impl.validationMapping11
+ ValidationMappingDescriptor
+ constraint-mappings
+ map:constraint-mappingsType
+
+ xmlnshttp://jboss.org/xml/ns/javax/validation/mapping
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://jboss.org/xml/ns/javax/validation/mapping validation-mapping-1.1.xsd
+
+
+ validationMapping11
+ false
+ ${basedir}/../api-javaee/src/main/java
+ ValidationMappingCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.validationMapping
+
+ map:beanType:unbounded:bean
+ map:constraint-definitionType:unbounded:constraint-definition
+
+
+
+
+
+ ${basedir}/src/main/resources/xsd/validation-configuration-1.1.xsd
+ config
+ org.jboss.shrinkwrap.descriptor.api.validationConfiguration11
+ org.jboss.shrinkwrap.descriptor.impl.validationConfiguration11
+ ValidationConfigurationDescriptor
+ validation-config
+ config:validation-configType
+
+ xmlnshttp://jboss.org/xml/ns/javax/validation/configuration
+ xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
+ xsi:schemaLocationhttp://jboss.org/xml/ns/javax/validation/configuration validation-configuration-1.1.xsd
+
+
+ validationConfiguration11
+ false
+ ${basedir}/../api-javaee/src/main/java
+ ValidationConfigurationCommonDescriptor
+ org.jboss.shrinkwrap.descriptor.api.validationConfiguration
+
+ config:propertyType:unbounded:property
+
+
+
+
+
+
+
+ parse
+
+
+
executionJBossEE5
validate
@@ -636,11 +1580,11 @@
@author
- <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
+ <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
@author
- <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
+ <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
@@ -654,6 +1598,7 @@
jboss
org.jboss.shrinkwrap.descriptor.api.jbosscommon51
org.jboss.shrinkwrap.descriptor.impl.jbosscommon51
+ false
@@ -670,6 +1615,7 @@
org.jboss.shrinkwrap.descriptor.api.javaeewebservicesclient12
org.jboss.shrinkwrap.descriptor.impl.javaeewebservicesclient12
false
+ false
@@ -678,6 +1624,7 @@
org.jboss.shrinkwrap.descriptor.api.ejbjar30
org.jboss.shrinkwrap.descriptor.impl.ejbjar30
false
+ false
@@ -693,6 +1640,7 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss_5_1.xsd
+ false
@@ -705,15 +1653,15 @@
executionJBossEE6
validate
- true
+ false
@author
- <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
+ <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
@author
- <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
+ <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
@@ -727,6 +1675,7 @@
jboss
org.jboss.shrinkwrap.descriptor.api.jbosscommon60
org.jboss.shrinkwrap.descriptor.impl.jbosscommon60
+ false
@@ -735,6 +1684,7 @@
org.jboss.shrinkwrap.descriptor.api.javaee6
org.jboss.shrinkwrap.descriptor.impl.javaee6
false
+ false
@@ -743,6 +1693,12 @@
org.jboss.shrinkwrap.descriptor.api.webcommon30
org.jboss.shrinkwrap.descriptor.impl.webcommon30
false
+ false
+
+ org.jboss.shrinkwrap.descriptor.api.javaee
+ org.jboss.shrinkwrap.descriptor.api.webapp
+ org.jboss.shrinkwrap.descriptor.api.jsp
+
@@ -751,6 +1707,7 @@
org.jboss.shrinkwrap.descriptor.api.webapp30
org.jboss.shrinkwrap.descriptor.impl.webapp30
false
+ false
@@ -766,6 +1723,7 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-web_6_0.xsd
+ false
@@ -782,11 +1740,11 @@
@author
- <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
+ <a href="mailto:ralf.battenfeld@bluewin.ch">Ralf Battenfeld</a>
@author
- <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
+ <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
@@ -803,6 +1761,7 @@
JettyDescriptor
Configure
jetty7:Configure
+ false
@@ -829,7 +1788,7 @@
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-metadata-parser
- [1.0.0,)
+ [1.0.0orm)
parse
@@ -841,7 +1800,7 @@
-
+
diff --git a/gen/src/main/resources/xsd/application-client_7.xsd b/gen/src/main/resources/xsd/application-client_7.xsd
new file mode 100644
index 00000000..7b28e2f7
--- /dev/null
+++ b/gen/src/main/resources/xsd/application-client_7.xsd
@@ -0,0 +1,331 @@
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+
+ ...
+
+
+ The instance documents may indicate the published version of
+ the schema using the xsi:schemaLocation attribute for Java EE
+ namespace with the following location:
+
+ http://xmlns.jcp.org/xml/ns/javaee/application-client_7.xsd
+
+ ]]>
+
+
+
+
+
+
+ The following conventions apply to all Java EE
+ deployment descriptor elements unless indicated otherwise.
+
+ - In elements that specify a pathname to a file within the
+ same JAR file, relative filenames (i.e., those not
+ starting with "/") are considered relative to the root of
+ the JAR file's namespace. Absolute filenames (i.e., those
+ starting with "/") also specify names in the root of the
+ JAR file's namespace. In general, relative names are
+ preferred. The exception is .war files where absolute
+ names are preferred for consistency with the Servlet API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The application-client element is the root element of an
+ application client deployment descriptor. The application
+ client deployment descriptor describes the EJB components
+ and external resources referenced by the application
+ client.
+
+
+
+
+
+
+
+ The env-entry-name element contains the name of an
+ application client's environment entry. The name is a JNDI
+ name relative to the java:comp/env context. The name must
+ be unique within an application client.
+
+
+
+
+
+
+
+
+
+
+ The ejb-ref-name element contains the name of an EJB
+ reference. The EJB reference is an entry in the application
+ client's environment and is relative to the
+ java:comp/env context. The name must be unique within the
+ application client.
+
+ It is recommended that name is prefixed with "ejb/".
+
+
+
+
+
+
+
+
+
+
+ The res-ref-name element specifies the name of a
+ resource manager connection factory reference.The name
+ is a JNDI name relative to the java:comp/env context.
+ The name must be unique within an application client.
+
+
+
+
+
+
+
+
+
+
+ The resource-env-ref-name element specifies the name of
+ a resource environment reference; its value is the
+ environment entry name used in the application client
+ code. The name is a JNDI name relative to the
+ java:comp/env context and must be unique within an
+ application client.
+
+
+
+
+
+
+
+
+
+
+ The message-destination-ref-name element specifies the
+ name of a message destination reference; its value is
+ the message destination reference name used in the
+ application client code. The name is a JNDI name
+ relative to the java:comp/env context and must be unique
+ within an application client.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The callback-handler element names a class provided by
+ the application. The class must have a no args
+ constructor and must implement the
+ javax.security.auth.callback.CallbackHandler
+ interface. The class will be instantiated by the
+ application client container and used by the container
+ to collect authentication information from the user.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The required value for the version is 7.
+
+
+
+
+
+
+
+
+ The metadata-complete attribute defines whether this
+ deployment descriptor and other related deployment
+ descriptors for this module (e.g., web service
+ descriptors) are complete, or whether the class
+ files available to this module and packaged with
+ this application should be examined for annotations
+ that specify deployment information.
+
+ If metadata-complete is set to "true", the deployment
+ tool must ignore any annotations that specify deployment
+ information, which might be present in the class files
+ of the application.
+
+ If metadata-complete is not specified or is set to
+ "false", the deployment tool must examine the class
+ files of the application for annotations, as
+ specified by the specifications.
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/application_7.xsd b/gen/src/main/resources/xsd/application_7.xsd
new file mode 100644
index 00000000..3f855da9
--- /dev/null
+++ b/gen/src/main/resources/xsd/application_7.xsd
@@ -0,0 +1,414 @@
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+
+ ...
+
+
+ The instance documents may indicate the published version of
+ the schema using the xsi:schemaLocation attribute for Java EE
+ namespace with the following location:
+
+ http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd
+
+ ]]>
+
+
+
+
+
+
+ The following conventions apply to all Java EE
+ deployment descriptor elements unless indicated otherwise.
+
+ - In elements that specify a pathname to a file within the
+ same JAR file, relative filenames (i.e., those not
+ starting with "/") are considered relative to the root of
+ the JAR file's namespace. Absolute filenames (i.e., those
+ starting with "/") also specify names in the root of the
+ JAR file's namespace. In general, relative names are
+ preferred. The exception is .war files where absolute
+ names are preferred for consistency with the Servlet API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The application element is the root element of a Java EE
+ application deployment descriptor.
+
+
+
+
+
+
+
+ The context-root element content must be unique
+ in the ear.
+
+
+
+
+
+
+
+
+
+
+ The security-role-name element content
+ must be unique in the ear.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The applicationType defines the structure of the
+ application.
+
+
+
+
+
+
+
+
+
+
+ If initialize-in-order is true, modules must be initialized
+ in the order they're listed in this deployment descriptor,
+ with the exception of application client modules, which can
+ be initialized in any order.
+ If initialize-in-order is not set or set to false, the order
+ of initialization is unspecified and may be product-dependent.
+
+
+
+
+
+
+
+
+ The application deployment descriptor must have one
+ module element for each Java EE module in the
+ application package. A module element is defined
+ by moduleType definition.
+
+
+
+
+
+
+
+
+
+ The library-directory element specifies the pathname
+ of a directory within the application package, relative
+ to the top level of the application package. All files
+ named "*.jar" in this directory must be made available
+ in the class path of all components included in this
+ application package. If this element isn't specified,
+ the directory named "lib" is searched. An empty element
+ may be used to disable searching.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The required value for the version is 7.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The moduleType defines a single Java EE module and contains a
+ connector, ejb, java, or web element, which indicates the
+ module type and contains a path to the module file, and an
+ optional alt-dd element, which specifies an optional URI to
+ the post-assembly version of the deployment descriptor.
+
+
+
+
+
+
+
+
+
+ The connector element specifies the URI of a
+ resource adapter archive file, relative to the
+ top level of the application package.
+
+
+
+
+
+
+
+
+ The ejb element specifies the URI of an ejb-jar,
+ relative to the top level of the application
+ package.
+
+
+
+
+
+
+
+
+ The java element specifies the URI of a java
+ application client module, relative to the top
+ level of the application package.
+
+
+
+
+
+
+
+
+
+
+ The alt-dd element specifies an optional URI to the
+ post-assembly version of the deployment descriptor
+ file for a particular Java EE module. The URI must
+ specify the full pathname of the deployment
+ descriptor file relative to the application's root
+ directory. If alt-dd is not specified, the deployer
+ must read the deployment descriptor from the default
+ location and file name required by the respective
+ component specification.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The webType defines the web-uri and context-root of
+ a web application module.
+
+
+
+
+
+
+
+
+ The web-uri element specifies the URI of a web
+ application file, relative to the top level of the
+ application package.
+
+
+
+
+
+
+
+
+ The context-root element specifies the context root
+ of a web application.
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/batchXML_1_0.xsd b/gen/src/main/resources/xsd/batchXML_1_0.xsd
new file mode 100644
index 00000000..53930433
--- /dev/null
+++ b/gen/src/main/resources/xsd/batchXML_1_0.xsd
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/beans_1_1.xsd b/gen/src/main/resources/xsd/beans_1_1.xsd
new file mode 100644
index 00000000..d632c173
--- /dev/null
+++ b/gen/src/main/resources/xsd/beans_1_1.xsd
@@ -0,0 +1,355 @@
+
+
+
+
+
+
+
+
+
+ ...
+
+
+ The deployment descriptor may indicate the published version of
+ the schema using the xsi:schemaLocation attribute for the Java EE
+ namespace with the following location:
+
+ http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd
+
+ ]]>
+
+
+
+
+
+
+ Bean classes of enabled beans must be
+ deployed in bean archives. A library jar, EJB jar,
+ application client jar or rar archive is a bean archive if
+ it has a file named beans.xml in the META-INF directory. The
+ WEB-INF/classes directory of a war is a bean archive if
+ there is a file named beans.xml in the WEB-INF directory of
+ the war. A directory in the JVM classpath is a bean archive
+ if it has a file named beans.xml in the META-INF directory.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The version of CDI this beans.xml is for. If the version is "1.1" (or
+ later), then the attribute bean-discovery-mode must be added.
+
+
+
+
+
+
+
+
+
+
+
+ It is strongly recommended you use "annotated".
+
+ If the bean discovery mode is "all", then all types in this
+ archive will be considered. If the bean discovery mode is
+ "annotated", then only those types with bean defining annotations will be
+ considered. If the bean discovery mode is "none", then no
+ types will be considered.
+
+
+
+
+
+
+
+ Only those types with bean defining annotations will be
+ considered.
+
+
+
+
+
+
+ All types in this archive will be considered.
+
+
+
+
+
+
+ This archive will be ignored.
+
+
+
+
+
+
+
+
+
+
+
+
+ element allows exclusion of classes and packages from consideration. Various filters may be applied, and may be conditionally activated.]]>
+
+
+
+
+
+
+
+ would exclude all classes and subpackages of com.acme.]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ would exclude all classes and subpackages of com.acme.]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ By default, a bean archive has no enabled
+ interceptors bound via interceptor bindings. An interceptor
+ must be explicitly enabled by listing its class under the
+ <interceptors> element of the beans.xml file of the
+ bean archive. The order of the interceptor declarations
+ determines the interceptor ordering. Interceptors which
+ occur earlier in the list are called first. If the same
+ class is listed twice under the <interceptors>
+ element, the container automatically detects the problem and
+ treats it as a deployment problem.
+
+
+
+
+
+
+
+ Each child <class> element
+ must specify the name of an interceptor class. If
+ there is no class with the specified name, or if
+ the class with the specified name is not an
+ interceptor class, the container automatically
+ detects the problem and treats it as a deployment
+ problem.
+
+
+
+
+
+
+
+
+
+
+ By default, a bean archive has no enabled
+ decorators. A decorator must be explicitly enabled by
+ listing its bean class under the <decorators> element
+ of the beans.xml file of the bean archive. The order of the
+ decorator declarations determines the decorator ordering.
+ Decorators which occur earlier in the list are called first.
+ If the same class is listed twice under the
+ <decorators> element, the container automatically
+ detects the problem and treats it as a deployment problem.
+
+
+
+
+
+
+
+ Each child <class> element
+ must specify the name of a decorator class. If
+ there is no class with the specified name, or if
+ the class with the specified name is not a
+ decorator class, the container automatically
+ detects the problem and treats it as a deployment
+ problem.
+
+
+
+
+
+
+
+
+
+
+ An alternative is a bean that must be
+ explicitly declared in the beans.xml file if it should be
+ available for lookup, injection or EL resolution. By
+ default, a bean archive has no selected alternatives. An
+ alternative must be explicitly declared using the
+ <alternatives> element of the beans.xml file of the
+ bean archive. The <alternatives> element contains a
+ list of bean classes and stereotypes. An alternative is
+ selected for the bean archive if either: the alternative is
+ a managed bean or session bean and the bean class of the
+ bean is listed, or the alternative is a producer method,
+ field or resource, and the bean class that declares the
+ method or field is listed, or any @Alternative stereotype of
+ the alternative is listed.
+
+
+
+
+
+
+
+ Each child <class> element
+ must specify the name of an alternative bean class.
+ If there is no class with the specified name, or if
+ the class with the specified name is not an
+ alternative bean class, the container automatically
+ detects the problem and treats it as a deployment
+ problem. If the same class is listed twice under
+ the <alternatives> element, the container
+ automatically detects the problem and treats it as
+ a deployment problem.
+
+
+
+
+
+
+
+ Each child <stereotype>
+ element must specify the name of an @Alternative
+ stereotype annotation. If there is no annotation
+ with the specified name, or the annotation is not
+ an @Alternative stereotype, the container
+ automatically detects the problem and treats it as
+ a deployment problem. If the same stereotype is
+ listed twice under the <alternatives>
+ element, the container automatically detects the
+ problem and treats it as a deployment problem.
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/connector_1_7.xsd b/gen/src/main/resources/xsd/connector_1_7.xsd
new file mode 100644
index 00000000..fe591a14
--- /dev/null
+++ b/gen/src/main/resources/xsd/connector_1_7.xsd
@@ -0,0 +1,1233 @@
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2003-2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+
+ ...
+
+
+ The instance documents may indicate the published version of
+ the schema using the xsi:schemaLocation attribute for Java EE
+ namespace with the following location:
+
+ http://xmlns.jcp.org/xml/ns/javaee/connector_1_7.xsd
+
+ ]]>
+
+
+
+
+
+
+ The following conventions apply to all Java EE
+ deployment descriptor elements unless indicated otherwise.
+
+ - In elements that specify a pathname to a file within the
+ same JAR file, relative filenames (i.e., those not
+ starting with "/") are considered relative to the root of
+ the JAR file's namespace. Absolute filenames (i.e., those
+ starting with "/") also specify names in the root of the
+ JAR file's namespace. In general, relative names are
+ preferred. The exception is .war files where absolute
+ names are preferred for consistency with the Servlet API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The connector element is the root element of the deployment
+ descriptor for the resource adapter. This element includes
+ general information - vendor name, resource adapter version,
+ icon - about the resource adapter module. It also includes
+ information specific to the implementation of the resource
+ adapter library as specified through the element
+ resourceadapter.
+
+
+
+
+
+
+
+
+
+
+
+
+ The activationspecType specifies an activation
+ specification. The information includes fully qualified
+ Java class name of an activation specification and a set of
+ required configuration property names.
+
+
+
+
+
+
+
+ com.wombat.ActivationSpecImpl
+
+
+ ]]>
+
+
+
+
+
+
+
+ The required-config-property element is deprecated since
+ Connectors 1.6 specification. The resource adapter
+ implementation is recommended to use the @NotNull
+ Bean Validation annotation or its XML validation
+ descriptor equivalent to indicate that a configuration
+ property is required to be specified by the deployer.
+ See the Connectors specification for more information.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The adminobjectType specifies information about an
+ administered object. Administered objects are specific to a
+ messaging style or message provider. This contains
+ information on the Java type of the interface implemented by
+ an administered object, its Java class name and its
+ configuration properties.
+
+
+
+
+
+
+
+ javax.jms.Destination
+
+
+ ]]>
+
+
+
+
+
+
+ com.wombat.DestinationImpl
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The authentication-mechanismType specifies an authentication
+ mechanism supported by the resource adapter. Note that this
+ support is for the resource adapter and not for the
+ underlying EIS instance. The optional description specifies
+ any resource adapter specific requirement for the support of
+ security contract and authentication mechanism.
+
+ Note that BasicPassword mechanism type should support the
+ javax.resource.spi.security.PasswordCredential interface.
+ The Kerbv5 mechanism type should support the
+ org.ietf.jgss.GSSCredential interface or the deprecated
+ javax.resource.spi.security.GenericCredential interface.
+
+
+
+
+
+
+
+
+ BasicPassword
+
+
+ Kerbv5
+
+
+ Any additional security mechanisms are outside the
+ scope of the Connector architecture specification.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ServerName
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ java.lang.String
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The config-propertyType contains a declaration of a single
+ configuration property that may be used for providing
+ configuration information.
+
+ The declaration consists of an optional description, name,
+ type and an optional value of the configuration property. If
+ the resource adapter provider does not specify a value than
+ the deployer is responsible for providing a valid value for
+ a configuration property.
+
+ Any bounds or well-defined values of properties should be
+ described in the description element.
+
+
+
+
+
+
+
+
+
+
+ WombatServer
+
+ ]]>
+
+
+
+
+
+
+
+ The element config-property-ignore is used to specify
+ whether the configuration tools must ignore considering the
+ configuration property during auto-discovery of
+ Configuration properties. See the Connector specification for
+ more details. If unspecified, the container must not ignore
+ the configuration property during auto-discovery.
+ This element must be one of the following, "true" or "false".
+
+
+
+
+
+
+
+
+ The element config-property-supports-dynamic-updates is used to specify
+ whether the configuration property allows its value to be updated, by
+ application server's configuration tools, during the lifetime of
+ the JavaBean instance. See the Connector specification for
+ more details. If unspecified, the container must not dynamically
+ reconfigure the property.
+ This element must be one of the following, "true" or "false".
+
+
+
+
+
+
+
+
+ The element config-property-confidential is used to specify
+ whether the configuration property is confidential and
+ recommends application server's configuration tools to use special
+ visual aids for editing them. See the Connector specification for
+ more details. If unspecified, the container must not treat the
+ property as confidential.
+ This element must be one of the following, "true" or "false".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The connection-definitionType defines a set of connection
+ interfaces and classes pertaining to a particular connection
+ type. This also includes configurable properties for
+ ManagedConnectionFactory instances that may be produced out
+ of this set.
+
+
+
+
+
+
+
+
+ com.wombat.ManagedConnectionFactoryImpl
+
+
+ ]]>
+
+
+
+
+
+
+
+ com.wombat.ConnectionFactory
+
+
+ OR
+
+ javax.resource.cci.ConnectionFactory
+
+
+ ]]>
+
+
+
+
+
+
+ com.wombat.ConnectionFactoryImpl
+
+
+ ]]>
+
+
+
+
+
+
+ javax.resource.cci.Connection
+
+
+ ]]>
+
+
+
+
+
+
+ com.wombat.ConnectionImpl
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The connectorType defines a resource adapter.
+
+
+
+
+
+
+
+
+ The element module-name specifies the name of the
+ resource adapter.
+
+ If there is no module-name specified, the module-name
+ is determined as defined in Section EE.8.1.1 and EE.8.1.2
+ of the Java Platform, Enterprise Edition (Java EE)
+ Specification, version 6.
+
+
+
+
+
+
+
+
+
+ The element vendor-name specifies the name of
+ resource adapter provider vendor.
+
+ If there is no vendor-name specified, the application
+ server must consider the default "" (empty string) as
+ the name of the resource adapter provider vendor.
+
+
+
+
+
+
+
+
+ The element eis-type contains information about the
+ type of the EIS. For example, the type of an EIS can
+ be product name of EIS independent of any version
+ info.
+
+ This helps in identifying EIS instances that can be
+ used with this resource adapter.
+
+ If there is no eis-type specified, the application
+ server must consider the default "" (empty string) as
+ the type of the EIS.
+
+
+
+
+
+
+
+
+ The element resourceadapter-version specifies a string-based version
+ of the resource adapter from the resource adapter
+ provider.
+
+ If there is no resourceadapter-version specified, the application
+ server must consider the default "" (empty string) as
+ the version of the resource adapter.
+
+
+
+
+
+
+
+
+
+
+
+ The element required-work-context specifies a fully qualified class
+ name that implements WorkContext interface, that the resource adapter
+ requires the application server to support.
+
+
+
+
+
+
+
+
+
+ The version indicates the version of the schema to be used by the
+ deployment tool. This element doesn't have a default, and the resource adapter
+ developer/deployer is required to specify it. The element allows the deployment
+ tool to choose which schema to validate the descriptor against.
+
+
+
+
+
+
+
+
+
+ The metadata-complete attribute defines whether the deployment
+ descriptor for the resource adapter module is complete, or whether
+ the class files available to the module and packaged with the resource
+ adapter should be examined for annotations that specify deployment
+ information.
+
+ If metadata-complete is set to "true", the deployment tool of the
+ application server must ignore any annotations that specify deployment
+ information, which might be present in the class files of the
+ application.If metadata-complete is not specified or is set to "false",
+ the deployment tool must examine the class files of the application for
+ annotations, as specified by this specification. If the
+ deployment descriptor is not included or is included but not marked
+ metadata-complete, the deployment tool will process annotations.
+
+ Application servers must assume that metadata-complete is true for
+ resource adapter modules with deployment descriptor version
+ lower than 1.6.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The credential-interfaceType specifies the
+ interface that the resource adapter implementation
+ supports for the representation of the
+ credentials. This element(s) that use this type,
+ i.e. credential-interface, should be used by
+ application server to find out the Credential
+ interface it should use as part of the security
+ contract.
+
+ The possible values are:
+
+ javax.resource.spi.security.PasswordCredential
+ org.ietf.jgss.GSSCredential
+ javax.resource.spi.security.GenericCredential
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The inbound-resourceadapterType specifies information
+ about an inbound resource adapter. This contains information
+ specific to the implementation of the resource adapter
+ library as specified through the messageadapter element.
+
+
+
+
+
+
+
+
+
+ The messagelistener-type element content must be
+ unique in the messageadapter. Several messagelisteners
+ can not use the same messagelistener-type.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The licenseType specifies licensing requirements for the
+ resource adapter module. This type specifies whether a
+ license is required to deploy and use this resource adapter,
+ and an optional description of the licensing terms
+ (examples: duration of license, number of connection
+ restrictions). It is used by the license element.
+
+
+
+
+
+
+
+
+
+ The element license-required specifies whether a
+ license is required to deploy and use the
+ resource adapter. This element must be one of
+ the following, "true" or "false".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The messageadapterType specifies information about the
+ messaging capabilities of the resource adapter. This
+ contains information specific to the implementation of the
+ resource adapter library as specified through the
+ messagelistener element.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The messagelistenerType specifies information about a
+ specific message listener supported by the messaging
+ resource adapter. It contains information on the Java type
+ of the message listener interface and an activation
+ specification.
+
+
+
+
+
+
+
+ javax.jms.MessageListener
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The outbound-resourceadapterType specifies information about
+ an outbound resource adapter. The information includes fully
+ qualified names of classes/interfaces required as part of
+ the connector architecture specified contracts for
+ connection management, level of transaction support
+ provided, one or more authentication mechanisms supported
+ and additional required security permissions.
+
+ If any of the outbound resource adapter elements (transaction-support,
+ authentication-mechanism, reauthentication-support) is specified through
+ this element or metadata annotations, and no connection-definition is
+ specified as part of this element or through annotations, the
+ application server must consider this an error and fail deployment.
+
+ If there is no authentication-mechanism specified as part of
+ this element or metadata annotations, then the resource adapter does
+ not support any standard security authentication mechanisms as
+ part of security contract. The application server ignores the security
+ part of the system contracts in this case.
+
+ If there is no transaction-support specified as part of this element
+ or metadata annotation, then the application server must consider that
+ the resource adapter does not support either the resource manager local
+ or JTA transactions and must consider the transaction support as
+ NoTransaction. Note that resource adapters may specify the level of
+ transaction support to be used at runtime for a ManagedConnectionFactory
+ through the TransactionSupport interface.
+
+ If there is no reauthentication-support specified as part of
+ this element or metadata annotation, then the application server must consider
+ that the resource adapter does not support re-authentication of
+ ManagedConnections.
+
+
+
+
+
+
+
+
+
+
+
+ The element reauthentication-support specifies
+ whether the resource adapter implementation supports
+ re-authentication of existing Managed- Connection
+ instance. Note that this information is for the
+ resource adapter implementation and not for the
+ underlying EIS instance. This element must have
+ either a "true" or "false" value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Destination
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The resourceadapterType specifies information about the
+ resource adapter. The information includes fully qualified
+ resource adapter Java class name, configuration properties,
+ information specific to the implementation of the resource
+ adapter library as specified through the
+ outbound-resourceadapter and inbound-resourceadapter
+ elements, and an optional set of administered objects.
+
+
+
+
+
+
+
+
+ The element resourceadapter-class specifies the
+ fully qualified name of a Java class that implements
+ the javax.resource.spi.ResourceAdapter
+ interface. This Java class is provided as part of
+ resource adapter's implementation of connector
+ architecture specified contracts. The implementation
+ of this class is required to be a JavaBean.
+
+
+
+
+
+
+
+
+
+
+ The connectionfactory-interface element content
+ must be unique in the outbound-resourceadapter.
+ Multiple connection-definitions can not use the
+ same connectionfactory-type.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The adminobject-interface and adminobject-class element content must be
+ unique in the resourceadapterType. Several admin objects
+ can not use the same adminobject-interface and adminobject-class.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The security-permissionType specifies a security
+ permission that is required by the resource adapter code.
+
+ The security permission listed in the deployment descriptor
+ are ones that are different from those required by the
+ default permission set as specified in the connector
+ specification. The optional description can mention specific
+ reason that resource adapter requires a given security
+ permission.
+
+
+
+
+
+
+
+
+
+ The element security-permission-spec specifies a security
+ permission based on the Security policy file
+ syntax. Refer to the following URL for Sun's
+ implementation of the security permission
+ specification:
+
+ http://docs.oracle.com/javase/6/docs/technotes/guides/security/PolicyFiles.html
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/ejb-jar_3_2.xsd b/gen/src/main/resources/xsd/ejb-jar_3_2.xsd
new file mode 100644
index 00000000..62e9ffda
--- /dev/null
+++ b/gen/src/main/resources/xsd/ejb-jar_3_2.xsd
@@ -0,0 +1,3375 @@
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+
+ ...
+
+
+ The instance documents may indicate the published version of
+ the schema using the xsi:schemaLocation attribute for the
+ Java EE namespace with the following location:
+
+ http://xmlns.jcp.org/xml/ns/javaee/ejb-jar_3_2.xsd
+
+ ]]>
+
+
+
+
+
+
+ The following conventions apply to all Java EE
+ deployment descriptor elements unless indicated otherwise.
+
+ - In elements that specify a pathname to a file within the
+ same JAR file, relative filenames (i.e., those not
+ starting with "/") are considered relative to the root of
+ the JAR file's namespace. Absolute filenames (i.e., those
+ starting with "/") also specify names in the root of the
+ JAR file's namespace. In general, relative names are
+ preferred. The exception is .war files where absolute
+ names are preferred for consistency with the Servlet API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This is the root of the ejb-jar deployment descriptor.
+
+
+
+
+
+
+
+ The ejb-name element contains the name of an enterprise
+ bean. The name must be unique within the ejb-jar file or
+ .war file.
+
+
+
+
+
+
+
+
+
+
+ The keyref indicates the references from
+ relationship-role-source must be to a specific ejb-name
+ defined within the scope of enterprise-beans element.
+
+
+
+
+
+
+
+
+
+
+ A role-name-key is specified to allow the references
+ from the security-role-refs.
+
+
+
+
+
+
+
+
+
+
+ The keyref indicates the references from
+ security-role-ref to a specified role-name.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The access-timeoutType represents the maximum amount of
+ time (in a given time unit) that the container should wait for
+ a concurrency lock before throwing a timeout exception to the
+ client.
+
+ A timeout value of 0 means concurrent access is not permitted.
+
+ A timeout value of -1 means wait indefinitely to acquire a lock.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The async-methodType element specifies that a session
+ bean method has asynchronous invocation semantics.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The activation-configType defines information about the
+ expected configuration properties of the message-driven bean
+ in its operational environment. This may include information
+ about message acknowledgement, message selector, expected
+ destination type, destination or connection factory lookup
+ string, subscription name, etc.
+
+ The configuration information is expressed in terms of
+ name/value configuration properties.
+
+ The properties that are recognized for a particular
+ message-driven bean are determined by the messaging type.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The activation-config-propertyType contains a name/value
+ configuration property pair for a message-driven bean.
+
+ The properties that are recognized for a particular
+ message-driven bean are determined by the messaging type.
+
+
+
+
+
+
+
+
+ The activation-config-property-name element contains
+ the name for an activation configuration property of
+ a message-driven bean.
+
+ For JMS message-driven beans, the following property
+ names are recognized: acknowledgeMode,
+ messageSelector, destinationType, subscriptionDurability,
+ destinationLookup, connectionFactoryLookup, subscriptionName,
+ and clientId.
+
+
+
+
+
+
+
+
+ The activation-config-property-value element
+ contains the value for an activation configuration
+ property of a message-driven bean.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The around-invoke type specifies a method on a
+ class to be called during the around invoke portion of an
+ ejb invocation. Note that each class may have only one
+ around invoke method and that the method may not be
+ overloaded.
+
+ If the class element is missing then
+ the class defining the callback is assumed to be the
+ interceptor class or component class in scope at the
+ location in the descriptor in which the around invoke
+ definition appears.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The around-timeout type specifies a method on a
+ class to be called during the around-timeout portion of
+ a timer timeout callback. Note that each class may have
+ only one around-timeout method and that the method may not
+ be overloaded.
+
+ If the class element is missing then
+ the class defining the callback is assumed to be the
+ interceptor class or component class in scope at the
+ location in the descriptor in which the around-timeout
+ definition appears.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The assembly-descriptorType defines
+ application-assembly information.
+
+ The application-assembly information consists of the
+ following parts: the definition of security roles, the
+ definition of method permissions, the definition of
+ transaction attributes for enterprise beans with
+ container-managed transaction demarcation, the definition
+ of interceptor bindings, a list of
+ methods to be excluded from being invoked, and a list of
+ exception types that should be treated as application exceptions.
+
+ All the parts are optional in the sense that they are
+ omitted if the lists represented by them are empty.
+
+ Providing an assembly-descriptor in the deployment
+ descriptor is optional for the ejb-jar file or .war file producer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The cmp-fieldType describes a container-managed field. The
+ cmp-fieldType contains an optional description of the field,
+ and the name of the field.
+
+
+
+
+
+
+
+
+
+ The field-name element specifies the name of a
+ container managed field.
+
+ The name of the cmp-field of an entity bean with
+ cmp-version 2.x must begin with a lowercase
+ letter. This field is accessed by methods whose
+ names consists of the name of the field specified by
+ field-name in which the first letter is uppercased,
+ prefixed by "get" or "set".
+
+ The name of the cmp-field of an entity bean with
+ cmp-version 1.x must denote a public field of the
+ enterprise bean class or one of its superclasses.
+
+ Support for entity beans is optional as of EJB 3.2.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The cmp-versionType specifies the version of an entity bean
+ with container-managed persistence. It is used by
+ cmp-version elements.
+
+ The value must be one of the two following:
+
+ 1.x
+ 2.x
+
+ Support for entity beans is optional as of EJB 3.2.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The cmr-fieldType describes the Bean Provider's view of
+ a relationship. It consists of an optional description, and
+ the name and the class type of a field in the source of a
+ role of a relationship. The cmr-field-name element
+ corresponds to the name used for the get and set accessor
+ methods for the relationship. The cmr-field-type element is
+ used only for collection-valued cmr-fields. It specifies the
+ type of the collection that is used.
+
+ Support for entity beans is optional as of EJB 3.2.
+
+
+
+
+
+
+
+
+
+ The cmr-field-name element specifies the name of a
+ logical relationship field in the entity bean
+ class. The name of the cmr-field must begin with a
+ lowercase letter. This field is accessed by methods
+ whose names consist of the name of the field
+ specified by cmr-field-name in which the first
+ letter is uppercased, prefixed by "get" or "set".
+
+ Support for entity beans is optional as of EJB 3.2.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The cmr-field-type element specifies the class of a
+ collection-valued logical relationship field in the entity
+ bean class. The value of an element using cmr-field-typeType
+ must be either: java.util.Collection or java.util.Set.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The concurrency-management-typeType specifies the way concurrency
+ is managed for a singleton or stateful session bean.
+
+ The concurrency management type must be one of the following:
+
+ Bean
+ Container
+
+ Bean managed concurrency can only be specified for a singleton bean.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The concurrent-lock-typeType specifies how the container must
+ manage concurrent access to a method of a Singleton bean
+ with container-managed concurrency.
+
+ The container managed concurrency lock type must be one
+ of the following :
+
+ Read
+ Write
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The concurrent-methodType specifies information about a method
+ of a bean with container managed concurrency.
+
+ The optional lock element specifies the kind of concurrency
+ lock asssociated with the method.
+
+ The optional access-timeout element specifies the amount of
+ time (in a given time unit) the container should wait for a
+ concurrency lock before throwing an exception to the client.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The container-transactionType specifies how the container
+ must manage transaction scopes for the enterprise bean's
+ method invocations. It defines an optional description, a
+ list of method elements, and a transaction attribute. The
+ transaction attribute is to be applied to all the specified
+ methods.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The depends-onType is used to express initialization
+ ordering dependencies between Singleton components.
+ The depends-onType specifies the names of one or more
+ Singleton beans in the same application as the referring
+ Singleton, each of which must be initialized before
+ the referring bean.
+
+ Each dependent bean is expressed using ejb-link syntax.
+ The order in which dependent beans are initialized at
+ runtime is not guaranteed to match the order in which
+ they are listed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ com.wombat.empl.EmployeeServiceBean
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The ejb-jarType defines the root element of the EJB
+ deployment descriptor. It contains
+
+ - an optional description of the ejb-jar file
+ - an optional display name
+ - an optional icon that contains a small and a large
+ icon file name
+ - an optional module name. Only applicable to
+ stand-alone ejb-jars or ejb-jars packaged in an ear.
+ Ignored if specified for an ejb-jar.xml within a .war file.
+ In that case, standard .war file module-name rules apply.
+ - structural information about all included
+ enterprise beans that is not specified through
+ annotations
+ - structural information about interceptor classes
+ - a descriptor for container managed relationships,
+ if any.
+ - an optional application-assembly descriptor
+ - an optional name of an ejb-client-jar file for the
+ ejb-jar.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The ejb-relation-name contains the name of a
+ relation. The name must be unique within
+ relationships.
+
+
+
+
+
+
+
+
+
+
+
+ Providing an assembly-descriptor in the deployment
+ descriptor is optional for the ejb-jar file or .war file
+ producer.
+
+
+
+
+
+
+
+ employee_service_client.jar
+
+
+ ]]>
+
+
+
+
+
+
+
+
+ The version specifies the version of the
+ EJB specification that the instance document must
+ comply with. This information enables deployment tools
+ to validate a particular EJB Deployment
+ Descriptor with respect to a specific version of the EJB
+ schema.
+
+
+
+
+
+
+
+
+ The metadata-complete attribute defines whether this
+ deployment descriptor and other related deployment
+ descriptors for this module (e.g., web service
+ descriptors) are complete, or whether the class
+ files available to this module and packaged with
+ this application should be examined for annotations
+ that specify deployment information.
+
+ If metadata-complete is set to "true", the deployment
+ tool must ignore any annotations that specify deployment
+ information, which might be present in the class files
+ of the application.
+
+ If metadata-complete is not specified or is set to
+ "false", the deployment tool must examine the class
+ files of the application for annotations, as
+ specified by the specifications.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EmployeeService
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The ejb-relationType describes a relationship between two
+ entity beans with container-managed persistence. It is used
+ by ejb-relation elements. It contains a description; an
+ optional ejb-relation-name element; and exactly two
+ relationship role declarations, defined by the
+ ejb-relationship-role elements. The name of the
+ relationship, if specified, is unique within the ejb-jar
+ file.
+
+ Support for entity beans is optional as of EJB 3.2.
+
+
+
+
+
+
+
+
+
+ The ejb-relation-name element provides a unique name
+ within the ejb-jar file for a relationship.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Product-LineItem
+
+ product-has-lineitems
+
+ One
+
+ ProductEJB
+
+
+
+
+ Support for entity beans is optional as of EJB 3.2.
+
+ ]]>
+
+
+
+
+
+
+
+
+ The ejb-relationship-role-name element defines a
+ name for a role that is unique within an
+ ejb-relation. Different relationships can use the
+ same name for a role.
+
+
+
+
+
+
+
+
+
+ The cascade-delete element specifies that, within a
+ particular relationship, the lifetime of one or more
+ entity beans is dependent upon the lifetime of
+ another entity bean. The cascade-delete element can
+ only be specified for an ejb-relationship-role
+ element contained in an ejb-relation element in
+ which the other ejb-relationship-role
+ element specifies a multiplicity of One.
+
+ Support for entity beans is optional as of EJB 3.2.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The enterprise-beansType declares one or more enterprise
+ beans. Each bean can be a session, entity or message-driven
+ bean.
+
+
+
+
+
+
+
+
+
+ The ejb-ref-name element contains the name of
+ an EJB reference. The EJB reference is an entry in
+ the component's environment and is relative to the
+ java:comp/env context. The name must be unique within
+ the component.
+
+ It is recommended that name be prefixed with "ejb/".
+
+
+
+
+
+
+
+
+
+
+ The ejb-ref-name element contains the name of an EJB
+ reference. The EJB reference is an entry in the
+ component's environment and is relative to the
+ java:comp/env context. The name must be unique
+ within the component.
+
+ It is recommended that name is prefixed with "ejb/".
+
+
+
+
+
+
+
+
+
+
+ The resource-env-ref-name element specifies the name
+ of a resource environment reference; its value is
+ the environment entry name used in the component
+ code. The name is a JNDI name relative to the
+ java:comp/env context and must be unique within an
+ component.
+
+
+
+
+
+
+
+
+
+
+ The message-destination-ref-name element specifies the name
+ of a message destination reference; its value is
+ the message destination reference name used in the component
+ code. The name is a JNDI name relative to the
+ java:comp/env context and must be unique within an
+ component.
+
+
+
+
+
+
+
+
+
+
+ The res-ref-name element specifies the name of a
+ resource manager connection factory reference. The name
+ is a JNDI name relative to the java:comp/env context.
+ The name must be unique within an component.
+
+
+
+
+
+
+
+
+
+
+ The env-entry-name element contains the name of a
+ component's environment entry. The name is a JNDI
+ name relative to the java:comp/env context. The
+ name must be unique within an component.
+
+
+
+
+
+
+
+
+
+
+
+
+ The ejb-ref-name element contains the name of
+ an EJB reference. The EJB reference is an entry in
+ the component's environment and is relative to the
+ java:comp/env context. The name must be unique within
+ the component.
+
+ It is recommended that name be prefixed with "ejb/".
+
+
+
+
+
+
+
+
+
+
+ The ejb-ref-name element contains the name of an EJB
+ reference. The EJB reference is an entry in the
+ component's environment and is relative to the
+ java:comp/env context. The name must be unique
+ within the component.
+
+ It is recommended that name is prefixed with "ejb/".
+
+
+
+
+
+
+
+
+
+
+ The resource-env-ref-name element specifies the name
+ of a resource environment reference; its value is
+ the environment entry name used in the component
+ code. The name is a JNDI name relative to the
+ java:comp/env context and must be unique within an
+ component.
+
+
+
+
+
+
+
+
+
+
+ The message-destination-ref-name element specifies the name
+ of a message destination reference; its value is
+ the message destination reference name used in the component
+ code. The name is a JNDI name relative to the
+ java:comp/env context and must be unique within an
+ component.
+
+
+
+
+
+
+
+
+
+
+ The res-ref-name element specifies the name of a
+ resource manager connection factory reference. The name
+ is a JNDI name relative to the java:comp/env context.
+ The name must be unique within an component.
+
+
+
+
+
+
+
+
+
+
+ The env-entry-name element contains the name of a
+ component's environment entry. The name is a JNDI
+ name relative to the java:comp/env context. The
+ name must be unique within an component.
+
+
+
+
+
+
+
+
+
+
+
+
+ The ejb-ref-name element contains the name of
+ an EJB reference. The EJB reference is an entry in
+ the component's environment and is relative to the
+ java:comp/env context. The name must be unique within
+ the component.
+
+ It is recommended that name be prefixed with "ejb/".
+
+
+
+
+
+
+
+
+
+
+ The ejb-ref-name element contains the name of an EJB
+ reference. The EJB reference is an entry in the
+ component's environment and is relative to the
+ java:comp/env context. The name must be unique
+ within the component.
+
+ It is recommended that name is prefixed with "ejb/".
+
+
+
+
+
+
+
+
+
+
+ The resource-env-ref-name element specifies the name
+ of a resource environment reference; its value is
+ the environment entry name used in the component
+ code. The name is a JNDI name relative to the
+ java:comp/env context and must be unique within an
+ component.
+
+
+
+
+
+
+
+
+
+
+ The message-destination-ref-name element specifies the name
+ of a message destination reference; its value is
+ the message destination reference name used in the component
+ code. The name is a JNDI name relative to the
+ java:comp/env context and must be unique within an
+ component.
+
+
+
+
+
+
+
+
+
+
+ The res-ref-name element specifies the name of a
+ resource manager connection factory reference. The name
+ is a JNDI name relative to the java:comp/env context.
+ The name must be unique within an component.
+
+
+
+
+
+
+
+
+
+
+ The env-entry-name element contains the name of a
+ component's environment entry. The name is a JNDI
+ name relative to the java:comp/env context. The
+ name must be unique within an component.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Support for entity beans is optional as of EJB 3.2.
+
+ The entity-beanType declares an entity bean. The declaration
+ consists of:
+
+ - an optional description
+ - an optional display name
+ - an optional icon element that contains a small and a large
+ icon file name
+ - a unique name assigned to the enterprise bean
+ in the deployment descriptor
+ - an optional mapped-name element that can be used to provide
+ vendor-specific deployment information such as the physical
+ jndi-name of the entity bean's remote home interface. This
+ element is not required to be supported by all implementations.
+ Any use of this element is non-portable.
+ - the names of the entity bean's remote home
+ and remote interfaces, if any
+ - the names of the entity bean's local home and local
+ interfaces, if any
+ - the entity bean's implementation class
+ - the optional entity bean's persistence management type. If
+ this element is not specified it is defaulted to Container.
+ - the entity bean's primary key class name
+ - an indication of the entity bean's reentrancy
+ - an optional specification of the
+ entity bean's cmp-version
+ - an optional specification of the entity bean's
+ abstract schema name
+ - an optional list of container-managed fields
+ - an optional specification of the primary key
+ field
+ - an optional declaration of the bean's environment
+ entries
+ - an optional declaration of the bean's EJB
+ references
+ - an optional declaration of the bean's local
+ EJB references
+ - an optional declaration of the bean's web
+ service references
+ - an optional declaration of the security role
+ references
+ - an optional declaration of the security identity
+ to be used for the execution of the bean's methods
+ - an optional declaration of the bean's
+ resource manager connection factory references
+ - an optional declaration of the bean's
+ resource environment references
+ - an optional declaration of the bean's message
+ destination references
+ - an optional set of query declarations
+ for finder and select methods for an entity
+ bean with cmp-version 2.x.
+
+ The optional abstract-schema-name element must be specified
+ for an entity bean with container-managed persistence and
+ cmp-version 2.x.
+
+ The optional primkey-field may be present in the descriptor
+ if the entity's persistence-type is Container.
+
+ The optional cmp-version element may be present in the
+ descriptor if the entity's persistence-type is Container. If
+ the persistence-type is Container and the cmp-version
+ element is not specified, its value defaults to 2.x.
+
+ The optional home and remote elements must be specified if
+ the entity bean cmp-version is 1.x.
+
+ The optional home and remote elements must be specified if
+ the entity bean has a remote home and remote interface.
+
+ The optional local-home and local elements must be specified
+ if the entity bean has a local home and local interface.
+
+ Either both the local-home and the local elements or both
+ the home and the remote elements must be specified.
+
+ The optional query elements must be present if the
+ persistence-type is Container and the cmp-version is 2.x and
+ query methods other than findByPrimaryKey have been defined
+ for the entity bean.
+
+ The other elements that are optional are "optional" in the
+ sense that they are omitted if the lists represented by them
+ are empty.
+
+ At least one cmp-field element must be present in the
+ descriptor if the entity's persistence-type is Container and
+ the cmp-version is 1.x, and none must not be present if the
+ entity's persistence-type is Bean.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The prim-key-class element contains the
+ fully-qualified name of an
+ entity bean's primary key class.
+
+ If the definition of the primary key class is
+ deferred to deployment time, the prim-key-class
+ element should specify java.lang.Object.
+
+ Support for entity beans is optional as of EJB 3.2.
+
+
+
+
+
+
+
+
+ The reentrant element specifies whether an entity
+ bean is reentrant or not.
+
+ The reentrant element must be one of the two
+ following: true or false
+
+
+
+
+
+
+
+
+
+ The abstract-schema-name element specifies the name
+ of the abstract schema type of an entity bean with
+ cmp-version 2.x. It is used in EJB QL queries.
+
+ For example, the abstract-schema-name for an entity
+ bean whose local interface is
+ com.acme.commerce.Order might be Order.
+
+ Support for entity beans is optional as of EJB 3.2.
+
+
+
+
+
+
+
+
+
+ The primkey-field element is used to specify the
+ name of the primary key field for an entity with
+ container-managed persistence.
+
+ The primkey-field must be one of the fields declared
+ in the cmp-field element, and the type of the field
+ must be the same as the primary key type.
+
+ The primkey-field element is not used if the primary
+ key maps to multiple container-managed fields
+ (i.e. the key is a compound key). In this case, the
+ fields of the primary key class must be public, and
+ their names must correspond to the field names of
+ the entity bean class that comprise the key.
+
+ Support for entity beans is optional as of EJB 3.2.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The exclude-listType specifies one or more methods which
+ the Assembler marks to be uncallable.
+
+ If the method permission relation contains methods that are
+ in the exclude list, the Deployer should consider those
+ methods to be uncallable.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The application-exceptionType declares an application
+ exception. The declaration consists of:
+
+ - the exception class. When the container receives
+ an exception of this type, it is required to
+ forward this exception as an applcation exception
+ to the client regardless of whether it is a checked
+ or unchecked exception.
+ - an optional rollback element. If this element is
+ set to true, the container must rollback the current
+ transaction before forwarding the exception to the
+ client. If not specified, it defaults to false.
+ - an optional inherited element. If this element is
+ set to true, subclasses of the exception class type
+ are also automatically considered application
+ exceptions (unless overriden at a lower level).
+ If set to false, only the exception class type is
+ considered an application-exception, not its
+ exception subclasses. If not specified, this
+ value defaults to true.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The interceptorsType element declares one or more interceptor
+ classes used by components within this ejb-jar file or .war file. The declaration
+ consists of :
+
+ - An optional description.
+ - One or more interceptor elements.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The interceptorType element declares information about a single
+ interceptor class. It consists of :
+
+ - An optional description.
+ - The fully-qualified name of the interceptor class.
+ - An optional list of around invoke methods declared on the
+ interceptor class and/or its super-classes.
+ - An optional list of around timeout methods declared on the
+ interceptor class and/or its super-classes.
+ - An optional list environment dependencies for the interceptor
+ class and/or its super-classes.
+ - An optional list of post-activate methods declared on the
+ interceptor class and/or its super-classes.
+ - An optional list of pre-passivate methods declared on the
+ interceptor class and/or its super-classes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ *
+ INTERCEPTOR
+
+
+ Specifying the ejb-name as the wildcard value "*" designates
+ default interceptors (interceptors that apply to all session and
+ message-driven beans contained in the ejb-jar file or .war file).
+
+ 2.
+
+ EJBNAME
+ INTERCEPTOR
+
+
+ This style is used to refer to interceptors associated with the
+ specified enterprise bean(class-level interceptors).
+
+ 3.
+
+ EJBNAME
+ INTERCEPTOR
+
+ METHOD
+
+
+
+ This style is used to associate a method-level interceptor with
+ the specified enterprise bean. If there are multiple methods
+ with the same overloaded name, the element of this style refers
+ to all the methods with the overloaded name. Method-level
+ interceptors can only be associated with business methods of the
+ bean class. Note that the wildcard value "*" cannot be used
+ to specify method-level interceptors.
+
+ 4.
+
+ EJBNAME
+ INTERCEPTOR
+
+ METHOD
+
+ PARAM-1
+ PARAM-2
+ ...
+ PARAM-N
+
+
+
+
+ This style is used to associate a method-level interceptor with
+ the specified method of the specified enterprise bean. This
+ style is used to refer to a single method within a set of methods
+ with an overloaded name. The values PARAM-1 through PARAM-N
+ are the fully-qualified Java types of the method's input parameters
+ (if the method has no input arguments, the method-params element
+ contains no method-param elements). Arrays are specified by the
+ array element's type, followed by one or more pair of square
+ brackets (e.g. int[][]).
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The interceptor-orderType element describes a total ordering
+ of interceptor classes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The message-driven element declares a message-driven
+ bean. The declaration consists of:
+
+ - an optional description
+ - an optional display name
+ - an optional icon element that contains a small and a large
+ icon file name.
+ - a name assigned to the enterprise bean in
+ the deployment descriptor
+ - an optional mapped-name element that can be used to provide
+ vendor-specific deployment information such as the physical
+ jndi-name of destination from which this message-driven bean
+ should consume. This element is not required to be supported
+ by all implementations. Any use of this element is non-portable.
+ - the message-driven bean's implementation class
+ - an optional declaration of the bean's messaging
+ type
+ - an optional declaration of the bean's timeout method for
+ handling programmatically created timers
+ - an optional declaration of timers to be automatically created at
+ deployment time
+ - the optional message-driven bean's transaction management
+ type. If it is not defined, it is defaulted to Container.
+ - an optional declaration of the bean's
+ message-destination-type
+ - an optional declaration of the bean's
+ message-destination-link
+ - an optional declaration of the message-driven bean's
+ activation configuration properties
+ - an optional list of the message-driven bean class and/or
+ superclass around-invoke methods.
+ - an optional list of the message-driven bean class and/or
+ superclass around-timeout methods.
+ - an optional declaration of the bean's environment
+ entries
+ - an optional declaration of the bean's EJB references
+ - an optional declaration of the bean's local EJB
+ references
+ - an optional declaration of the bean's web service
+ references
+ - an optional declaration of the security role
+ references
+ - an optional declaration of the security
+ identity to be used for the execution of the bean's
+ methods
+ - an optional declaration of the bean's
+ resource manager connection factory
+ references
+ - an optional declaration of the bean's resource
+ environment references.
+ - an optional declaration of the bean's message
+ destination references
+
+
+
+
+
+
+
+
+
+
+
+ The ejb-class element specifies the fully qualified name
+ of the bean class for this ejb. It is required unless
+ there is a component-defining annotation for the same
+ ejb-name.
+
+
+
+
+
+
+
+
+ The messaging-type element specifies the message
+ listener interface of the message-driven bean.
+
+
+
+
+
+
+
+
+ The timeout-method element specifies the method that
+ will receive callbacks for programmatically
+ created timers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EJBNAME
+ *
+
+
+ This style is used to refer to all of the following methods
+ of the specified enterprise bean:
+ business interface methods
+ home interface methods
+ component interface methods
+ web service endpoint interface methods
+ no-interface view methods
+ singleton session bean lifecycle callback methods
+ timeout callback methods
+ message-driven bean message listener method
+
+ This style may also be used in combination with the
+ method-intf element that contains LifecycleCallback as
+ the value to specify transaction attributes of a stateful
+ session bean PostConstruct, PreDestroy, PrePassivate,
+ and PostActivate lifecycle callback methods or to override
+ transaction attributes of a singleton session bean
+ PostConstruct and PreDestroy lifecycle callback methods.
+
+ 2.
+
+ EJBNAME
+ METHOD
+
+
+ This style is used to refer to the specified method of
+ the specified enterprise bean. If there are multiple
+ methods with the same overloaded name, the element of
+ this style refers to all the methods with the overloaded
+ name.
+
+ This style may be used to refer to stateful session bean
+ PostConstruct, PreDestroy, PrePassivate, and PostActivate
+ lifecycle callback methods to specify their transaction
+ attributes if any of the following is true:
+ there is only one method with this name in the specified
+ enterprise bean
+ all overloaded methods with this name in the specified
+ enterprise bean are lifecycle callback methods
+ method-intf element is specified and it contains
+ LifecycleCallback as the value
+
+ 3.
+
+ EJBNAME
+ METHOD
+
+ PARAM-1
+ PARAM-2
+ ...
+ PARAM-n
+
+
+
+ This style is used to refer to a single method within a
+ set of methods with an overloaded name. PARAM-1 through
+ PARAM-n are the fully-qualified Java types of the
+ method's input parameters (if the method has no input
+ arguments, the method-params element contains no
+ method-param elements). Arrays are specified by the
+ array element's type, followed by one or more pair of
+ square brackets (e.g. int[][]).
+ If a method with the same name and signature is defined
+ on more than one interface of an enterprise bean, this
+ style refers to all those methods.
+
+ Examples:
+
+ Style 1: The following method element refers to all of the
+ following methods of the EmployeeService bean:
+ no interface view methods
+ business interface methods
+ home interface methods
+ component business interface methods
+ singleton session bean lifecycle callback methods, if any
+ timeout callback methods
+ web service endpoint interface methods
+ message-driven bean message listener methods (if the bean
+ a message-driven bean)
+
+
+ EmployeeService
+ *
+
+
+ Style 2: The following method element refers to all the
+ create methods of the EmployeeService bean's home
+ interface(s).
+
+
+ EmployeeService
+ create
+
+
+ Style 3: The following method element refers to the
+ create(String firstName, String LastName) method of the
+ EmployeeService bean's home interface(s).
+
+
+ EmployeeService
+ create
+
+ java.lang.String
+ java.lang.String
+
+
+
+ The following example illustrates a Style 3 element with
+ more complex parameter types. The method
+ foobar(char s, int i, int[] iar, mypackage.MyClass mycl,
+ mypackage.MyClass[][] myclaar) would be specified as:
+
+
+ EmployeeService
+ foobar
+
+ char
+ int
+ int[]
+ mypackage.MyClass
+ mypackage.MyClass[][]
+
+
+
+ The optional method-intf element can be used when it becomes
+ necessary to differentiate between a method that is defined
+ multiple times with the same name and signature across any
+ of the following methods of an enterprise bean:
+ business interface methods
+ home interface methods
+ component interface methods
+ web service endpoint methods
+ no-interface view methods
+ singleton or stateful session bean lifecycle callback methods
+ timeout callback methods
+ message-driven bean message listener methods
+
+ However, if the same method is a method of both the local
+ business interface, and the local component interface,
+ the same attribute applies to the method for both interfaces.
+ Likewise, if the same method is a method of both the remote
+ business interface and the remote component interface, the same
+ attribute applies to the method for both interfaces.
+
+ For example, the method element
+
+
+ EmployeeService
+ Remote
+ create
+
+ java.lang.String
+ java.lang.String
+
+
+
+ can be used to differentiate the create(String, String)
+ method defined in the remote interface from the
+ create(String, String) method defined in the remote home
+ interface, which would be defined as
+
+
+ EmployeeService
+ Home
+ create
+
+ java.lang.String
+ java.lang.String
+
+
+
+ and the create method that is defined in the local home
+ interface which would be defined as
+
+
+ EmployeeService
+ LocalHome
+ create
+
+ java.lang.String
+ java.lang.String
+
+
+
+ The method-intf element can be used with all three Styles
+ of the method element usage. For example, the following
+ method element example could be used to refer to all the
+ methods of the EmployeeService bean's remote home interface
+ and the remote business interface.
+
+
+ EmployeeService
+ Home
+ *
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The method-intf element allows a method element to
+ differentiate between the methods with the same name and
+ signature that are multiply defined across the home and
+ component interfaces (e.g, in both an enterprise bean's
+ remote and local interfaces or in both an enterprise bean's
+ home and remote interfaces, etc.); the component and web
+ service endpoint interfaces, and so on.
+
+ Local applies to the local component interface, local business
+ interfaces, and the no-interface view.
+
+ Remote applies to both remote component interface and the remote
+ business interfaces.
+
+ ServiceEndpoint refers to methods exposed through a web service
+ endpoint.
+
+ Timer refers to the bean's timeout callback methods.
+
+ MessageEndpoint refers to the methods of a message-driven bean's
+ message-listener interface.
+
+ LifecycleCallback refers to the PostConstruct and PreDestroy
+ lifecycle callback methods of a singleton session bean and
+ to the PostConstruct, PreDestroy, PrePassivate, and PostActivate
+ lifecycle callback methods of a stateful session bean.
+
+ The method-intf element must be one of the following:
+
+ Home
+ Remote
+ LocalHome
+ Local
+ ServiceEndpoint
+ Timer
+ MessageEndpoint
+ LifecycleCallback
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The method-nameType contains a name of an enterprise
+ bean method or the asterisk (*) character. The asterisk is
+ used when the element denotes all the methods of an
+ enterprise bean's client view interfaces.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The method-paramsType defines a list of the
+ fully-qualified Java type names of the method parameters.
+
+
+
+
+
+
+
+
+ The method-param element contains a primitive
+ or a fully-qualified Java type name of a method
+ parameter.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The method-permissionType specifies that one or more
+ security roles are allowed to invoke one or more enterprise
+ bean methods. The method-permissionType consists of an
+ optional description, a list of security role names or an
+ indicator to state that the method is unchecked for
+ authorization, and a list of method elements.
+
+ Except as noted below the security roles used in the
+ method-permissionType must be defined in the security-role
+ elements of the deployment descriptor, and the methods
+ must be methods defined in the enterprise bean's no-interface
+ view, business, home, component and/or web service endpoint
+ interfaces.
+
+ If the role name "**" is included in the list of allowed
+ roles, and the application has not defined in its deployment
+ descriptor an application security role with this name,
+ then the list of allowed roles includes every and any
+ authenticated user.
+
+
+
+
+
+
+
+
+
+
+
+ The unchecked element specifies that a method is
+ not checked for authorization by the container
+ prior to invocation of the method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The multiplicityType describes the multiplicity of the
+ role that participates in a relation.
+
+ The value must be one of the two following:
+
+ One
+ Many
+
+ Support for entity beans is optional as of EJB 3.2.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The persistence-typeType specifies an entity bean's persistence
+ management type.
+
+ The persistence-type element must be one of the two following:
+
+ Bean
+ Container
+
+ Support for entity beans is optional as of EJB 3.2.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The queryType defines a finder or select
+ query. It contains
+ - an optional description of the query
+ - the specification of the finder or select
+ method it is used by
+ - an optional specification of the result type
+ mapping, if the query is for a select method
+ and entity objects are returned.
+ - the EJB QL query string that defines the query.
+
+ Queries that are expressible in EJB QL must use the ejb-ql
+ element to specify the query. If a query is not expressible
+ in EJB QL, the description element should be used to
+ describe the semantics of the query and the ejb-ql element
+ should be empty.
+
+ The result-type-mapping is an optional element. It can only
+ be present if the query-method specifies a select method
+ that returns entity objects. The default value for the
+ result-type-mapping element is "Local".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Method finds large orders
+
+ findLargeOrders
+
+
+
+ SELECT OBJECT(o) FROM Order o
+ WHERE o.amount > 1000
+
+
+
+ Support for entity beans is optional as of EJB 3.2.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The relationship-role-sourceType designates the source of a
+ role that participates in a relationship. A
+ relationship-role-sourceType is used by
+ relationship-role-source elements to uniquely identify an
+ entity bean.
+
+ Support for entity beans is optional as of EJB 3.2.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The relationshipsType describes the relationships in
+ which entity beans with container-managed persistence
+ participate. The relationshipsType contains an optional
+ description; and a list of ejb-relation elements, which
+ specify the container managed relationships.
+
+ Support for entity beans is optional as of EJB 3.2.
+
+
+
+
+
+
+
+
+
+
+ The ejb-relationship-role-name contains the name of a
+ relationship role. The name must be unique within
+ a relationship, but can be reused in different
+ relationships.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The result-type-mappingType is used in the query element to
+ specify whether an abstract schema type returned by a query
+ for a select method is to be mapped to an EJBLocalObject or
+ EJBObject type.
+
+ The value must be one of the following:
+
+ Local
+ Remote
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The security-identityType specifies whether the caller's
+ security identity is to be used for the execution of the
+ methods of the enterprise bean or whether a specific run-as
+ identity is to be used. It contains an optional description
+ and a specification of the security identity to be used.
+
+
+
+
+
+
+
+
+
+
+ The use-caller-identity element specifies that
+ the caller's security identity be used as the
+ security identity for the execution of the
+ enterprise bean's methods.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The session-beanType declares an session bean. The
+ declaration consists of:
+
+ - an optional description
+ - an optional display name
+ - an optional icon element that contains a small and a large
+ icon file name
+ - a name assigned to the enterprise bean
+ in the deployment description
+ - an optional mapped-name element that can be used to provide
+ vendor-specific deployment information such as the physical
+ jndi-name of the session bean's remote home/business interface.
+ This element is not required to be supported by all
+ implementations. Any use of this element is non-portable.
+ - the names of all the remote or local business interfaces,
+ if any
+ - the names of the session bean's remote home and
+ remote interfaces, if any
+ - the names of the session bean's local home and
+ local interfaces, if any
+ - an optional declaration that this bean exposes a
+ no-interface view
+ - the name of the session bean's web service endpoint
+ interface, if any
+ - the session bean's implementation class
+ - the session bean's state management type
+ - an optional declaration of a stateful session bean's timeout value
+ - an optional declaration of the session bean's timeout method for
+ handling programmatically created timers
+ - an optional declaration of timers to be automatically created at
+ deployment time
+ - an optional declaration that a Singleton bean has eager
+ initialization
+ - an optional declaration of a Singleton/Stateful bean's concurrency
+ management type
+ - an optional declaration of the method locking metadata
+ for a Singleton with container managed concurrency
+ - an optional declaration of the other Singleton beans in the
+ application that must be initialized before this bean
+ - an optional declaration of the session bean's asynchronous
+ methods
+ - the optional session bean's transaction management type.
+ If it is not present, it is defaulted to Container.
+ - an optional declaration of a stateful session bean's
+ afterBegin, beforeCompletion, and/or afterCompletion methods
+ - an optional list of the session bean class and/or
+ superclass around-invoke methods.
+ - an optional list of the session bean class and/or
+ superclass around-timeout methods.
+ - an optional declaration of the bean's
+ environment entries
+ - an optional declaration of the bean's EJB references
+ - an optional declaration of the bean's local
+ EJB references
+ - an optional declaration of the bean's web
+ service references
+ - an optional declaration of the security role
+ references
+ - an optional declaration of the security identity
+ to be used for the execution of the bean's methods
+ - an optional declaration of the bean's resource
+ manager connection factory references
+ - an optional declaration of the bean's resource
+ environment references.
+ - an optional declaration of the bean's message
+ destination references
+ - an optional specification as to whether the stateful
+ session bean is passivation capable or not. If not
+ specified, the bean is assumed to be passivation capable
+
+ The elements that are optional are "optional" in the sense
+ that they are omitted when if lists represented by them are
+ empty.
+
+ The service-endpoint element may only be specified if the
+ bean is a stateless session bean.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The local-bean element declares that this
+ session bean exposes a no-interface Local client view.
+
+
+
+
+
+
+
+
+ The service-endpoint element contains the
+ fully-qualified name of the enterprise bean's web
+ service endpoint interface. The service-endpoint
+ element may only be specified for a stateless
+ session bean. The specified interface must be a
+ valid JAX-RPC service endpoint interface.
+
+
+
+
+
+
+
+
+ The ejb-class element specifies the fully qualified name
+ of the bean class for this ejb. It is required unless
+ there is a component-defining annotation for the same
+ ejb-name.
+
+
+
+
+
+
+
+
+
+
+ The timeout-method element specifies the method that
+ will receive callbacks for programmatically
+ created timers.
+
+
+
+
+
+
+
+
+
+ The init-on-startup element specifies that a Singleton
+ bean has eager initialization.
+ This element can only be specified for singleton session
+ beans.
+
+
+
+
+
+
+
+
+
+
+
+ The init-method element specifies the mappings for
+ EJB 2.x style create methods for an EJB 3.x bean.
+ This element can only be specified for stateful
+ session beans.
+
+
+
+
+
+
+
+
+ The remove-method element specifies the mappings for
+ EJB 2.x style remove methods for an EJB 3.x bean.
+ This element can only be specified for stateful
+ session beans.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The passivation-capable element specifies whether the
+ stateful session bean is passivation capable or not.
+ If not specified, the bean is assumed to be passivation
+ capable.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The session-typeType describes whether the session bean is a
+ singleton, stateful or stateless session. It is used by
+ session-type elements.
+
+ The value must be one of the three following:
+
+ Singleton
+ Stateful
+ Stateless
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The stateful-timeoutType represents the amount of time
+ a stateful session bean can be idle(not receive any client
+ invocations) before it is eligible for removal by the container.
+
+ A timeout value of 0 means the bean is immediately eligible for removal.
+
+ A timeout value of -1 means the bean will never be removed due to timeout.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The time-unit-typeType represents a time duration at a given
+ unit of granularity.
+
+ The time unit type must be one of the following :
+
+ Days
+ Hours
+ Minutes
+ Seconds
+ Milliseconds
+ Microseconds
+ Nanoseconds
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The timerType specifies an enterprise bean timer. Each
+ timer is automatically created by the container upon
+ deployment. Timer callbacks occur based on the
+ schedule attributes. All callbacks are made to the
+ timeout-method associated with the timer.
+
+ A timer can have an optional start and/or end date. If
+ a start date is specified, it takes precedence over the
+ associated timer schedule such that any matching
+ expirations prior to the start time will not occur.
+ Likewise, no matching expirations will occur after any
+ end date. Start/End dates are specified using the
+ XML Schema dateTime type, which follows the ISO-8601
+ standard for date(and optional time-within-the-day)
+ representation.
+
+ An optional flag can be used to control whether
+ this timer has persistent(true) delivery semantics or
+ non-persistent(false) delivery semantics. If not specified,
+ the value defaults to persistent(true).
+
+ A time zone can optionally be associated with a timer.
+ If specified, the timer's schedule is evaluated in the context
+ of that time zone, regardless of the default time zone in which
+ the container is executing. Time zones are specified as an
+ ID string. The set of required time zone IDs is defined by
+ the Zone Name(TZ) column of the public domain zoneinfo database.
+
+ An optional info string can be assigned to the timer and
+ retrieved at runtime through the Timer.getInfo() method.
+
+ The timerType can only be specified on stateless session
+ beans, singleton session beans, and message-driven beans.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The trans-attributeType specifies how the container must
+ manage the transaction boundaries when delegating a method
+ invocation to an enterprise bean's business method.
+
+ The value must be one of the following:
+
+ NotSupported
+ Supports
+ Required
+ RequiresNew
+ Mandatory
+ Never
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The transaction-typeType specifies an enterprise bean's
+ transaction management type.
+
+ The transaction-type must be one of the two following:
+
+ Bean
+ Container
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/javaee_7.xsd b/gen/src/main/resources/xsd/javaee_7.xsd
new file mode 100644
index 00000000..f9fdb312
--- /dev/null
+++ b/gen/src/main/resources/xsd/javaee_7.xsd
@@ -0,0 +1,3098 @@
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+
+ The following definitions that appear in the common
+ shareable schema(s) of Java EE deployment descriptors should be
+ interpreted with respect to the context they are included:
+
+ Deployment Component may indicate one of the following:
+ java ee application;
+ application client;
+ web application;
+ enterprise bean;
+ resource adapter;
+
+ Deployment File may indicate one of the following:
+ ear file;
+ war file;
+ jar file;
+ rar file;
+
+
+
+
+
+
+
+
+
+
+
+
+ This group keeps the usage of the contained description related
+ elements consistent across Java EE deployment descriptors.
+
+ All elements may occur multiple times with different languages,
+ to support localization of the content.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This group keeps the usage of the contained JNDI environment
+ reference elements consistent across Java EE deployment descriptors.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This group collects elements that are common to most
+ JNDI resource elements.
+
+
+
+
+
+
+
+
+
+ The JNDI name to be looked up to resolve a resource reference.
+
+
+
+
+
+
+
+
+
+
+
+ This group collects elements that are common to all the
+ JNDI resource elements. It does not include the lookup-name
+ element, that is only applicable to some resource elements.
+
+
+
+
+
+
+
+
+ A product specific name that this resource should be
+ mapped to. The name of this resource, as defined by the
+ resource's name element or defaulted, is a name that is
+ local to the application component using the resource.
+ (It's a name in the JNDI java:comp/env namespace.) Many
+ application servers provide a way to map these local
+ names to names of resources known to the application
+ server. This mapped name is often a global JNDI name,
+ but may be a name of any form.
+
+ Application servers are not required to support any
+ particular form or type of mapped name, nor the ability
+ to use mapped names. The mapped name is
+ product-dependent and often installation-dependent. No
+ use of a mapped name is portable.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configuration of an administered object.
+
+
+
+
+
+
+
+
+ Description of this administered object.
+
+
+
+
+
+
+
+
+ The name element specifies the JNDI name of the
+ administered object being defined.
+
+
+
+
+
+
+
+
+ The administered object's interface type.
+
+
+
+
+
+
+
+
+ The administered object's class name.
+
+
+
+
+
+
+
+
+ Resource adapter name.
+
+
+
+
+
+
+
+
+ Property of the administered object property. This may be a
+ vendor-specific property.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configuration of a Connector Connection Factory resource.
+
+
+
+
+
+
+
+
+ Description of this resource.
+
+
+
+
+
+
+
+
+ The name element specifies the JNDI name of the
+ resource being defined.
+
+
+
+
+
+
+
+
+ The fully qualified class name of the connection factory
+ interface.
+
+
+
+
+
+
+
+
+ Resource adapter name.
+
+
+
+
+
+
+
+
+ Maximum number of connections that should be concurrently
+ allocated for a connection pool.
+
+
+
+
+
+
+
+
+ Minimum number of connections that should be concurrently
+ allocated for a connection pool.
+
+
+
+
+
+
+
+
+ The level of transaction support the connection factory
+ needs to support.
+
+
+
+
+
+
+
+
+ Resource property. This may be a vendor-specific
+ property.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configuration of a DataSource.
+
+
+
+
+
+
+
+
+ Description of this DataSource.
+
+
+
+
+
+
+
+
+ The name element specifies the JNDI name of the
+ data source being defined.
+
+
+
+
+
+
+
+
+ DataSource, XADataSource or ConnectionPoolDataSource
+ implementation class.
+
+
+
+
+
+
+
+
+ Database server name.
+
+
+
+
+
+
+
+
+ Port number where a server is listening for requests.
+
+
+
+
+
+
+
+
+ Name of a database on a server.
+
+
+
+
+
+
+
+ url property is specified
+ along with other standard DataSource
properties
+ such as serverName
, databaseName
+ and portNumber
, the more specific properties will
+ take precedence and url
will be ignored.
+
+ ]]>
+
+
+
+
+
+
+
+ User name to use for connection authentication.
+
+
+
+
+
+
+
+
+ Password to use for connection authentication.
+
+
+
+
+
+
+
+
+ JDBC DataSource property. This may be a vendor-specific
+ property or a less commonly used DataSource property.
+
+
+
+
+
+
+
+
+ Sets the maximum time in seconds that this data source
+ will wait while attempting to connect to a database.
+
+
+
+
+
+
+
+
+ Set to false if connections should not participate in
+ transactions.
+
+
+
+
+
+
+
+
+ Isolation level for connections.
+
+
+
+
+
+
+
+
+ Number of connections that should be created when a
+ connection pool is initialized.
+
+
+
+
+
+
+
+
+ Maximum number of connections that should be concurrently
+ allocated for a connection pool.
+
+
+
+
+
+
+
+
+ Minimum number of connections that should be concurrently
+ allocated for a connection pool.
+
+
+
+
+
+
+
+
+ The number of seconds that a physical connection should
+ remain unused in the pool before the connection is
+ closed for a connection pool.
+
+
+
+
+
+
+
+
+ The total number of statements that a connection pool
+ should keep open.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The description type is used by a description element to
+ provide text describing the parent element. The elements
+ that use this type should include any information that the
+ Deployment Component's Deployment File file producer wants
+ to provide to the consumer of the Deployment Component's
+ Deployment File (i.e., to the Deployer). Typically, the
+ tools used by such a Deployment File consumer will display
+ the description when processing the parent element that
+ contains the description.
+
+ The lang attribute defines the language that the
+ description is provided in. The default value is "en" (English).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type defines a dewey decimal that is used
+ to describe versions of documents.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Employee Self Service
+
+
+ The value of the xml:lang attribute is "en" (English) by default.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EmployeeRecord
+
+ ../products/product.jar#ProductEJB
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The ejb-local-refType is used by ejb-local-ref elements for
+ the declaration of a reference to an enterprise bean's local
+ home or to the local business interface of a 3.0 bean.
+ The declaration consists of:
+
+ - an optional description
+ - the EJB reference name used in the code of the Deployment
+ Component that's referencing the enterprise bean.
+ - the optional expected type of the referenced enterprise bean
+ - the optional expected local interface of the referenced
+ enterprise bean or the local business interface of the
+ referenced enterprise bean.
+ - the optional expected local home interface of the referenced
+ enterprise bean. Not applicable if this ejb-local-ref refers
+ to the local business interface of a 3.0 bean.
+ - optional ejb-link information, used to specify the
+ referenced enterprise bean
+ - optional elements to define injection of the named enterprise
+ bean into a component field or property.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ejb/Payroll
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The ejb-refType is used by ejb-ref elements for the
+ declaration of a reference to an enterprise bean's home or
+ to the remote business interface of a 3.0 bean.
+ The declaration consists of:
+
+ - an optional description
+ - the EJB reference name used in the code of
+ the Deployment Component that's referencing the enterprise
+ bean.
+ - the optional expected type of the referenced enterprise bean
+ - the optional remote interface of the referenced enterprise bean
+ or the remote business interface of the referenced enterprise
+ bean
+ - the optional expected home interface of the referenced
+ enterprise bean. Not applicable if this ejb-ref
+ refers to the remote business interface of a 3.0 bean.
+ - optional ejb-link information, used to specify the
+ referenced enterprise bean
+ - optional elements to define injection of the named enterprise
+ bean into a component field or property
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The ejb-ref-typeType contains the expected type of the
+ referenced enterprise bean.
+
+ The ejb-ref-type designates a value
+ that must be one of the following:
+
+ Entity
+ Session
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type is used to designate an empty
+ element when used.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The env-entryType is used to declare an application's
+ environment entry. The declaration consists of an optional
+ description, the name of the environment entry, a type
+ (optional if the value is injected, otherwise required), and
+ an optional value.
+
+ It also includes optional elements to define injection of
+ the named resource into fields or JavaBeans properties.
+
+ If a value is not specified and injection is requested,
+ no injection will occur and no entry of the specified name
+ will be created. This allows an initial value to be
+ specified in the source code without being incorrectly
+ changed when no override has been specified.
+
+ If a value is not specified and no injection is requested,
+ a value must be supplied during deployment.
+
+ This type is used by env-entry elements.
+
+
+
+
+
+
+
+
+ minAmount
+
+ ]]>
+
+
+
+
+
+
+ java.lang.Integer
+
+ ]]>
+
+
+
+
+
+
+ 100.00
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ java.lang.Boolean
+ java.lang.Class
+ com.example.Color
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The elements that use this type designate the name of a
+ Java class or interface. The name is in the form of a
+ "binary name", as defined in the JLS. This is the form
+ of name used in Class.forName(). Tools that need the
+ canonical name (the name used in source code) will need
+ to convert this binary name to the canonical name.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type defines four different values which can designate
+ boolean values. This includes values yes and no which are
+ not designated by xsd:boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The icon type contains small-icon and large-icon elements
+ that specify the file names for small and large GIF, JPEG,
+ or PNG icon images used to represent the parent element in a
+ GUI tool.
+
+ The xml:lang attribute defines the language that the
+ icon file names are provided in. Its value is "en" (English)
+ by default.
+
+
+
+
+
+
+
+ employee-service-icon16x16.jpg
+
+ ]]>
+
+
+
+
+
+
+ employee-service-icon32x32.jpg
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An injection target specifies a class and a name within
+ that class into which a resource should be injected.
+
+ The injection target class specifies the fully qualified
+ class name that is the target of the injection. The
+ Java EE specifications describe which classes can be an
+ injection target.
+
+ The injection target name specifies the target within
+ the specified class. The target is first looked for as a
+ JavaBeans property name. If not found, the target is
+ looked for as a field name.
+
+ The specified resource will be injected into the target
+ during initialization of the class by either calling the
+ set method for the target property or by setting a value
+ into the named field.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The following transaction isolation levels are allowed
+ (see documentation for the java.sql.Connection interface):
+ TRANSACTION_READ_UNCOMMITTED
+ TRANSACTION_READ_COMMITTED
+ TRANSACTION_REPEATABLE_READ
+ TRANSACTION_SERIALIZABLE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The java-identifierType defines a Java identifier.
+ The users of this type should further verify that
+ the content does not contain Java reserved keywords.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This is a generic type that designates a Java primitive
+ type or a fully qualified name of a Java interface/type,
+ or an array of such types.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ :
+
+ Example:
+
+ jdbc:mysql://localhost:3307/testdb
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configuration of a JMS Connection Factory.
+
+
+
+
+
+
+
+
+ Description of this JMS Connection Factory.
+
+
+
+
+
+
+
+
+ The name element specifies the JNDI name of the
+ JMS connection factory being defined.
+
+
+
+
+
+
+
+
+ Fully-qualified name of the JMS connection factory
+ interface. Permitted values are javax.jms.ConnectionFactory,
+ javax.jms.QueueConnectionFactory, or
+ javax.jms.TopicConnectionFactory. If not specified,
+ javax.jms.ConnectionFactory will be used.
+
+
+
+
+
+
+
+
+ Fully-qualified name of the JMS connection factory
+ implementation class. Ignored if a resource adapter
+ is used.
+
+
+
+
+
+
+
+
+ Resource adapter name. If not specified, the application
+ server will define the default behavior, which may or may
+ not involve the use of a resource adapter.
+
+
+
+
+
+
+
+
+ User name to use for connection authentication.
+
+
+
+
+
+
+
+
+ Password to use for connection authentication.
+
+
+
+
+
+
+
+
+ Client id to use for connection.
+
+
+
+
+
+
+
+
+ JMS Connection Factory property. This may be a vendor-specific
+ property or a less commonly used ConnectionFactory property.
+
+
+
+
+
+
+
+
+ Set to false if connections should not participate in
+ transactions.
+
+
+
+
+
+
+
+
+ Maximum number of connections that should be concurrently
+ allocated for a connection pool.
+
+
+
+
+
+
+
+
+ Minimum number of connections that should be concurrently
+ allocated for a connection pool.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configuration of a JMS Destination.
+
+
+
+
+
+
+
+
+ Description of this JMS Destination.
+
+
+
+
+
+
+
+
+ The name element specifies the JNDI name of the
+ JMS destination being defined.
+
+
+
+
+
+
+
+
+ Fully-qualified name of the JMS destination interface.
+ Permitted values are javax.jms.Queue and javax.jms.Topic
+
+
+
+
+
+
+
+
+ Fully-qualified name of the JMS destination implementation
+ class. Ignored if a resource adapter is used unless the
+ resource adapter defines more than one destination implementation
+ class for the specified interface.
+
+
+
+
+
+
+
+
+ Resource adapter name. If not specified, the application
+ server will define the default behavior, which may or may
+ not involve the use of a resource adapter.
+
+
+
+
+
+
+
+
+ Name of the queue or topic.
+
+
+
+
+
+
+
+
+ JMS Destination property. This may be a vendor-specific
+ property or a less commonly used Destination property.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The jndi-nameType type designates a JNDI name in the
+ Deployment Component's environment and is relative to the
+ java:comp/env context. A JNDI name must be unique within the
+ Deployment Component.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ com.aardvark.payroll.PayrollHome
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The lifecycle-callback type specifies a method on a
+ class to be called when a lifecycle event occurs.
+ Note that each class may have only one lifecycle callback
+ method for any given event and that the method may not
+ be overloaded.
+
+ If the lifefycle-callback-class element is missing then
+ the class defining the callback is assumed to be the
+ component class in scope at the place in the descriptor
+ in which the callback definition appears.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The listenerType indicates the deployment properties for a web
+ application listener bean.
+
+
+
+
+
+
+
+
+
+ The listener-class element declares a class in the
+ application must be registered as a web
+ application listener bean. The value is the fully
+ qualified classname of the listener class.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The localType defines the fully-qualified name of an
+ enterprise bean's local interface.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The local-homeType defines the fully-qualified
+ name of an enterprise bean's local home interface.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configuration of a Mail Session resource.
+
+
+
+
+
+
+
+
+ Description of this Mail Session resource.
+
+
+
+
+
+
+
+
+ The name element specifies the JNDI name of the
+ Mail Session resource being defined.
+
+
+
+
+
+
+
+
+ Storage protocol.
+
+
+
+
+
+
+
+
+ Service provider store protocol implementation class
+
+
+
+
+
+
+
+
+ Transport protocol.
+
+
+
+
+
+
+
+
+ Service provider transport protocol implementation class
+
+
+
+
+
+
+
+
+ Mail server host name.
+
+
+
+
+
+
+
+
+ Mail server user name.
+
+
+
+
+
+
+
+
+ Password.
+
+
+
+
+
+
+
+
+ Email address to indicate the message sender.
+
+
+
+
+
+
+
+
+ Mail server property. This may be a vendor-specific
+ property.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type is a general type that can be used to declare
+ parameter/value lists.
+
+
+
+
+
+
+
+
+
+ The param-name element contains the name of a
+ parameter.
+
+
+
+
+
+
+
+
+ The param-value element contains the value of a
+ parameter.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The elements that use this type designate either a relative
+ path or an absolute path starting with a "/".
+
+ In elements that specify a pathname to a file within the
+ same Deployment File, relative filenames (i.e., those not
+ starting with "/") are considered relative to the root of
+ the Deployment File's namespace. Absolute filenames (i.e.,
+ those starting with "/") also specify names in the root of
+ the Deployment File's namespace. In general, relative names
+ are preferred. The exception is .war files where absolute
+ names are preferred for consistency with the Servlet API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ myPersistenceContext
+
+
+
+
+ myPersistenceContext
+
+ PersistenceUnit1
+
+ Extended
+
+
+ ]]>
+
+
+
+
+
+
+
+
+ The persistence-context-ref-name element specifies
+ the name of a persistence context reference; its
+ value is the environment entry name used in
+ Deployment Component code. The name is a JNDI name
+ relative to the java:comp/env context.
+
+
+
+
+
+
+
+
+ The Application Assembler(or BeanProvider) may use the
+ following syntax to avoid the need to rename persistence
+ units to have unique names within a Java EE application.
+
+ The Application Assembler specifies the pathname of the
+ root of the persistence.xml file for the referenced
+ persistence unit and appends the name of the persistence
+ unit separated from the pathname by #. The pathname is
+ relative to the referencing application component jar file.
+ In this manner, multiple persistence units with the same
+ persistence unit name may be uniquely identified when the
+ Application Assembler cannot change persistence unit names.
+
+
+
+
+
+
+
+
+
+
+ Used to specify properties for the container or persistence
+ provider. Vendor-specific properties may be included in
+ the set of properties. Properties that are not recognized
+ by a vendor must be ignored. Entries that make use of the
+ namespace javax.persistence and its subnamespaces must not
+ be used for vendor-specific properties. The namespace
+ javax.persistence is reserved for use by the specification.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The persistence-context-synchronizationType specifies
+ whether a container-managed persistence context is automatically
+ synchronized with the current transaction.
+
+ The value of the persistence-context-synchronization element
+ must be one of the following:
+ Synchronized
+ Unsynchronized
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The persistence-context-typeType specifies the transactional
+ nature of a persistence context reference.
+
+ The value of the persistence-context-type element must be
+ one of the following:
+ Transaction
+ Extended
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Specifies a name/value pair.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ myPersistenceUnit
+
+
+
+
+ myPersistenceUnit
+
+ PersistenceUnit1
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+ The persistence-unit-ref-name element specifies
+ the name of a persistence unit reference; its
+ value is the environment entry name used in
+ Deployment Component code. The name is a JNDI name
+ relative to the java:comp/env context.
+
+
+
+
+
+
+
+
+ The Application Assembler(or BeanProvider) may use the
+ following syntax to avoid the need to rename persistence
+ units to have unique names within a Java EE application.
+
+ The Application Assembler specifies the pathname of the
+ root of the persistence.xml file for the referenced
+ persistence unit and appends the name of the persistence
+ unit separated from the pathname by #. The pathname is
+ relative to the referencing application component jar file.
+ In this manner, multiple persistence units with the same
+ persistence unit name may be uniquely identified when the
+ Application Assembler cannot change persistence unit names.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ com.wombat.empl.EmployeeService
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ jms/StockQueue
+
+ javax.jms.Queue
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+ The resource-env-ref-name element specifies the name
+ of a resource environment reference; its value is
+ the environment entry name used in
+ the Deployment Component code. The name is a JNDI
+ name relative to the java:comp/env context and must
+ be unique within a Deployment Component.
+
+
+
+
+
+
+
+
+ The resource-env-ref-type element specifies the type
+ of a resource environment reference. It is the
+ fully qualified name of a Java language class or
+ interface.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ jdbc/EmployeeAppDB
+ javax.sql.DataSource
+ Container
+ Shareable
+
+
+ ]]>
+
+
+
+
+
+
+
+
+ The res-ref-name element specifies the name of a
+ resource manager connection factory reference.
+ The name is a JNDI name relative to the
+ java:comp/env context.
+ The name must be unique within a Deployment File.
+
+
+
+
+
+
+
+
+ The res-type element specifies the type of the data
+ source. The type is specified by the fully qualified
+ Java language class or interface
+ expected to be implemented by the data source.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The res-authType specifies whether the Deployment Component
+ code signs on programmatically to the resource manager, or
+ whether the Container will sign on to the resource manager
+ on behalf of the Deployment Component. In the latter case,
+ the Container uses information that is supplied by the
+ Deployer.
+
+ The value must be one of the two following:
+
+ Application
+ Container
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The res-sharing-scope type specifies whether connections
+ obtained through the given resource manager connection
+ factory reference can be shared. The value, if specified,
+ must be one of the two following:
+
+ Shareable
+ Unshareable
+
+ The default value is Shareable.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The run-asType specifies the run-as identity to be
+ used for the execution of a component. It contains an
+ optional description, and the name of a security role.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The role-nameType designates the name of a security role.
+
+ The name must conform to the lexical rules for a token.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This role includes all employees who are authorized
+ to access the employee service application.
+
+ employee
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The security-role-refType contains the declaration of a
+ security role reference in a component's or a
+ Deployment Component's code. The declaration consists of an
+ optional description, the security role name used in the
+ code, and an optional link to a security role. If the
+ security role is not specified, the Deployer must choose an
+ appropriate security role.
+
+
+
+
+
+
+
+
+
+ The value of the role-name element must be the String used
+ as the parameter to the
+ EJBContext.isCallerInRole(String roleName) method or the
+ HttpServletRequest.isUserInRole(String role) method.
+
+
+
+
+
+
+
+
+ The role-link element is a reference to a defined
+ security role. The role-link element must contain
+ the name of one of the security roles defined in the
+ security-role elements.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type adds an "id" attribute to xsd:QName.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type adds an "id" attribute to xsd:boolean.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type adds an "id" attribute to xsd:NMTOKEN.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type adds an "id" attribute to xsd:anyURI.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type adds an "id" attribute to xsd:integer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type adds an "id" attribute to xsd:positiveInteger.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type adds an "id" attribute to xsd:nonNegativeInteger.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type adds an "id" attribute to xsd:string.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This is a special string datatype that is defined by Java EE as
+ a base type for defining collapsed strings. When schemas
+ require trailing/leading space elimination as well as
+ collapsing the existing whitespace, this base type may be
+ used.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This simple type designates a boolean with only two
+ permissible values
+
+ - true
+ - false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The url-patternType contains the url pattern of the mapping.
+ It must follow the rules specified in Section 11.2 of the
+ Servlet API Specification. This pattern is assumed to be in
+ URL-decoded form and must not contain CR(#xD) or LF(#xA).
+ If it contains those characters, the container must inform
+ the developer with a descriptive error message.
+ The container must preserve all characters including whitespaces.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CorporateStocks
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+ The message-destination-name element specifies a
+ name for a message destination. This name must be
+ unique among the names of message destinations
+ within the Deployment File.
+
+
+
+
+
+
+
+
+ A product specific name that this message destination
+ should be mapped to. Each message-destination-ref
+ element that references this message destination will
+ define a name in the namespace of the referencing
+ component or in one of the other predefined namespaces.
+ Many application servers provide a way to map these
+ local names to names of resources known to the
+ application server. This mapped name is often a global
+ JNDI name, but may be a name of any form. Each of the
+ local names should be mapped to this same global name.
+
+ Application servers are not required to support any
+ particular form or type of mapped name, nor the ability
+ to use mapped names. The mapped name is
+ product-dependent and often installation-dependent. No
+ use of a mapped name is portable.
+
+
+
+
+
+
+
+
+ The JNDI name to be looked up to resolve the message destination.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ jms/StockQueue
+
+ javax.jms.Queue
+
+ Consumes
+
+ CorporateStocks
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+ The message-destination-ref-name element specifies
+ the name of a message destination reference; its
+ value is the environment entry name used in
+ Deployment Component code.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The message-destination-usageType specifies the use of the
+ message destination indicated by the reference. The value
+ indicates whether messages are consumed from the message
+ destination, produced for the destination, or both. The
+ Assembler makes use of this information in linking producers
+ of a destination with its consumers.
+
+ The value of the message-destination-usage element must be
+ one of the following:
+ Consumes
+ Produces
+ ConsumesProduces
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ javax.jms.Queue
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The message-destination-linkType is used to link a message
+ destination reference or message-driven bean to a message
+ destination.
+
+ The Assembler sets the value to reflect the flow of messages
+ between producers and consumers in the application.
+
+ The value must be the message-destination-name of a message
+ destination in the same Deployment File or in another
+ Deployment File in the same Java EE application unit.
+
+ Alternatively, the value may be composed of a path name
+ specifying a Deployment File containing the referenced
+ message destination with the message-destination-name of the
+ destination appended and separated from the path name by
+ "#". The path name is relative to the Deployment File
+ containing Deployment Component that is referencing the
+ message destination. This allows multiple message
+ destinations with the same name to be uniquely identified.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The transaction-supportType specifies the level of
+ transaction support provided by the resource adapter. It is
+ used by transaction-support elements.
+
+ The value must be one of the following:
+
+ NoTransaction
+ LocalTransaction
+ XATransaction
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/javaee_web_services_1_4.xsd b/gen/src/main/resources/xsd/javaee_web_services_1_4.xsd
new file mode 100644
index 00000000..577b2dbb
--- /dev/null
+++ b/gen/src/main/resources/xsd/javaee_web_services_1_4.xsd
@@ -0,0 +1,572 @@
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+
+ (C) Copyright International Business Machines Corporation 2002
+
+
+
+
+
+
+
+ ...
+
+
+ The instance documents may indicate the published version of the
+ schema using the xsi:schemaLocation attribute for the Java EE
+ namespace with the following location:
+
+ http://xmlns.jcp.org/xml/ns/javaee/javaee_web_services_1_4.xsd
+
+ ]]>
+
+
+
+
+
+
+ The following conventions apply to all Java EE
+ deployment descriptor elements unless indicated otherwise.
+
+ - In elements that specify a pathname to a file within the
+ same JAR file, relative filenames (i.e., those not
+ starting with "/") are considered relative to the root of
+ the JAR file's namespace. Absolute filenames (i.e., those
+ starting with "/") also specify names in the root of the
+ JAR file's namespace. In general, relative names are
+ preferred. The exception is .war files where absolute
+ names are preferred for consistency with the Servlet API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The webservices element is the root element for the web services
+ deployment descriptor. It specifies the set of web service
+ descriptions that are to be deployed into the Java EE Application Server
+ and the dependencies they have on container resources and services.
+
+ Used in: webservices.xml
+
+
+
+
+
+
+
+ The webservice-description-name identifies the collection of
+ port-components associated with a WSDL file and JAX-RPC mapping. The
+ name must be unique within the deployment descriptor.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The port-component element associates a WSDL port with a web service
+ interface and implementation. It defines the name of the port as a
+ component, optional description, optional display name, optional iconic
+ representations, WSDL port QName, Service Endpoint Interface, Service
+ Implementation Bean.
+
+ This element also associates a WSDL service with a JAX-WS Provider
+ implementation.
+
+
+
+
+
+
+
+
+
+
+ EmployeeService
+
+
+ ]]>
+
+
+
+
+
+
+
+ Defines the name space and local name part of the WSDL
+ service QName. This is required to be specified for
+ port components that are JAX-WS Provider implementations.
+
+
+
+
+
+
+
+
+ Defines the name space and local name part of the WSDL
+ port QName. This is not required to be specified for port
+ components that are JAX-WS Provider implementations
+
+
+
+
+
+
+
+
+ Used to enable or disable SOAP MTOM/XOP mechanism for an
+ endpoint implementation.
+
+ Not to be specified for JAX-RPC runtime
+
+
+
+
+
+
+
+
+ When MTOM is enabled, binary data above this size in bytes
+ will be XOP encoded or sent as attachment. Default value is 0.
+
+ Not to be specified for JAX-RPC runtime
+
+
+
+
+
+
+
+
+ This specifies the WS-Addressing requirements for a JAX-WS
+ web service. It corresponds to javax.xml.ws.soap.Addressing
+ annotation or its feature javax.xml.ws.soap.AddressingFeature.
+
+ See the addressingType for more information.
+
+ Not to be specified for JAX-RPC runtime
+
+
+
+
+
+
+
+
+ Corresponds to the javax.xml.ws.RespectBinding annotation
+ or its corresponding javax.xml.ws.RespectBindingFeature web
+ service feature. This is used to control whether a JAX-WS
+ implementation must respect/honor the contents of the
+ wsdl:binding in the WSDL that is associated with the service.
+
+ Not to be specified for JAX-RPC runtime
+
+
+
+
+
+
+
+
+ Used to specify the protocol binding used by the port-component.
+ If this element is not specified, then the default binding is
+ used (SOAP 1.1 over HTTP)
+
+
+
+
+
+
+
+ com.wombat.empl.EmployeeService
+
+ This may not be specified in case there is no Service
+ Enpoint Interface as is the case with directly using an
+ implementation class with the @WebService annotation.
+
+ When the port component is a Provider implementation
+ this is not specified.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ To be used with JAX-RPC based runtime only.
+
+
+
+
+
+
+
+
+ To be used with JAX-WS based runtime only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The service-impl-bean element defines the web service implementation.
+ A service implementation can be an EJB bean class or JAX-RPC web
+ component. Existing EJB implementations are exposed as a web service
+ using an ejb-link.
+
+ Used in: port-component
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ StockQuoteService
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The webservice-description element defines a WSDL document file
+ and the set of Port components associated with the WSDL ports
+ defined in the WSDL document. There may be multiple
+ webservice-descriptions defined within a module.
+
+ All WSDL file ports must have a corresponding port-component element
+ defined.
+
+ Used in: webservices
+
+
+
+
+
+
+
+
+
+
+
+ The webservice-description-name identifies the collection of
+ port-components associated with a WSDL file and JAX-RPC
+ mapping. The name must be unique within the deployment descriptor.
+
+
+
+
+
+
+
+
+ The wsdl-file element contains the name of a WSDL file in the
+ module. The file name is a relative path within the module.
+
+
+
+
+
+
+
+
+ The jaxrpc-mapping-file element contains the name of a file that
+ describes the JAX-RPC mapping between the Java interaces used by
+ the application and the WSDL description in the wsdl-file. The
+ file name is a relative path within the module.
+
+ This is not required when JAX-WS based runtime is used.
+
+
+
+
+
+
+
+
+
+ Defines the name of the handler. The name must be unique
+ within the module.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EmployeeService
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ The required value for the version is 1.4.
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/javaee_web_services_client_1_4.xsd b/gen/src/main/resources/xsd/javaee_web_services_client_1_4.xsd
new file mode 100644
index 00000000..d474a8d2
--- /dev/null
+++ b/gen/src/main/resources/xsd/javaee_web_services_client_1_4.xsd
@@ -0,0 +1,737 @@
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+
+ (C) Copyright International Business Machines Corporation 2002
+
+
+
+
+
+
+
+
+
+
+
+ The service-ref element declares a reference to a Web
+ service. It contains optional description, display name and
+ icons, a declaration of the required Service interface,
+ an optional WSDL document location, an optional set
+ of JAX-RPC mappings, an optional QName for the service element,
+ an optional set of Service Endpoint Interfaces to be resolved
+ by the container to a WSDL port, and an optional set of handlers.
+
+
+
+
+
+
+
+
+
+ The service-ref-name element declares logical name that the
+ components in the module use to look up the Web service. It
+ is recommended that all service reference names start with
+ "service/".
+
+
+
+
+
+
+
+
+ The service-interface element declares the fully qualified class
+ name of the JAX-RPC Service interface the client depends on.
+ In most cases the value will be javax.xml.rpc.Service. A JAX-RPC
+ generated Service Interface class may also be specified.
+
+
+
+
+
+
+
+
+ The service-ref-type element declares the type of the service-ref
+ element that is injected or returned when a JNDI lookup is done.
+ This must be either a fully qualified name of Service class or
+ the fully qualified name of service endpoint interface class.
+ This is only used with JAX-WS runtime where the corresponding
+ @WebServiceRef annotation can be used to denote both a Service
+ or a Port.
+
+ If this is not specified, then the type of service-ref element
+ that is injected or returned when a JNDI lookup is done is
+ always a Service interface/class.
+
+
+
+
+
+
+
+
+ The wsdl-file element contains the URI location of a WSDL
+ file. The location is relative to the root of the module.
+
+
+
+
+
+
+
+
+ The jaxrpc-mapping-file element contains the name of a file that
+ describes the JAX-RPC mapping between the Java interaces used by
+ the application and the WSDL description in the wsdl-file. The
+ file name is a relative path within the module file.
+
+ This is not required when JAX-WS based runtime is used.
+
+
+
+
+
+
+
+
+ The service-qname element declares the specific WSDL service
+ element that is being refered to. It is not specified if no
+ wsdl-file is declared.
+
+
+
+
+
+
+
+
+ The port-component-ref element declares a client dependency
+ on the container for resolving a Service Endpoint Interface
+ to a WSDL port. It optionally associates the Service Endpoint
+ Interface with a particular port-component. This is only used
+ by the container for a Service.getPort(Class) method call.
+
+
+
+
+
+
+
+
+
+ Declares the handler for a port-component. Handlers can
+ access the init-param name/value pairs using the
+ HandlerInfo interface. If port-name is not specified, the
+ handler is assumed to be associated with all ports of the
+ service.
+
+ To be used with JAX-RPC based runtime only.
+
+
+
+
+
+
+
+
+ To be used with JAX-WS based runtime only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The port-component-ref element declares a client dependency
+ on the container for resolving a Service Endpoint Interface
+ to a WSDL port. It optionally associates the Service Endpoint
+ Interface with a particular port-component. This is only used
+ by the container for a Service.getPort(Class) method call.
+
+
+
+
+
+
+
+
+ The service-endpoint-interface element defines a fully qualified
+ Java class that represents the Service Endpoint Interface of a
+ WSDL port.
+
+
+
+
+
+
+
+
+ Used to enable or disable SOAP MTOM/XOP mechanism on the client
+ side for a port-component.
+
+ Not to be specified for JAX-RPC runtime
+
+
+
+
+
+
+
+
+ When MTOM is enabled, binary data above this size in bytes
+ should be XOP encoded or sent as attachment. Default value is 0.
+
+ Not to be specified for JAX-RPC runtime
+
+
+
+
+
+
+
+
+ This specifies the WS-Addressing requirements for a JAX-WS
+ web service. It corresponds to javax.xml.ws.soap.Addressing
+ annotation or its feature javax.xml.ws.soap.AddressingFeature.
+
+ See the addressingType for more information.
+
+ Not to be specified for JAX-RPC runtime
+
+
+
+
+
+
+
+
+ Corresponds to the javax.xml.ws.RespectBinding annotation
+ or its corresponding javax.xml.ws.RespectBindingFeature web
+ service feature. This is used to control whether a JAX-WS
+ implementation must respect/honor the contents of the
+ wsdl:binding in the WSDL that is associated with the service.
+
+ Not to be specified for JAX-RPC runtime
+
+
+
+
+
+
+
+
+ The port-component-link element links a port-component-ref
+ to a specific port-component required to be made available
+ by a service reference.
+
+ The value of a port-component-link must be the
+ port-component-name of a port-component in the same module
+ or another module in the same application unit. The syntax
+ for specification follows the syntax defined for ejb-link
+ in the EJB 2.0 specification.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The handler-chains element defines the handlerchains associated with this
+ service or service endpoint.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The handler-chain element defines the handlerchain.
+ Handlerchain can be defined such that the handlers in the
+ handlerchain operate,all ports of a service, on a specific
+ port or on a list of protocol-bindings. The choice of elements
+ service-name-pattern, port-name-pattern and protocol-bindings
+ are used to specify whether the handlers in handler-chain are
+ for a service, port or protocol binding. If none of these
+ choices are specified with the handler-chain element then the
+ handlers specified in the handler-chain will be applied on
+ everything.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines the type used for specifying a list of
+ protocol-bindingType(s). For e.g.
+
+ ##SOAP11_HTTP ##SOAP12_HTTP ##XML_HTTP
+
+
+
+
+
+
+
+
+
+
+ Defines the type used for specifying the URI for the
+ protocol binding used by the port-component. For
+ portability one could use one of the following tokens that
+ alias the standard binding types:
+
+ ##SOAP11_HTTP
+ ##SOAP11_HTTP_MTOM
+ ##SOAP12_HTTP
+ ##SOAP12_HTTP_MTOM
+ ##XML_HTTP
+
+ Other specifications could define tokens that start with ##
+ to alias new standard binding URIs that are introduced.
+
+
+
+
+
+
+
+
+
+
+ Defines the type that is used for specifying tokens that
+ start with ## which are used to alias existing standard
+ protocol bindings and support aliases for new standard
+ binding URIs that are introduced in future specifications.
+
+ The following tokens alias the standard protocol binding
+ URIs:
+
+ ##SOAP11_HTTP = "http://schemas.xmlsoap.org/wsdl/soap/http"
+ ##SOAP11_HTTP_MTOM =
+ "http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true"
+ ##SOAP12_HTTP = "http://www.w3.org/2003/05/soap/bindings/HTTP/"
+ ##SOAP12_HTTP_MTOM =
+ "http://www.w3.org/2003/05/soap/bindings/HTTP/?mtom=true"
+ ##XML_HTTP = "http://www.w3.org/2004/08/wsdl/http"
+
+
+
+
+
+
+
+
+
+
+
+
+ This is used to specify the QName pattern in the
+ attribute service-name-pattern and port-name-pattern in
+ the handler-chain element
+
+ For example, the various forms acceptable here for
+ service-name-pattern attribute in handler-chain element
+ are :
+
+ Exact Name: service-name-pattern="ns1:EchoService"
+
+ In this case, handlers specified in this
+ handler-chain element will apply to all ports with
+ this exact service name. The namespace prefix must
+ have been declared in a namespace declaration
+ attribute in either the start-tag of the element
+ where the prefix is used or in an an ancestor
+ element (i.e. an element in whose content the
+ prefixed markup occurs)
+
+
+ Pattern : service-name-pattern="ns1:EchoService*"
+
+ In this case, handlers specified in this
+ handler-chain element will apply to all ports whose
+ Service names are like EchoService1, EchoServiceFoo
+ etc. The namespace prefix must have been declared in
+ a namespace declaration attribute in either the
+ start-tag of the element where the prefix is used or
+ in an an ancestor element (i.e. an element in whose
+ content the prefixed markup occurs)
+
+ Wild Card : service-name-pattern="*"
+
+ In this case, handlers specified in this handler-chain
+ element will apply to ports of all service names.
+
+ The same can be applied to port-name attribute in
+ handler-chain element.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This specifies the WS-Addressing requirements for a JAX-WS web service.
+ It corresponds to javax.xml.ws.soap.Addressing annotation or its
+ feature javax.xml.ws.soap.AddressingFeature.
+
+ If the "enabled" element is "true", WS-Addressing is enabled.
+ It means that the endpoint supports WS-Addressing but does not require
+ its use. The default value for "enabled" is "true".
+
+ If the WS-Addressing is enabled and the "required" element is "true",
+ it means that the endpoint requires WS-Addressing. The default value
+ for "required" is "false".
+
+ If WS-Addressing is enabled, the "responses" element determines
+ if an endpoint requires the use of only anonymous responses,
+ or only non-anonymous responses, or all. The value of the "responses"
+ element must be one of the following:
+
+ ANONYMOUS
+ NON_ANONYMOUS
+ ALL
+
+ The default value for the "responses" is ALL.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If WS-Addressing is enabled, this type determines if an endpoint
+ requires the use of only anonymous responses, or only non-anonymous
+ responses, or all.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Corresponds to the javax.xml.ws.RespectBinding annotation
+ or its corresponding javax.xml.ws.RespectBindingFeature web
+ service feature. This is used to control whether a JAX-WS
+ implementation must respect/honor the contents of the
+ wsdl:binding in the WSDL that is associated with the service.
+
+ If the "enabled" element is "true", wsdl:binding in the
+ associated WSDL, if any, must be respected/honored.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Declares the handler for a port-component, service-ref. Handlers can
+ access the init-param name/value pairs using the HandlerInfo interface.
+
+ Used in: port-component, service-ref
+
+
+
+
+
+
+
+
+
+ Defines the name of the handler. The name must be unique within the
+ module.
+
+
+
+
+
+
+
+
+ Defines a fully qualified class name for the handler implementation.
+
+
+
+
+
+
+
+
+ Not to be specified for JAX-WS runtime
+
+
+
+
+
+
+
+
+ Defines the QName of a SOAP header that will be processed by the
+ handler.
+
+ Not to be specified for JAX-WS runtime
+
+
+
+
+
+
+
+
+ The soap-role element contains a SOAP actor definition that the
+ Handler will play as a role.
+
+
+
+
+
+
+
+
+ The port-name element defines the WSDL port-name that a
+ handler should be associated with. If port-name is not
+ specified, the handler is assumed to be associated with
+ all ports of the service.
+
+ Not to be specified for JAX-WS runtime
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines the name of the handler. The name must be unique
+ within the module.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/jbossesb-1.3.1.xsd b/gen/src/main/resources/xsd/jbossesb-1.3.1.xsd
new file mode 100644
index 00000000..4430101f
--- /dev/null
+++ b/gen/src/main/resources/xsd/jbossesb-1.3.1.xsd
@@ -0,0 +1,2192 @@
+
+
+
+
+
+
+
+
+
+ The jbossesb configuration for a single instance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A simple name-value pair.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A container for the configurations global to a jbossesb config file
+
+
+
+
+
+
+
+ Security configuration that is global to the jboss-esb.xml file.
+ These configuration settings are shared for all http-providers and EBWS that are defined in jboss-esb.xml.Domain.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Security Domain.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A container for the providers referenced in the jbossesb
+ config file
+
+
+
+
+
+
+
+
+
+
+
+ Abstract provider.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A provider of a bus. So for instance you can
+ have a jms-provider (JBossMQ) or an
+ ftp-provider.
+
+
+
+
+
+
+
+
+
+
+
+ Generic Bus Provider.
+
+
+
+
+
+
+
+
+
+
+
+
+ A bus (also called "channel" by others) is a means by
+ which Services communicate with each other (JMS, FTP,
+ HTTP, etc).
+
+
+
+
+
+
+
+
+ An id such that this bus can be referenced by
+ Service listn.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Schedule Configuration.
+
+
+
+
+
+
+
+
+ An id such that this schedule can be referenced by
+ Service listner.
+
+
+
+
+
+
+ Schedule start time and date.
+
+
+
+
+
+
+ Schedule end time and date.
+
+
+
+
+
+
+
+
+
+
+
+
+ Schedule frequency.
+
+
+
+
+ Schedule frequency time units.
+
+
+
+
+
+ Schedule execution count. -1 to execute indefinitely.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Schedule CRON expression.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A container for services.
+
+
+
+
+
+
+
+
+
+
+
+ A service has listener or gateways and a list of
+ actions.
+
+
+
+
+
+
+
+
+
+
+
+
+ The service category which will be used to store
+ a reference to this service in the registry.
+
+
+
+
+
+
+
+
+
+
+
+ The service name which will be used to store a
+ reference to this service in the registry.
+
+
+
+
+
+
+
+
+
+
+
+ The service description which stored with this
+ service in the registry, so that the purpose of
+ this service can be understood by a human.
+
+
+
+
+
+
+
+
+
+
+
+ A value used for monitoring to produce alerts
+ if the service takes longer to complete than
+ the value of the field.
+
+
+
+
+
+
+
+
+
+ A value used for monitoring to produce alerts
+ if the service takes longer to complete than
+ the value of the field.
+
+
+
+
+
+
+
+
+
+ All services are locally invokable over an "in VM" transport. Invokability
+ can be scoped using this attribute. An "invmScope" value of "NONE" means that
+ the Service should not be locally invokable over the "in VM" transport.
+ More fine grained scoping will be added in the future.
+
+
+
+
+
+
+ Should the InVM listener execute in a transacted environment?
+
+
+
+
+
+
+ Should the service update the message header upon service entrance and exit?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A container for actions belonging to this service.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An action which will act on the message when it is
+ received by the service. Actions can be chained. Hence
+ you can specify a list of actions. Action are
+ 'pluggable' and can be custom code, however JBossESB
+ comes with a list of predefined actions.
+
+
+
+
+
+
+
+
+
+ The logical name of the action.
+
+
+
+
+
+
+ The full classname of the java class in which
+ this action is defined.
+
+
+
+
+
+
+ The name of the method on the action that needs
+ to be called when the message is received.
+
+
+
+
+
+
+ A value used for monitoring to produce alerts
+ if the service takes longer to complete than
+ the value of the field.
+
+
+
+
+
+
+
+
+
+ A value used for monitoring to produce alerts
+ if the service takes longer to complete than
+ the value of the field.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Is used to specify that a specific security role given by the role-name value should be used
+ as the security identity for this service.
+
+
+
+
+
+
+ Specifies one or more logical roles that are allowed to acccess the service.
+
+
+
+
+
+
+
+
+
+
+
+
+ Is used to indicate that the current caller's identity should be propagated as the security identity
+ this service.
+
+
+
+
+
+
+ CallbackHandler implementation class. This will override the global callbackhandler
+ which can be specified in jbossesb-properties.xml
+
+
+
+
+
+
+
+
+
+
+
+ A container for all listener for a service.
+
+
+
+
+
+
+
+
+
+
+
+ A listener is a listener or a gateway. The listener
+ defines to which bus the service is listening. The
+ service can simultaneniously listen to multiple buses.
+
+
+
+
+
+
+
+
+ The logical name of the listener.
+
+
+
+
+
+
+ A reference to an existing bus, as defined in the
+ 'buses' section of this jbossesb config.
+
+
+
+
+
+
+
+
+ Listener type that can only act as a message-unaware listener (gateway) .
+
+
+
+
+
+
+
+
+
+
+ Listener type that can act as both a message-aware and message-unaware listener (gateway).
+
+
+
+
+
+
+
+ The number of threads which will be started for this
+ listener.
+
+
+
+
+
+
+ true if the listener is a gateway. A gateway is an
+ ESB-Unware listener, while a listener is ESB-aware
+ and as such expects jbossesb formatted messages.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Abstract scheduled listener.
+
+
+
+
+
+
+
+
+ DEPRECATED (use "schedule-frequency" or
+ "scheduleidref"): The frequency with which
+ this listener is scheduled (in seconds).
+ Defaults to 10 seconds.
+
+
+
+
+
+
+
+ The frequency with which this listener is
+ scheduled (in seconds). Defaults to 10
+ seconds.
+
+
+
+
+
+
+ The id reference for the schedule that's
+ driving this scheduled listener.
+
+
+
+
+
+
+
+
+
+
+ Scheduled listener.
+
+
+
+
+
+
+
+
+ Message Composer class name.
+
+
+
+
+
+
+ Should the schedule execute in a
+ transacted environment?
+
+
+
+
+
+
+
+
+
+
+
+
+ Activation configuration for jca bus or listener.
+
+
+
+
+
+
+
+
+
+
+
+ A specific gateway using JCA inflow.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A JMS filter can add information to a Queue, or Topic.
+ For example you can defined a message-selector. However,
+ you can also push the queue name and type into this
+ filter given you did not already specify them in the
+ jms-bus.
+
+
+
+
+
+
+ Name of the Queue of Topic.
+
+
+
+
+
+
+ A Queue delivers a message once, a topic
+ broadcasts a message to all registered
+ listeners.
+
+
+
+
+
+
+
+
+
+
+
+
+ A message-selector allows multiple listeners to
+ register with the same queue/topic, but they
+ will filter on this message-selector.
+
+
+
+
+
+
+ If false, JMS messages will be sent
+ non-persistent. Default is to send messages with
+ DeliveryMode.PERSISTENT.
+
+
+
+
+
+
+ JMS Session acknowledge mode. Can be on of
+ AUTO_ACKNOWLEDGE (default), CLIENT_ACKNOWLEDGE,
+ or DUPS_OK_ACKNOWLEDGE.
+
+
+
+
+
+
+ JMS destination username. Will be used when creating a connection
+ to the destination.
+
+
+
+
+
+
+ JMS destination password. Will be used when creating a connection
+ to the destination. Will be ignored if username is not specified.
+
+
+
+
+
+
+ If true, JMS sessions will be transaction aware.
+ Default is false.
+
+
+
+
+
+
+
+
+ A JMS-Bus is a specific instance of a bus using the JMS
+ protocol.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A specific instance of a provider, providing JMS.
+
+
+
+
+
+
+
+ The connection-factory used to lookup
+ queues/topics in a naming directory (JNDI)
+
+
+
+
+
+
+ The context factory class the JBossESB will
+ use to do naming lookups.
+
+
+
+
+
+
+ The pkg-prefix which will be used to do
+ naming lookups. It is left empty by default.
+
+
+
+
+
+
+ The URL used to do naming lookups.
+
+
+
+
+
+
+
+
+
+
+
+ A specific instance of a provider, providing JMS through
+ JCA inflow.
+
+
+
+
+
+
+
+
+
+
+
+ The artifact containing the resource
+ adapter.
+
+
+
+
+
+
+ The class name of the JCA endpoint.
+
+
+
+
+
+
+ The class name of the messaging specific
+ interface.
+
+
+
+
+
+
+ The class name of the JCA Bridge.
+
+
+
+
+
+
+ The transacted flag.
+
+
+
+
+
+
+ The JNDI location of an alternate provider adapter
+
+
+
+
+
+
+
+
+
+
+ A specific listener using the jms protocol.
+
+
+
+
+
+
+
+
+
+
+
+ Client ID to be associated with the connection. Used to associate a connection and its objects with
+ state maintained on behalf of the client by a provider e.g. durable subscriptions.
+
+ If a clientId is required (e.g. when a 'durableSubscriptionName' is specified), but is not specified,
+ it will default to the listener name.
+
+
+
+
+
+
+ Durable subscription name. Only relevant for JMS Topics.
+
+
+
+
+
+
+
+
+
+
+
+
+ A FS filter.
+
+
+
+
+
+
+ The file share that is monitored for incoming
+ new files.
+
+
+
+
+
+
+ The file suffix used to filter files targeted
+ for comsumption by the ESB (note: add the dot,
+ so something like '.esbIn').
+
+
+
+
+
+
+ The file suffix used while the file is being
+ process, so that another thread or process won't
+ pick it up too.
+
+
+
+
+
+
+ If true, the file will be deleted after it is
+ processed. Note that in that case post-directory
+ and post-suffix have no effect.
+
+
+
+
+
+
+ If true, the file will be renamed after it is
+ processed. Note that in that case post-directory
+ and post-suffix have no effect.
+
+
+
+
+
+
+ The file share to which the file will be moved
+ after it is processed by the ESB
+
+
+
+
+
+
+ The file suffix which will be added to the file
+ name after it is processed.
+
+
+
+
+
+
+ If true, the file will be deleted if an error
+ occurs during processing. Note that in that case
+ error-directory and error-suffix have no effect.
+
+
+
+
+
+
+ The file share to which the file will be moved
+ after when an error occurs during processing.
+
+
+
+
+
+
+ The file suffix which will be added to the file
+ name after an error occurs during processing.
+
+
+
+
+
+
+
+
+ A Fs-Bus is a specific instance of a bus using the File
+ protocol.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A specific instance of a provider, providing a file
+ system (local fileshare or NAS).
+
+
+
+
+
+
+
+
+
+
+
+ A specific listener using the file protocol.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A FTP filter.
+
+
+
+
+
+
+ The ftp directory that is monitored for incoming
+ new files.
+
+
+
+
+
+
+ The username used to access the ftp server
+
+
+
+
+
+
+ The password used to access the ftp server.
+
+
+
+
+
+
+ The file suffix used to filter files targeted
+ for comsumption by the ESB (note: add the dot,
+ so something like '.esbIn').
+
+
+
+
+
+
+ The file suffix used while the file is being
+ process, so that another thread or process won't
+ pick it up too.
+
+
+
+
+
+
+ If true, the file will be deleted after it is
+ processed. Note that in that case post-directory
+ and post-suffix have no effect.
+
+
+
+
+
+
+ If true, the file will be renamed after it is
+ processed. Note that in that case post-directory
+ and post-suffix have no effect.
+
+
+
+
+
+
+ The ftp directory to which the file will be
+ moved after it is processed by the ESB
+
+
+
+
+
+
+ The file suffix which will be added to the file
+ name after it is processed.
+
+
+
+
+
+
+ If true, the file will be deleted if an error
+ occurs during processing. Note that in that case
+ error-directory and error-suffix have no effect.
+
+
+
+
+
+
+ The ftp directory to which the file will be
+ moved after when an error occurs during
+ processing.
+
+
+
+
+
+
+ The file suffix which will be added to the file
+ name after an error occurs during processing.
+
+
+
+
+
+
+ This is an ftp server setting which may vary per
+ session.
+
+
+
+
+
+
+ The protocol, can be sftp (SSH File Transfer
+ Protocol), ftps (FTP over SLL) and ftp (to which
+ it defaults).
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The url to a public server certificate for ftps, or to a
+ private certificate for sftp client verification. sftp certificate
+ can be located via a resource.
+
+
+
+
+
+
+ The common name of a certificate, which may be needed
+ for ftps.
+
+
+
+
+
+
+ The passphrase of the private key, if necessary, for sftp client verification.
+
+
+
+
+
+
+ If true, the ftp server does not permit write
+ opertations on files. Note that in this case the
+ following properties have no effect:
+ work-suffix, post-delete, post-directory,
+ post-suffix, error-delete, error-directory, and
+ error-suffix.
+
+
+
+
+
+
+
+
+ A FTP-Bus is a specific instance of a bus using the FTP
+ protocol.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A specific instance of a provider, providing a ftp
+ service.
+
+
+
+
+
+
+
+
+ The ftp hostname, as it can be resolved
+ by DNS.
+
+
+
+
+
+
+
+
+
+
+ A specific listener using the ftp protocol.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A SQL filter.
+
+
+
+
+
+
+ The table in which esb message are stored.
+
+
+
+
+
+
+ A unique key (PK) in the table.
+
+
+
+
+
+
+ Column name for storing the message delivery retry count.
+
+
+
+
+
+
+ The field that holds the serialized message.
+
+
+
+
+
+
+ This column contents ('P', 'W', 'E' or 'D')
+ indicates if the row is pending (P), in process
+ (W), in error(E) or done (D) if postDelete
+ and/or errorDelete are 'true' rows might be
+ deleted
+
+
+
+
+
+
+ A where clause, not including the word where,
+ which is applied to the query.
+
+
+
+
+
+
+ A where clause, not including the word where,
+ which is applied to the query.
+
+
+
+
+
+
+ Holds the timestamp when the record was
+ inserted.
+
+
+
+
+
+
+ If true, records will be deleted after
+ processing.((e.g. no rows with a 'D' for done,
+ in column defined in 'status_column')
+
+
+
+
+
+
+ If true, records in error will be deleted after
+ attempted picked up for processing.(e.g. no rows
+ with a 'E' for error, in column defined in
+ 'status_column')
+
+
+
+
+
+
+
+
+ A SQL-Bus is a specific instance of a bus using the SQL
+ protocol.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A specific instance of a provider, providing a db
+ service.
+
+
+
+
+
+
+
+
+ The name of the datasource.
+
+
+
+
+
+
+ The url needed to connect to the db.
+
+
+
+
+
+
+ The driver needed to connect to the db.
+
+
+
+
+
+
+ The username used to access the
+ database.
+
+
+
+
+
+
+ The password used to access the
+ database.
+
+
+
+
+
+
+ The transacted flag.
+
+
+
+
+
+
+
+
+
+
+ A specific listener using the SQL protocol.
+
+
+
+
+
+
+
+
+
+
+
+ The frequency with which this listener
+ polls the db in seconds. Defaults to 10
+ seconds.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A Hibernate filter.
+
+
+
+
+
+
+ The class name to monitor.
+
+
+
+
+
+
+ A comma-separated list of events to intercept.
+
+
+
+
+
+
+
+
+ A hibernate-bus is a specific instance of a bus using
+ the Hibernate protocol.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A specific instance of a provider, providing a hibernate
+ service.
+
+
+
+
+
+
+
+
+ The Hibernate configuration file to use.
+
+
+
+
+
+
+
+
+
+
+ A specific listener using the hibernate protocol.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JBoss Remoting Bus
+
+
+
+
+
+
+
+
+ JBoss Remoting Server listen port.
+
+
+
+
+
+
+
+
+
+
+ JBoss Remoting Provider.
+
+
+
+
+
+
+
+
+ Jboss Remoting Listener/Server protocol.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JBoss Remoting Server bind address. When
+ not specified, defaults to
+ InetAddress.getLocalHost().getHostName().
+
+
+
+
+
+
+
+
+
+
+ JBoss Remoting Listener.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Http Bus
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Http Provider.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ http Listener.
+
+
+
+
+
+
+
+
+
+ Exception to HTTP status code mappings.
+
+
+
+
+
+
+ Aynchronous HTTP Response. If set, the gateway will asynchronously deliver the
+ message to the target Service.
+
+
+
+
+
+
+
+ The URL Pattern of requests to be filtered to this listener.
+
+
+
+
+
+
+ Set the ESB Message payload ass either a String or an array of bytes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Path to a .properties file containing a list of Exception to HTTP Status code mappings.
+
+
+
+
+
+
+
+
+
+ Static HTTP Gateway response payload for async message delivery to service.
+
+ If not set, an empty (zero length) payload will be returned in the HTTP Response.
+
+
+
+
+
+
+
+
+
+
+
+
+ Static HTTP Gateway response code for async message delivery to service.
+
+ If not set, a 200 status (OK) will be returned in the HTTP Response.
+
+
+
+
+
+
+
+
+
+ Groovy Listener.
+
+
+
+
+
+
+
+
+ The path (classpath) to the Groovy
+ Gateway script. Or, the alias for the
+ pre-packaged Groovy Gateway script.
+
+
+
+
+
+
+
+
+
+
+
+
+ UDP Listener that uses Mina.
+
+
+
+
+
+
+
+
+ The host that this listener will listen to.
+
+
+
+
+
+
+ The port that this listener will listen to.
+
+
+
+
+
+
+ The fully qualified name of a org.jboss.soa.esb.listeners.gateway.mina.MessageHandler implementation.
+
+
+
+
+
+
+
+
+
+
+
+
+ Camel "from" element.
+
+
+
+
+
+
+ Camel "uri" attribute.
+
+
+
+
+
+
+
+
+ Camel Bus
+
+
+
+
+
+
+
+
+
+
+
+ Camel "from" URI.
+
+
+
+
+
+
+ Should the Service be invoked asynchronously?
+
+
+
+
+
+
+ Synchronous Service invocation timeout.
+
+
+
+
+
+
+
+
+
+
+ Camel Provider.
+
+
+
+
+
+
+
+
+
+
+
+ Camel Gateway.
+
+
+
+
+
+
+
+
+
+
+
+ Camel "from" URI.
+
+
+
+
+
+
+ Should the Service be invoked asynchronously?
+
+
+
+
+
+
+ Synchronous Service invocation timeout.
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/jobXML_1_0.xsd b/gen/src/main/resources/xsd/jobXML_1_0.xsd
new file mode 100644
index 00000000..8ae3c4be
--- /dev/null
+++ b/gen/src/main/resources/xsd/jobXML_1_0.xsd
@@ -0,0 +1,359 @@
+
+
+
+ Job Specification Language (JSL) specifies a job,
+ its steps, and directs their execution. JSL also can be referred to
+ as "Job XML".
+
+
+
+ This is a helper type. Though it is not otherwise
+ called out by this name in the specification, it captures the fact
+ that the xs:string value refers to a batch artifact, across numerous
+ other JSL type definitions.
+
+
+
+
+
+ The type of a job definition, whether concrete or
+
+ abstract. This is the type of the root element of any JSL document.
+
+
+
+
+
+ The job-level properties, which are accessible
+ via the JobContext.getProperties() API in a batch artifact.
+
+
+
+
+
+ Note that "listeners" sequence order in XML does
+ not imply order of execution by the batch runtime, per the
+ specification.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The definition of an job, whether concrete or
+ abstract. This is the
+
+ type of the root element of any JSL document.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This grouping provides allows for the reuse of the
+ 'end', 'fail', 'next', 'stop' element sequences which may appear at
+ the end of a 'step', 'flow', 'split' or 'decision'. The term
+ 'TransitionElements' does not formally appear in the spec, it is a
+ schema convenience.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Note that "listeners" sequence order in XML does
+ not imply order of execution by the batch runtime, per the
+ specification.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Specifies the checkpoint policy that governs
+ commit behavior for this chunk. Valid values are: "item" or
+ "custom". The "item" policy means the chunk is checkpointed after a
+ specified number of items are processed. The "custom" policy means
+
+ the chunk is checkpointed according to a checkpoint algorithm
+ implementation. Specifying "custom" requires that the
+ checkpoint-algorithm element is also specified. It is an optional
+ attribute. The default policy is "item". However, we chose not to
+ define a schema-specified default for this attribute.
+
+
+
+
+
+ Specifies the number of items to process per
+ chunk when using the item checkpoint policy. It must be valid XML
+ integer. It is an optional attribute. The default is 10. The
+ item-count attribute is ignored for "custom" checkpoint policy.
+ However, to make it easier for implementations to support JSL
+ inheritance we abstain from defining a schema-specified default for
+ this attribute.
+
+
+
+
+ Specifies the amount of time in seconds before
+ taking a checkpoint for the item checkpoint policy. It must be
+ valid XML integer. It is an optional attribute. The default is 0,
+ which means no limit. However, to make it easier for
+ implementations to support JSL inheritance we abstain from defining
+ a schema-specified default for this attribute.
+
+ When a value greater than zero is specified, a checkpoint is taken when
+ time-limit is reached or item-count items have been processed,
+ whichever comes first. The time-limit attribute is ignored for
+ "custom" checkpoint policy.
+
+
+
+
+ Specifies the number of exceptions a step will
+ skip if any configured skippable exceptions are thrown by chunk
+ processing. It must be a valid XML integer value. It is an optional
+ attribute. The default is no limit.
+
+
+
+
+ Specifies the number of times a step will retry
+ if any configured retryable exceptions are thrown by chunk
+ processing. It must be a valid XML integer value. It is an optional
+ attribute. The default is no limit.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/jsp_2_3.xsd b/gen/src/main/resources/xsd/jsp_2_3.xsd
new file mode 100644
index 00000000..564d309d
--- /dev/null
+++ b/gen/src/main/resources/xsd/jsp_2_3.xsd
@@ -0,0 +1,389 @@
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+
+ This is the XML Schema for the JSP 2.3 deployment descriptor
+ types. The JSP 2.3 schema contains all the special
+ structures and datatypes that are necessary to use JSP files
+ from a web application.
+
+ The contents of this schema is used by the web-common_3_1.xsd
+ file to define JSP specific content.
+
+
+
+
+
+
+
+ The following conventions apply to all Java EE
+ deployment descriptor elements unless indicated otherwise.
+
+ - In elements that specify a pathname to a file within the
+ same JAR file, relative filenames (i.e., those not
+ starting with "/") are considered relative to the root of
+ the JAR file's namespace. Absolute filenames (i.e., those
+ starting with "/") also specify names in the root of the
+ JAR file's namespace. In general, relative names are
+ preferred. The exception is .war files where absolute
+ names are preferred for consistency with the Servlet API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The jsp-configType is used to provide global configuration
+ information for the JSP files in a web application. It has
+ two subelements, taglib and jsp-property-group.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The jsp-file element contains the full path to a JSP file
+ within the web application beginning with a `/'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The jsp-property-groupType is used to group a number of
+ files so they can be given global property information.
+ All files so described are deemed to be JSP files. The
+ following additional properties can be described:
+
+ - Control whether EL is ignored.
+ - Control whether scripting elements are invalid.
+ - Indicate pageEncoding information.
+ - Indicate that a resource is a JSP document (XML).
+ - Prelude and Coda automatic includes.
+ - Control whether the character sequence #{ is allowed
+ when used as a String literal.
+ - Control whether template text containing only
+ whitespaces must be removed from the response output.
+ - Indicate the default contentType information.
+ - Indicate the default buffering model for JspWriter
+ - Control whether error should be raised for the use of
+ undeclared namespaces in a JSP page.
+
+
+
+
+
+
+
+
+
+
+ Can be used to easily set the isELIgnored
+ property of a group of JSP pages. By default, the
+ EL evaluation is enabled for Web Applications using
+ a Servlet 2.4 or greater web.xml, and disabled
+ otherwise.
+
+
+
+
+
+
+
+
+ The valid values of page-encoding are those of the
+ pageEncoding page directive. It is a
+ translation-time error to name different encodings
+ in the pageEncoding attribute of the page directive
+ of a JSP page and in a JSP configuration element
+ matching the page. It is also a translation-time
+ error to name different encodings in the prolog
+ or text declaration of a document in XML syntax and
+ in a JSP configuration element matching the document.
+ It is legal to name the same encoding through
+ mulitple mechanisms.
+
+
+
+
+
+
+
+
+ Can be used to easily disable scripting in a
+ group of JSP pages. By default, scripting is
+ enabled.
+
+
+
+
+
+
+
+
+ If true, denotes that the group of resources
+ that match the URL pattern are JSP documents,
+ and thus must be interpreted as XML documents.
+ If false, the resources are assumed to not
+ be JSP documents, unless there is another
+ property group that indicates otherwise.
+
+
+
+
+
+
+
+
+ The include-prelude element is a context-relative
+ path that must correspond to an element in the
+ Web Application. When the element is present,
+ the given path will be automatically included (as
+ in an include directive) at the beginning of each
+ JSP page in this jsp-property-group.
+
+
+
+
+
+
+
+
+ The include-coda element is a context-relative
+ path that must correspond to an element in the
+ Web Application. When the element is present,
+ the given path will be automatically included (as
+ in an include directive) at the end of each
+ JSP page in this jsp-property-group.
+
+
+
+
+
+
+
+
+ The character sequence #{ is reserved for EL expressions.
+ Consequently, a translation error occurs if the #{
+ character sequence is used as a String literal, unless
+ this element is enabled (true). Disabled (false) by
+ default.
+
+
+
+
+
+
+
+
+ Indicates that template text containing only whitespaces
+ must be removed from the response output. It has no
+ effect on JSP documents (XML syntax). Disabled (false)
+ by default.
+
+
+
+
+
+
+
+
+ The valid values of default-content-type are those of the
+ contentType page directive. It specifies the default
+ response contentType if the page directive does not include
+ a contentType attribute.
+
+
+
+
+
+
+
+
+ The valid values of buffer are those of the
+ buffer page directive. It specifies if buffering should be
+ used for the output to response, and if so, the size of the
+ buffer to use.
+
+
+
+
+
+
+
+
+ The default behavior when a tag with unknown namespace is used
+ in a JSP page (regular syntax) is to silently ignore it. If
+ set to true, then an error must be raised during the translation
+ time when an undeclared tag is used in a JSP page. Disabled
+ (false) by default.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The taglibType defines the syntax for declaring in
+ the deployment descriptor that a tag library is
+ available to the application. This can be done
+ to override implicit map entries from TLD files and
+ from the container.
+
+
+
+
+
+
+
+
+ A taglib-uri element describes a URI identifying a
+ tag library used in the web application. The body
+ of the taglib-uri element may be either an
+ absolute URI specification, or a relative URI.
+ There should be no entries in web.xml with the
+ same taglib-uri value.
+
+
+
+
+
+
+
+
+ the taglib-location element contains the location
+ (as a resource relative to the root of the web
+ application) where to find the Tag Library
+ Description file for the tag library.
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/orm_2_1.xsd b/gen/src/main/resources/xsd/orm_2_1.xsd
new file mode 100644
index 00000000..6aa62489
--- /dev/null
+++ b/gen/src/main/resources/xsd/orm_2_1.xsd
@@ -0,0 +1,2336 @@
+
+
+
+
+
+
+ @(#)orm_2_1.xsd 2.1 February 15 2013
+
+
+
+
+
+
+ Copyright (c) 2008 - 2013 Oracle Corporation. All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
+ which accompanies this distribution.
+ The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ and the Eclipse Distribution License is available at
+ http://www.eclipse.org/org/documents/edl-v10.php.
+
+ Contributors:
+ Linda DeMichiel - Java Persistence 2.1, Version 2.1 (February 15, 2013)
+ Specification available from http://jcp.org/en/jsr/detail?id=338
+
+
+
+
+
+
+ ...
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The entity-mappings element is the root element of a mapping
+ file. It contains the following four types of elements:
+
+ 1. The persistence-unit-metadata element contains metadata
+ for the entire persistence unit. It is undefined if this element
+ occurs in multiple mapping files within the same persistence unit.
+
+ 2. The package, schema, catalog and access elements apply to all of
+ the entity, mapped-superclass and embeddable elements defined in
+ the same file in which they occur.
+
+ 3. The sequence-generator, table-generator, converter, named-query,
+ named-native-query, named-stored-procedure-query, and
+ sql-result-set-mapping elements are global to the persistence
+ unit. It is undefined to have more than one sequence-generator
+ or table-generator of the same name in the same or different
+ mapping files in a persistence unit. It is undefined to have
+ more than one named-query, named-native-query, sql-result-set-mapping,
+ or named-stored-procedure-query of the same name in the same
+ or different mapping files in a persistence unit. It is also
+ undefined to have more than one converter for the same target
+ type in the same or different mapping files in a persistence unit.
+
+ 4. The entity, mapped-superclass and embeddable elements each define
+ the mapping information for a managed persistent class. The mapping
+ information contained in these elements may be complete or it may
+ be partial.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Metadata that applies to the persistence unit and not just to
+ the mapping file in which it is contained.
+
+ If the xml-mapping-metadata-complete element is specified,
+ the complete set of mapping metadata for the persistence unit
+ is contained in the XML mapping files for the persistence unit.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ These defaults are applied to the persistence unit as a whole
+ unless they are overridden by local annotation or XML
+ element settings.
+
+ schema - Used as the schema for all tables, secondary tables, join
+ tables, collection tables, sequence generators, and table
+ generators that apply to the persistence unit
+ catalog - Used as the catalog for all tables, secondary tables, join
+ tables, collection tables, sequence generators, and table
+ generators that apply to the persistence unit
+ delimited-identifiers - Used to treat database identifiers as
+ delimited identifiers.
+ access - Used as the access type for all managed classes in
+ the persistence unit
+ cascade-persist - Adds cascade-persist to the set of cascade options
+ in all entity relationships of the persistence unit
+ entity-listeners - List of default entity listeners to be invoked
+ on each entity in the persistence unit.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines the settings and mappings for an entity. Is allowed to be
+ sparsely populated and used in conjunction with the annotations.
+ Alternatively, the metadata-complete attribute can be used to
+ indicate that no annotations on the entity class (and its fields
+ or properties) are to be processed. If this is the case then
+ the defaulting rules for the entity and its subelements will
+ be recursively applied.
+
+ @Target(TYPE) @Retention(RUNTIME)
+ public @interface Entity {
+ String name() default "";
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This element determines how the persistence provider accesses the
+ state of an entity or embedded object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface AssociationOverride {
+ String name();
+ JoinColumn[] joinColumns() default{};
+ JoinTable joinTable() default @JoinTable;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface AttributeOverride {
+ String name();
+ Column column();
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This element contains the entity field or property mappings.
+ It may be sparsely populated to include only a subset of the
+ fields or properties. If metadata-complete for the entity is true
+ then the remainder of the attributes will be defaulted according
+ to the default rules.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Basic {
+ FetchType fetch() default EAGER;
+ boolean optional() default true;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH, DETACH};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface CollectionTable {
+ String name() default "";
+ String catalog() default "";
+ String schema() default "";
+ JoinColumn[] joinColumns() default {};
+ UniqueConstraint[] uniqueConstraints() default {};
+ Index[] indexes() default {};
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Column {
+ String name() default "";
+ boolean unique() default false;
+ boolean nullable() default true;
+ boolean insertable() default true;
+ boolean updatable() default true;
+ String columnDefinition() default "";
+ String table() default "";
+ int length() default 255;
+ int precision() default 0; // decimal precision
+ int scale() default 0; // decimal scale
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({}) @Retention(RUNTIME)
+ public @interface ColumnResult {
+ String name();
+ Class type() default void.class;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+ public enum ConstraintMode {CONSTRAINT, NO_CONSTRAINT, PROVIDER_DEFAULT};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({}) @Retention(RUNTIME)
+ public @interface ConstructorResult {
+ Class targetClass();
+ ColumnResult[] columns();
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Convert {
+ Class converter() default void.class;
+ String attributeName() default "";
+ boolean disableConversion() default false;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Converter {
+ boolean autoApply() default false;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface DiscriminatorColumn {
+ String name() default "DTYPE";
+ DiscriminatorType discriminatorType() default STRING;
+ String columnDefinition() default "";
+ int length() default 31;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ public enum DiscriminatorType { STRING, CHAR, INTEGER };
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface DiscriminatorValue {
+ String value();
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface ElementCollection {
+ Class targetClass() default void.class;
+ FetchType fetch() default LAZY;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines the settings and mappings for embeddable objects. Is
+ allowed to be sparsely populated and used in conjunction with
+ the annotations. Alternatively, the metadata-complete attribute
+ can be used to indicate that no annotations are to be processed
+ in the class. If this is the case then the defaulting rules will
+ be recursively applied.
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface Embeddable {}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Embedded {}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface EmbeddedId {}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines an entity listener to be invoked at lifecycle events
+ for the entities that list this listener.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface EntityListeners {
+ Class[] value();
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({}) @Retention(RUNTIME)
+ public @interface EntityResult {
+ Class entityClass();
+ FieldResult[] fields() default {};
+ String discriminatorColumn() default "";
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ public enum EnumType {
+ ORDINAL,
+ STRING
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Enumerated {
+ EnumType value() default ORDINAL;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ public enum FetchType { LAZY, EAGER };
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({}) @Retention(RUNTIME)
+ public @interface FieldResult {
+ String name();
+ String column();
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({}) @Retention(RUNTIME)
+ public @interface ForeignKey {
+ String name() default "";
+ ConstraintMode value() default CONSTRAINT;
+ String foreign-key-definition() default "";
+
+ Note that the elements that embed the use of the annotation
+ default this use as @ForeignKey(PROVIDER_DEFAULT).
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface GeneratedValue {
+ GenerationType strategy() default AUTO;
+ String generator() default "";
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+ public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO };
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Id {}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface IdClass {
+ Class value();
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({}) @Retention(RUNTIME)
+ public @interface Index {
+ String name() default "";
+ String columnList();
+ boolean unique() default false;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface Inheritance {
+ InheritanceType strategy() default SINGLE_TABLE;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ public enum InheritanceType
+ { SINGLE_TABLE, JOINED, TABLE_PER_CLASS};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface JoinColumn {
+ String name() default "";
+ String referencedColumnName() default "";
+ boolean unique() default false;
+ boolean nullable() default true;
+ boolean insertable() default true;
+ boolean updatable() default true;
+ String columnDefinition() default "";
+ String table() default "";
+ ForeignKey foreignKey() default @ForeignKey();
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface JoinTable {
+ String name() default "";
+ String catalog() default "";
+ String schema() default "";
+ JoinColumn[] joinColumns() default {};
+ JoinColumn[] inverseJoinColumns() default {};
+ UniqueConstraint[] uniqueConstraints() default {};
+ Index[] indexes() default {};
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Lob {}
+
+
+
+
+
+
+
+
+
+
+
+ public enum LockModeType { READ, WRITE, OPTIMISTIC, OPTIMISTIC_FORCE_INCREMENT, PESSIMISTIC_READ, PESSIMISTIC_WRITE, PESSIMISTIC_FORCE_INCREMENT, NONE};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface ManyToMany {
+ Class targetEntity() default void.class;
+ CascadeType[] cascade() default {};
+ FetchType fetch() default LAZY;
+ String mappedBy() default "";
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface ManyToOne {
+ Class targetEntity() default void.class;
+ CascadeType[] cascade() default {};
+ FetchType fetch() default EAGER;
+ boolean optional() default true;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface MapKey {
+ String name() default "";
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface MapKeyClass {
+ Class value();
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface MapKeyColumn {
+ String name() default "";
+ boolean unique() default false;
+ boolean nullable() default false;
+ boolean insertable() default true;
+ boolean updatable() default true;
+ String columnDefinition() default "";
+ String table() default "";
+ int length() default 255;
+ int precision() default 0; // decimal precision
+ int scale() default 0; // decimal scale
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface MapKeyJoinColumn {
+ String name() default "";
+ String referencedColumnName() default "";
+ boolean unique() default false;
+ boolean nullable() default false;
+ boolean insertable() default true;
+ boolean updatable() default true;
+ String columnDefinition() default "";
+ String table() default "";
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines the settings and mappings for a mapped superclass. Is
+ allowed to be sparsely populated and used in conjunction with
+ the annotations. Alternatively, the metadata-complete attribute
+ can be used to indicate that no annotations are to be processed
+ If this is the case then the defaulting rules will be recursively
+ applied.
+
+ @Target(TYPE) @Retention(RUNTIME)
+ public @interface MappedSuperclass{}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({}) @Retention(RUNTIME)
+ public @interface NamedAttributeNode {
+ String value();
+ String subgraph() default "";
+ String keySubgraph() default "";
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface NamedEntityGraph {
+ String name() default "";
+ NamedAttributeNode[] attributeNodes() default {};
+ boolean includeAllAttributes() default false;
+ NamedSubgraph[] subgraphs() default {};
+ NamedSubGraph[] subclassSubgraphs() default {};
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface NamedNativeQuery {
+ String name();
+ String query();
+ QueryHint[] hints() default {};
+ Class resultClass() default void.class;
+ String resultSetMapping() default ""; //named SqlResultSetMapping
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface NamedQuery {
+ String name();
+ String query();
+ LockModeType lockMode() default NONE;
+ QueryHint[] hints() default {};
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface NamedStoredProcedureQuery {
+ String name();
+ String procedureName();
+ StoredProcedureParameter[] parameters() default {};
+ Class[] resultClasses() default {};
+ String[] resultSetMappings() default{};
+ QueryHint[] hints() default {};
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({}) @Retention(RUNTIME)
+ public @interface NamedSubgraph {
+ String name();
+ Class type() default void.class;
+ NamedAttributeNode[] attributeNodes();
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface OneToMany {
+ Class targetEntity() default void.class;
+ CascadeType[] cascade() default {};
+ FetchType fetch() default LAZY;
+ String mappedBy() default "";
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface OneToOne {
+ Class targetEntity() default void.class;
+ CascadeType[] cascade() default {};
+ FetchType fetch() default EAGER;
+ boolean optional() default true;
+ String mappedBy() default "";
+ boolean orphanRemoval() default false;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface OrderBy {
+ String value() default "";
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface OrderColumn {
+ String name() default "";
+ boolean nullable() default true;
+ boolean insertable() default true;
+ boolean updatable() default true;
+ String columnDefinition() default "";
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ public enum ParameterMode { IN, INOUT, OUT, REF_CURSOR};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD}) @Retention(RUNTIME)
+ public @interface PostLoad {}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD}) @Retention(RUNTIME)
+ public @interface PostPersist {}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD}) @Retention(RUNTIME)
+ public @interface PostRemove {}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD}) @Retention(RUNTIME)
+ public @interface PostUpdate {}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD}) @Retention(RUNTIME)
+ public @interface PrePersist {}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD}) @Retention(RUNTIME)
+ public @interface PreRemove {}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD}) @Retention(RUNTIME)
+ public @interface PreUpdate {}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface PrimaryKeyJoinColumn {
+ String name() default "";
+ String referencedColumnName() default "";
+ String columnDefinition() default "";
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({}) @Retention(RUNTIME)
+ public @interface QueryHint {
+ String name();
+ String value();
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface SecondaryTable {
+ String name();
+ String catalog() default "";
+ String schema() default "";
+ PrimaryKeyJoinColumn[] pkJoinColumns() default {};
+ UniqueConstraint[] uniqueConstraints() default {};
+ Index[] indexes() default {};
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface SequenceGenerator {
+ String name();
+ String sequenceName() default "";
+ String catalog() default "";
+ String schema() default "";
+ int initialValue() default 1;
+ int allocationSize() default 50;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface SqlResultSetMapping {
+ String name();
+ EntityResult[] entities() default {};
+ ConstructorResult[] classes() default{};
+ ColumnResult[] columns() default {};
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface StoredProcedureParameter {
+ String name() default "";
+ ParameterMode mode() default ParameterMode.IN;
+ Class type();
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface Table {
+ String name() default "";
+ String catalog() default "";
+ String schema() default "";
+ UniqueConstraint[] uniqueConstraints() default {};
+ Index[] indexes() default {};
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface TableGenerator {
+ String name();
+ String table() default "";
+ String catalog() default "";
+ String schema() default "";
+ String pkColumnName() default "";
+ String valueColumnName() default "";
+ String pkColumnValue() default "";
+ int initialValue() default 0;
+ int allocationSize() default 50;
+ UniqueConstraint[] uniqueConstraints() default {};
+ Indexes[] indexes() default {};
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Temporal {
+ TemporalType value();
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ public enum TemporalType {
+ DATE, // java.sql.Date
+ TIME, // java.sql.Time
+ TIMESTAMP // java.sql.Timestamp
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Transient {}
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({}) @Retention(RUNTIME)
+ public @interface UniqueConstraint {
+ String name() default "";
+ String[] columnNames();
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Version {}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/permissions_7.xsd b/gen/src/main/resources/xsd/permissions_7.xsd
new file mode 100644
index 00000000..9eed242a
--- /dev/null
+++ b/gen/src/main/resources/xsd/permissions_7.xsd
@@ -0,0 +1,175 @@
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+
+ ...
+
+
+ The instance documents may indicate the published version of
+ the schema using the xsi:schemaLocation attribute for Java EE
+ namespace with the following location:
+
+ http://xmlns.jcp.org/xml/ns/javaee/permissions_7.xsd
+
+ ]]>
+
+
+
+
+
+
+ The following conventions apply to all Java EE
+ deployment descriptor elements unless indicated otherwise.
+
+ - In elements that specify a pathname to a file within the
+ same JAR file, relative filenames (i.e., those not
+ starting with "/") are considered relative to the root of
+ the JAR file's namespace. Absolute filenames (i.e., those
+ starting with "/") also specify names in the root of the
+ JAR file's namespace. In general, relative names are
+ preferred. The exception is .war files where absolute
+ names are preferred for consistency with the Servlet API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The permissions element is the root element in a
+ declared permissions file. The declared permissions file
+ declares the code based permissions granted to classes and libraries
+ packaged in the application archive, or in a module if the module is
+ deployed standalone.
+
+
+
+
+
+
+
+
+
+
+
+
+ Each permission element declares a permission. If no permission
+ elements are declared, the application or module needs no special
+ permissions, and the Java EE product may deploy it with no
+ permissions beyond those necessary for the operation of the
+ container.
+
+ For details on the definition of the 'name' and 'actions'
+ elements, refer to the Java API documentation for the class
+ java.security.Permission, and its derived classes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The required value for the version is 7.
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/persistence_2_1.xsd b/gen/src/main/resources/xsd/persistence_2_1.xsd
new file mode 100644
index 00000000..01d51490
--- /dev/null
+++ b/gen/src/main/resources/xsd/persistence_2_1.xsd
@@ -0,0 +1,354 @@
+
+
+
+
+
+
+ @(#)persistence_2_1.xsd 2.1 February 4, 2013
+
+
+
+
+
+
+ Copyright (c) 2008 - 2013 Oracle Corporation. All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
+ which accompanies this distribution.
+ The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ and the Eclipse Distribution License is available at
+ http://www.eclipse.org/org/documents/edl-v10.php.
+
+ Contributors:
+ Linda DeMichiel - Java Persistence 2.1, Version 2.1 (February 4, 2013)
+ Specification available from http://jcp.org/en/jsr/detail?id=338
+
+
+
+
+
+
+ ...
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configuration of a persistence unit.
+
+
+
+
+
+
+
+
+
+
+
+ Description of this persistence unit.
+
+
+
+
+
+
+
+
+
+
+
+ Provider class that supplies EntityManagers for this
+ persistence unit.
+
+
+
+
+
+
+
+
+
+
+
+ The container-specific name of the JTA datasource to use.
+
+
+
+
+
+
+
+
+
+
+
+ The container-specific name of a non-JTA datasource to use.
+
+
+
+
+
+
+
+
+
+
+
+ File containing mapping information. Loaded as a resource
+ by the persistence provider.
+
+
+
+
+
+
+
+
+
+
+
+ Jar file that is to be scanned for managed classes.
+
+
+
+
+
+
+
+
+
+
+
+ Managed class to be included in the persistence unit and
+ to scan for annotations. It should be annotated
+ with either @Entity, @Embeddable or @MappedSuperclass.
+
+
+
+
+
+
+
+
+
+
+
+ When set to true then only listed classes and jars will
+ be scanned for persistent classes, otherwise the
+ enclosing jar or directory will also be scanned.
+ Not applicable to Java SE persistence units.
+
+
+
+
+
+
+
+
+
+
+
+ Defines whether caching is enabled for the
+ persistence unit if caching is supported by the
+ persistence provider. When set to ALL, all entities
+ will be cached. When set to NONE, no entities will
+ be cached. When set to ENABLE_SELECTIVE, only entities
+ specified as cacheable will be cached. When set to
+ DISABLE_SELECTIVE, entities specified as not cacheable
+ will not be cached. When not specified or when set to
+ UNSPECIFIED, provider defaults may apply.
+
+
+
+
+
+
+
+
+
+
+
+ The validation mode to be used for the persistence unit.
+
+
+
+
+
+
+
+
+
+
+
+
+ A list of standard and vendor-specific properties
+ and hints.
+
+
+
+
+
+
+
+
+ A name-value pair.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name used in code to reference this persistence unit.
+
+
+
+
+
+
+
+
+
+
+
+ Type of transactions used by EntityManagers from this
+ persistence unit.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ public enum PersistenceUnitTransactionType {JTA, RESOURCE_LOCAL};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ public enum SharedCacheMode { ALL, NONE, ENABLE_SELECTIVE, DISABLE_SELECTIVE, UNSPECIFIED};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ public enum ValidationMode { AUTO, CALLBACK, NONE};
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/validation-configuration-1.0.xsd b/gen/src/main/resources/xsd/validation-configuration-1.0.xsd
new file mode 100644
index 00000000..0463dd8e
--- /dev/null
+++ b/gen/src/main/resources/xsd/validation-configuration-1.0.xsd
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/validation-configuration-1.1.xsd b/gen/src/main/resources/xsd/validation-configuration-1.1.xsd
new file mode 100644
index 00000000..a57f3e5b
--- /dev/null
+++ b/gen/src/main/resources/xsd/validation-configuration-1.1.xsd
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ [...]
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/validation-mapping-1.0.xsd b/gen/src/main/resources/xsd/validation-mapping-1.0.xsd
new file mode 100644
index 00000000..b257d034
--- /dev/null
+++ b/gen/src/main/resources/xsd/validation-mapping-1.0.xsd
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/gen/src/main/resources/xsd/validation-mapping-1.1.xsd b/gen/src/main/resources/xsd/validation-mapping-1.1.xsd
new file mode 100644
index 00000000..6ad4865c
--- /dev/null
+++ b/gen/src/main/resources/xsd/validation-mapping-1.1.xsd
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+ ...
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/web-app_3_1.xsd b/gen/src/main/resources/xsd/web-app_3_1.xsd
new file mode 100644
index 00000000..898f1b35
--- /dev/null
+++ b/gen/src/main/resources/xsd/web-app_3_1.xsd
@@ -0,0 +1,326 @@
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+
+ ...
+
+
+ The instance documents may indicate the published version of
+ the schema using the xsi:schemaLocation attribute for Java EE
+ namespace with the following location:
+
+ http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd
+
+ ]]>
+
+
+
+
+
+
+ The following conventions apply to all Java EE
+ deployment descriptor elements unless indicated otherwise.
+
+ - In elements that specify a pathname to a file within the
+ same JAR file, relative filenames (i.e., those not
+ starting with "/") are considered relative to the root of
+ the JAR file's namespace. Absolute filenames (i.e., those
+ starting with "/") also specify names in the root of the
+ JAR file's namespace. In general, relative names are
+ preferred. The exception is .war files where absolute
+ names are preferred for consistency with the Servlet API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The web-app element is the root of the deployment
+ descriptor for a web application. Note that the sub-elements
+ of this element can be in the arbitrary order. Because of
+ that, the multiplicity of the elements of distributable,
+ session-config, welcome-file-list, jsp-config, login-config,
+ and locale-encoding-mapping-list was changed from "?" to "*"
+ in this schema. However, the deployment descriptor instance
+ file must not contain multiple elements of session-config,
+ jsp-config, and login-config. When there are multiple elements of
+ welcome-file-list or locale-encoding-mapping-list, the container
+ must concatenate the element contents. The multiple occurence
+ of the element distributable is redundant and the container
+ treats that case exactly in the same way when there is only
+ one distributable.
+
+
+
+
+
+
+
+ The servlet element contains the name of a servlet.
+ The name must be unique within the web application.
+
+
+
+
+
+
+
+
+
+
+ The filter element contains the name of a filter.
+ The name must be unique within the web application.
+
+
+
+
+
+
+
+
+
+
+ The ejb-local-ref-name element contains the name of an EJB
+ reference. The EJB reference is an entry in the web
+ application's environment and is relative to the
+ java:comp/env context. The name must be unique within
+ the web application.
+
+ It is recommended that name is prefixed with "ejb/".
+
+
+
+
+
+
+
+
+
+
+ The ejb-ref-name element contains the name of an EJB
+ reference. The EJB reference is an entry in the web
+ application's environment and is relative to the
+ java:comp/env context. The name must be unique within
+ the web application.
+
+ It is recommended that name is prefixed with "ejb/".
+
+
+
+
+
+
+
+
+
+
+ The resource-env-ref-name element specifies the name of
+ a resource environment reference; its value is the
+ environment entry name used in the web application code.
+ The name is a JNDI name relative to the java:comp/env
+ context and must be unique within a web application.
+
+
+
+
+
+
+
+
+
+
+ The message-destination-ref-name element specifies the name of
+ a message destination reference; its value is the
+ environment entry name used in the web application code.
+ The name is a JNDI name relative to the java:comp/env
+ context and must be unique within a web application.
+
+
+
+
+
+
+
+
+
+
+ The res-ref-name element specifies the name of a
+ resource manager connection factory reference. The name
+ is a JNDI name relative to the java:comp/env context.
+ The name must be unique within a web application.
+
+
+
+
+
+
+
+
+
+
+ The env-entry-name element contains the name of a web
+ application's environment entry. The name is a JNDI
+ name relative to the java:comp/env context. The name
+ must be unique within a web application.
+
+
+
+
+
+
+
+
+
+
+ A role-name-key is specified to allow the references
+ from the security-role-refs.
+
+
+
+
+
+
+
+
+
+
+ The keyref indicates the references from
+ security-role-ref to a specified role-name.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ When specified, this element causes uncovered http methods
+ to be denied. For every url-pattern that is the target of a
+ security-constrant, this element causes all HTTP methods that
+ are NOT covered (by a security constraint) at the url-pattern
+ to be denied.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Please see section 8.2.2 of the specification for details.
+
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/web-common_3_1.xsd b/gen/src/main/resources/xsd/web-common_3_1.xsd
new file mode 100644
index 00000000..01b39484
--- /dev/null
+++ b/gen/src/main/resources/xsd/web-common_3_1.xsd
@@ -0,0 +1,1474 @@
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+
+ ...
+
+
+ The instance documents may indicate the published version of
+ the schema using the xsi:schemaLocation attribute for Java EE
+ namespace with the following location:
+
+ http://xmlns.jcp.org/xml/ns/javaee/web-common_3_1.xsd
+
+ ]]>
+
+
+
+
+
+
+ The following conventions apply to all Java EE
+ deployment descriptor elements unless indicated otherwise.
+
+ - In elements that specify a pathname to a file within the
+ same JAR file, relative filenames (i.e., those not
+ starting with "/") are considered relative to the root of
+ the JAR file's namespace. Absolute filenames (i.e., those
+ starting with "/") also specify names in the root of the
+ JAR file's namespace. In general, relative names are
+ preferred. The exception is .war files where absolute
+ names are preferred for consistency with the Servlet API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The context-param element contains the declaration
+ of a web application's servlet context
+ initialization parameters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The metadata-complete attribute defines whether this
+ deployment descriptor and other related deployment
+ descriptors for this module (e.g., web service
+ descriptors) are complete, or whether the class
+ files available to this module and packaged with
+ this application should be examined for annotations
+ that specify deployment information.
+
+ If metadata-complete is set to "true", the deployment
+ tool must ignore any annotations that specify deployment
+ information, which might be present in the class files
+ of the application.
+
+ If metadata-complete is not specified or is set to
+ "false", the deployment tool must examine the class
+ files of the application for annotations, as
+ specified by the specifications.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The auth-constraintType indicates the user roles that
+ should be permitted access to this resource
+ collection. The role-name used here must either correspond
+ to the role-name of one of the security-role elements
+ defined for this web application, or be the specially
+ reserved role-name "*" that is a compact syntax for
+ indicating all roles in the web application. If both "*"
+ and rolenames appear, the container interprets this as all
+ roles. If no roles are defined, no user is allowed access
+ to the portion of the web application described by the
+ containing security-constraint. The container matches
+ role names case sensitively when determining access.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The auth-methodType is used to configure the authentication
+ mechanism for the web application. As a prerequisite to
+ gaining access to any web resources which are protected by
+ an authorization constraint, a user must have authenticated
+ using the configured mechanism. Legal values are "BASIC",
+ "DIGEST", "FORM", "CLIENT-CERT", or a vendor-specific
+ authentication scheme.
+
+ Used in: login-config
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The dispatcher has five legal values: FORWARD, REQUEST,
+ INCLUDE, ASYNC, and ERROR.
+
+ A value of FORWARD means the Filter will be applied under
+ RequestDispatcher.forward() calls.
+ A value of REQUEST means the Filter will be applied under
+ ordinary client calls to the path or servlet.
+ A value of INCLUDE means the Filter will be applied under
+ RequestDispatcher.include() calls.
+ A value of ASYNC means the Filter will be applied under
+ calls dispatched from an AsyncContext.
+ A value of ERROR means the Filter will be applied under the
+ error page mechanism.
+
+ The absence of any dispatcher elements in a filter-mapping
+ indicates a default of applying filters only under ordinary
+ client calls to the path or servlet.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The error-code contains an HTTP error code, ex: 404
+
+ Used in: error-page
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The error-pageType contains a mapping between an error code
+ or exception type to the path of a resource in the web
+ application.
+
+ Error-page declarations using the exception-type element in
+ the deployment descriptor must be unique up to the class name of
+ the exception-type. Similarly, error-page declarations using the
+ error-code element must be unique in the deployment descriptor
+ up to the status code.
+
+ If an error-page element in the deployment descriptor does not
+ contain an exception-type or an error-code element, the error
+ page is a default error page.
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+
+
+ The exception-type contains a fully qualified class
+ name of a Java exception type.
+
+
+
+
+
+
+
+
+
+ The location element contains the location of the
+ resource in the web application relative to the root of
+ the web application. The value of the location must have
+ a leading `/'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The filterType is used to declare a filter in the web
+ application. The filter is mapped to either a servlet or a
+ URL pattern in the filter-mapping element, using the
+ filter-name value to reference. Filters can access the
+ initialization parameters declared in the deployment
+ descriptor at runtime via the FilterConfig interface.
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+
+
+ The fully qualified classname of the filter.
+
+
+
+
+
+
+
+
+
+ The init-param element contains a name/value pair as
+ an initialization param of a servlet filter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Declaration of the filter mappings in this web
+ application is done by using filter-mappingType.
+ The container uses the filter-mapping
+ declarations to decide which filters to apply to a request,
+ and in what order. The container matches the request URI to
+ a Servlet in the normal way. To determine which filters to
+ apply it matches filter-mapping declarations either on
+ servlet-name, or on url-pattern for each filter-mapping
+ element, depending on which style is used. The order in
+ which filters are invoked is the order in which
+ filter-mapping declarations that match a request URI for a
+ servlet appear in the list of filter-mapping elements.The
+ filter-name value must be the value of the filter-name
+ sub-elements of one of the filter declarations in the
+ deployment descriptor.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type defines a string which contains at least one
+ character.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The logical name of the filter is declare
+ by using filter-nameType. This name is used to map the
+ filter. Each filter name is unique within the web
+ application.
+
+ Used in: filter, filter-mapping
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The form-login-configType specifies the login and error
+ pages that should be used in form based login. If form based
+ authentication is not used, these elements are ignored.
+
+ Used in: login-config
+
+
+
+
+
+
+
+
+ The form-login-page element defines the location in the web
+ app where the page that can be used for login can be
+ found. The path begins with a leading / and is interpreted
+ relative to the root of the WAR.
+
+
+
+
+
+
+
+
+ The form-error-page element defines the location in
+ the web app where the error page that is displayed
+ when login is not successful can be found.
+ The path begins with a leading / and is interpreted
+ relative to the root of the WAR.
+
+
+
+
+
+
+
+
+
+
+
+
+ A HTTP method type as defined in HTTP 1.1 section 2.2.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The login-configType is used to configure the authentication
+ method that should be used, the realm name that should be
+ used for this application, and the attributes that are
+ needed by the form login mechanism.
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+
+ The realm name element specifies the realm name to
+ use in HTTP Basic authorization.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The mime-mappingType defines a mapping between an extension
+ and a mime type.
+
+ Used in: web-app
+
+
+
+
+
+
+
+ The extension element contains a string describing an
+ extension. example: "txt"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The mime-typeType is used to indicate a defined mime type.
+
+ Example:
+ "text/plain"
+
+ Used in: mime-mapping
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The security-constraintType is used to associate
+ security constraints with one or more web resource
+ collections
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The servletType is used to declare a servlet.
+ It contains the declarative data of a
+ servlet. If a jsp-file is specified and the load-on-startup
+ element is present, then the JSP should be precompiled and
+ loaded.
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+
+
+
+ The servlet-class element contains the fully
+ qualified class name of the servlet.
+
+
+
+
+
+
+
+
+
+
+
+ The load-on-startup element indicates that this
+ servlet should be loaded (instantiated and have
+ its init() called) on the startup of the web
+ application. The optional contents of these
+ element must be an integer indicating the order in
+ which the servlet should be loaded. If the value
+ is a negative integer, or the element is not
+ present, the container is free to load the servlet
+ whenever it chooses. If the value is a positive
+ integer or 0, the container must load and
+ initialize the servlet as the application is
+ deployed. The container must guarantee that
+ servlets marked with lower integers are loaded
+ before servlets marked with higher integers. The
+ container may choose the order of loading of
+ servlets with the same load-on-start-up value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The servlet-mappingType defines a mapping between a
+ servlet and a url pattern.
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The servlet-name element contains the canonical name of the
+ servlet. Each servlet name is unique within the web
+ application.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The session-configType defines the session parameters
+ for this web application.
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+ The session-timeout element defines the default
+ session timeout interval for all sessions created
+ in this web application. The specified timeout
+ must be expressed in a whole number of minutes.
+ If the timeout is 0 or less, the container ensures
+ the default behaviour of sessions is never to time
+ out. If this element is not specified, the container
+ must set its default timeout period.
+
+
+
+
+
+
+
+
+ The cookie-config element defines the configuration of the
+ session tracking cookies created by this web application.
+
+
+
+
+
+
+
+
+ The tracking-mode element defines the tracking modes
+ for sessions created by this web application
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The cookie-configType defines the configuration for the
+ session tracking cookies of this web application.
+
+ Used in: session-config
+
+
+
+
+
+
+
+
+ The name that will be assigned to any session tracking
+ cookies created by this web application.
+ The default is JSESSIONID
+
+
+
+
+
+
+
+
+ The domain name that will be assigned to any session tracking
+ cookies created by this web application.
+
+
+
+
+
+
+
+
+ The path that will be assigned to any session tracking
+ cookies created by this web application.
+
+
+
+
+
+
+
+
+ The comment that will be assigned to any session tracking
+ cookies created by this web application.
+
+
+
+
+
+
+
+
+ Specifies whether any session tracking cookies created
+ by this web application will be marked as HttpOnly
+
+
+
+
+
+
+
+
+ Specifies whether any session tracking cookies created
+ by this web application will be marked as secure.
+ When true, all session tracking cookies must be marked
+ as secure independent of the nature of the request that
+ initiated the corresponding session.
+ When false, the session cookie should only be marked secure
+ if the request that initiated the session was secure.
+
+
+
+
+
+
+
+
+ The lifetime (in seconds) that will be assigned to any
+ session tracking cookies created by this web application.
+ Default is -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The name that will be assigned to any session tracking
+ cookies created by this web application.
+ The default is JSESSIONID
+
+ Used in: cookie-config
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The domain name that will be assigned to any session tracking
+ cookies created by this web application.
+
+ Used in: cookie-config
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The path that will be assigned to any session tracking
+ cookies created by this web application.
+
+ Used in: cookie-config
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The comment that will be assigned to any session tracking
+ cookies created by this web application.
+
+ Used in: cookie-config
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The tracking modes for sessions created by this web
+ application
+
+ Used in: session-config
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The transport-guaranteeType specifies that the communication
+ between client and server should be NONE, INTEGRAL, or
+ CONFIDENTIAL. NONE means that the application does not
+ require any transport guarantees. A value of INTEGRAL means
+ that the application requires that the data sent between the
+ client and server be sent in such a way that it can't be
+ changed in transit. CONFIDENTIAL means that the application
+ requires that the data be transmitted in a fashion that
+ prevents other entities from observing the contents of the
+ transmission. In most cases, the presence of the INTEGRAL or
+ CONFIDENTIAL flag will indicate that the use of SSL is
+ required.
+
+ Used in: user-data-constraint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The user-data-constraintType is used to indicate how
+ data communicated between the client and container should be
+ protected.
+
+ Used in: security-constraint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The elements that use this type designate a path starting
+ with a "/" and interpreted relative to the root of a WAR
+ file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type contains the recognized versions of
+ web-application supported. It is used to designate the
+ version of the web application.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The web-resource-collectionType is used to identify the
+ resources and HTTP methods on those resources to which a
+ security constraint applies. If no HTTP methods are specified,
+ then the security constraint applies to all HTTP methods.
+ If HTTP methods are specified by http-method-omission
+ elements, the security constraint applies to all methods
+ except those identified in the collection.
+ http-method-omission and http-method elements are never
+ mixed in the same collection.
+
+ Used in: security-constraint
+
+
+
+
+
+
+
+
+ The web-resource-name contains the name of this web
+ resource collection.
+
+
+
+
+
+
+
+
+
+
+
+ Each http-method names an HTTP method to which the
+ constraint applies.
+
+
+
+
+
+
+
+
+ Each http-method-omission names an HTTP method to
+ which the constraint does not apply.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The welcome-file-list contains an ordered list of welcome
+ files elements.
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+ The welcome-file element contains file name to use
+ as a default welcome file, such as index.html
+
+
+
+
+
+
+
+
+
+
+
+
+ The localeType defines valid locale defined by ISO-639-1
+ and ISO-3166.
+
+
+
+
+
+
+
+
+
+
+
+
+ The encodingType defines IANA character sets.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The locale-encoding-mapping-list contains one or more
+ locale-encoding-mapping(s).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The locale-encoding-mapping contains locale name and
+ encoding name. The locale name must be either "Language-code",
+ such as "ja", defined by ISO-639 or "Language-code_Country-code",
+ such as "ja_JP". "Country code" is defined by ISO-3166.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This element indicates that the ordering sub-element in which
+ it was placed should take special action regarding the ordering
+ of this application resource relative to other application
+ configuration resources.
+ See section 8.2.2 of the specification for details.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This element specifies configuration information related to the
+ handling of multipart/form-data requests.
+
+
+
+
+
+
+
+
+ The directory location where uploaded files will be stored
+
+
+
+
+
+
+
+
+ The maximum size limit of uploaded files
+
+
+
+
+
+
+
+
+ The maximum size limit of multipart/form-data requests
+
+
+
+
+
+
+
+
+ The size threshold after which an uploaded file will be
+ written to disk
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/web-facelettaglibrary_2_2.xsd b/gen/src/main/resources/xsd/web-facelettaglibrary_2_2.xsd
new file mode 100644
index 00000000..779e014a
--- /dev/null
+++ b/gen/src/main/resources/xsd/web-facelettaglibrary_2_2.xsd
@@ -0,0 +1,684 @@
+
+
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2011-2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+ The XML Schema for the Tag Libraries in the JavaServer Faces
+ Standard Facelets View Declaration Language (Facelets VDL)
+ (Version 2.2).
+
+ JSF 2.2 Facelet Tag Libraries that wish to conform to this
+ schema must declare it in the following manner.
+
+ <facelet-taglib xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facelettaglibary_2_2.xsd"
+ version="2.2">
+
+ ...
+
+ </facelet-taglib>
+
+ The instance documents may indicate the published
+ version of the schema using xsi:schemaLocation attribute
+ for javaee namespace with the following location:
+
+ http://xmlns.jcp.org/xml/ns/javaee/web-facelettaglibary_2_2.xsd
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ tag-names must be unique within a document.
+
+ ]]>
+
+
+
+
+
+
+
+
+ Behavior IDs must be unique within a document.
+
+ ]]>
+
+
+
+
+
+
+
+
+ Converter IDs must be unique within a document.
+
+ ]]>
+
+
+
+
+
+
+
+
+ Validator IDs must be unique within a document.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The top level XML element in a facelet tag library XML file.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ An advisory short name for usages of tags from this tag library.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for facelet-taglib. It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ If the tag library XML
+ file contains individual tag declarations rather than pointing
+ to a library-class or a declaring a composite-library name, the
+ individual tags are enclosed in tag elements.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The attribute element defines an attribute for the nesting
+ tag. The attribute element may have several subelements
+ defining:
+
+
+
+ - description
a description of the attribute
+
+
+ - name
the name of the attribute
+
+
+ - required
whether the attribute is required or
+ optional
+
+
+ - type
the type of the attribute
+
+
+
+
+ ]]>
+
+
+
+
+
+
+ Defines if the nesting attribute is required or
+ optional.
+
+ If not present then the default is "false", i.e
+ the attribute is optional.
+
+ ]]>
+
+
+
+
+
+
+
+ Defines the Java type of the attributes
+ value. If this element is omitted, the
+ expected type is assumed to be
+ "java.lang.Object".
+
+ ]]>
+
+
+
+
+
+
+ Defines the method signature for a MethodExpression-
+ enabled attribute. The syntax of the method-signature
+ element is as follows (taken from the function-signature
+ EBNF in web-jsptaglibrary_2_1.xsd):
+
+
+
+MethodSignature ::= ReturnType S MethodName S? '(' S? Parameters? S? ')'
+
+ReturnType ::= Type
+
+MethodName ::= Identifier
+
+Parameters ::= Parameter | ( Parameter S? ',' S? Parameters )
+
+Parameter ::= Type
+
+
+
+Where:
+
+
+
+ Type
is a basic type or a fully qualified
+ Java class name (including package name), as per the 'Type'
+ production in the Java Language Specification, Second Edition,
+ Chapter 18.
+
+ Identifier
is a Java identifier, as per the
+ 'Identifier' production in the Java Language Specification,
+ Second Edition, Chapter 18.
+
+
+
+Example:
+
+java.lang.String nickName( java.lang.String, int )
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for tag It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If the tag library XML file contains individual function
+ declarations rather than pointing to a library-class or a
+ declaring a composite-library name, the individual functions are
+ enclosed in function elements.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Within a tag element, the behavior element encapsulates
+ information specific to a JSF Behavior.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for behavior. It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ Within a tag element,
+ the component element encapsulates information specific to a JSF
+ UIComponent.
+
+
+
+
This element must have exactly one of
+<component-type>
, <resource-id>
,
+or <handler-class>
among its child elements.
+
+
+
+ ]]>
+
+
+
+
+
+
+
+ A valid resource identifier
+ as specified in the spec prose document section
+ 2.6.1.3. For example:
+
+ <resource-id>myCC/ccName.xhtml</resource-id>
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for component It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Within a tag element, the converter element encapsulates
+ information specific to a JSF Converter.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for converter It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Within a tag element, the validator element encapsulates
+ information specific to a JSF Validator.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for validator It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ This type contains the recognized versions of
+ facelet-taglib supported.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines the canonical name of a tag or attribute being
+ defined.
+
+ The name must conform to the lexical rules for an NCName
+
+ ]]>
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/web-facesconfig_2_2.xsd b/gen/src/main/resources/xsd/web-facesconfig_2_2.xsd
new file mode 100644
index 00000000..81272208
--- /dev/null
+++ b/gen/src/main/resources/xsd/web-facesconfig_2_2.xsd
@@ -0,0 +1,3703 @@
+
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2011 - 2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+ The XML Schema for the JavaServer Faces Application
+ Configuration File (Version 2.2).
+
+ All JavaServer Faces configuration files must indicate
+ the JavaServer Faces schema by indicating the JavaServer
+ Faces namespace:
+
+ http://xmlns.jcp.org/xml/ns/javaee
+
+ and by indicating the version of the schema by
+ using the version element as shown below:
+
+ <faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="..."
+ version="2.2">
+ ...
+ </faces-config>
+
+ The instance documents may indicate the published
+ version of the schema using xsi:schemaLocation attribute
+ for javaee namespace with the following location:
+
+ http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd
+
+ ]]>
+
+
+
+
+
+
+
+
+ The "faces-config" element is the root of the configuration
+ information hierarchy, and contains nested elements for all
+ of the other configuration settings.
+
+ ]]>
+
+
+
+ Behavior IDs must be unique within a document.
+
+ ]]>
+
+
+
+
+
+
+ Converter IDs must be unique within a document.
+
+ ]]>
+
+
+
+
+
+
+ 'converter-for-class' element values must be unique
+ within a document.
+
+ ]]>
+
+
+
+
+
+
+ Validator IDs must be unique within a document.
+
+ ]]>
+
+
+
+
+
+
+ Managed bean names must be unique within a document.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ The "faces-config" element is the root of the configuration
+ information hierarchy, and contains nested elements for all
+ of the other configuration settings.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ The "name" element
+ within the top level "faces-config"
+ element declares the name of this application
+ configuration resource. Such names are used
+ in the document ordering scheme specified in section
+ JSF.11.4.6.
+
+ This value is taken to be the
+ defining document id of any <flow-definition> elements
+ defined in this Application Configuration Resource file. If this
+ element is not specified, the runtime must take the empty string
+ as its value.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for faces-config. It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ Please see section JSF.11.4.6 for the specification of this element.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This element contains a sequence of "id" elements, each of which
+ refers to an application configuration resource by the "id"
+ declared on its faces-config element. This element can also contain
+ a single "others" element which specifies that this document comes
+ before or after other documents within the application.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This element indicates that the ordering sub-element in which
+ it was placed should take special action regarding the ordering
+ of this application resource relative to other
+ application configuration resources. See section JSF.11.4.6
+ for the complete specification.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ Only relevant if this is placed within the /WEB-INF/faces-config.xml.
+ Please see section JSF.11.4.6 for the specification for details.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "application" element provides a mechanism to define the
+ various per-application-singleton implementation artifacts for
+ a particular web application that is utilizing
+ JavaServer Faces. For nested elements that are not specified,
+ the JSF implementation must provide a suitable default.
+
+ ]]>
+
+
+
+
+ The "action-listener" element contains the fully
+ qualified class name of the concrete
+ ActionListener implementation class that will be
+ called during the Invoke Application phase of the
+ request processing lifecycle.
+
+ ]]>
+
+
+
+
+ The "default-render-kit-id" element allows the
+ application to define a renderkit to be used other
+ than the standard one.
+
+ ]]>
+
+
+
+
+ The base name of a resource bundle representing
+ the message resources for this application. See
+ the JavaDocs for the "java.util.ResourceBundle"
+ class for more information on the syntax of
+ resource bundle names.
+
+ ]]>
+
+
+
+
+ The "navigation-handler" element contains the
+ fully qualified class name of the concrete
+ NavigationHandler implementation class that will
+ be called during the Invoke Application phase
+ of the request processing lifecycle, if the
+ default ActionListener (provided by the JSF
+ implementation) is used.
+
+ ]]>
+
+
+
+
+ The "view-handler" element contains the fully
+ qualified class name of the concrete ViewHandler
+ implementation class that will be called during
+ the Restore View and Render Response phases of the
+ request processing lifecycle. The faces
+ implementation must provide a default
+ implementation of this class.
+
+ ]]>
+
+
+
+
+ The "state-manager" element contains the fully
+ qualified class name of the concrete StateManager
+ implementation class that will be called during
+ the Restore View and Render Response phases of the
+ request processing lifecycle. The faces
+ implementation must provide a default
+ implementation of this class.
+
+ ]]>
+
+
+
+
+ The "el-resolver" element contains the fully
+ qualified class name of the concrete
+ javax.el.ELResolver implementation class
+ that will be used during the processing of
+ EL expressions.
+
+ ]]>
+
+
+
+
+ The "property-resolver" element contains the fully
+ qualified class name of the concrete
+ PropertyResolver implementation class that will
+ be used during the processing of value binding
+ expressions.
+
+ ]]>
+
+
+
+
+ The "variable-resolver" element contains the fully
+ qualified class name of the concrete
+ VariableResolver implementation class that will
+ be used during the processing of value binding
+ expressions.
+
+ ]]>
+
+
+
+
+ The "resource-handler" element contains the
+ fully qualified class name of the concrete
+ ResourceHandler implementation class that
+ will be used during rendering and decoding
+ of resource requests The standard
+ constructor based decorator pattern used for
+ other application singletons will be
+ honored.
+
+ ]]>
+
+
+
+
+ The "resource-library-contracts" element
+ specifies the mappings between views in the application and resource
+ library contracts that, if present in the application, must be made
+ available for use as templates of the specified views.
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The resource-bundle element inside the application element
+ references a java.util.ResourceBundle instance by name
+ using the var element. ResourceBundles referenced in this
+ manner may be returned by a call to
+ Application.getResourceBundle() passing the current
+ FacesContext for this request and the value of the var
+ element below.
+
+ ]]>
+
+
+
+
+
+ The fully qualified class name of the
+ java.util.ResourceBundle instance.
+
+ ]]>
+
+
+
+
+ The name by which this ResourceBundle instance
+ is retrieved by a call to
+ Application.getResourceBundle().
+
+ ]]>
+
+
+
+
+
+
+
+
+ The "resource-library-contracts" element
+ specifies the mappings between views in the application and resource
+ library contracts that, if present in the application, must be made
+ available for use as templates of the specified views.
+
+
+ ]]>
+
+
+
+
+
+ Declare a mapping between a collection
+ of views in the application and the list of contracts (if present in the application)
+ that may be used as a source for templates and resources for those views.
+
+ ]]>
+
+
+
+
+
+
+
+
+ The "contract-mapping" element
+ specifies the mappings between a collection of views in the application and resource
+ library contracts that, if present in the application, must be made
+ available for use as templates of the specified views.
+
+
+ ]]>
+
+
+
+
+
+ The "url-pattern" element
+ specifies the collection of views in this application that
+ are allowed to use the corresponding contracts.
+
+
+ ]]>
+
+
+
+
+
+ The "contracts" element
+ is a comma separated list of resource library contracts that,
+ if available to the application, may be used by the views
+ matched by the corresponding "url-pattern"
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+ Extension element for application. It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ The "factory" element provides a mechanism to define the
+ various Factories that comprise parts of the implementation
+ of JavaServer Faces. For nested elements that are not
+ specified, the JSF implementation must provide a suitable
+ default.
+
+ ]]>
+
+
+
+
+ The "application-factory" element contains the
+ fully qualified class name of the concrete
+ ApplicationFactory implementation class that will
+ be called when
+ FactoryFinder.getFactory(APPLICATION_FACTORY) is
+ called.
+
+ ]]>
+
+
+
+
+ The "exception-handler-factory" element contains the
+ fully qualified class name of the concrete
+ ExceptionHandlerFactory implementation class that will
+ be called when
+ FactoryFinder.getFactory(EXCEPTION_HANDLER_FACTORY)
+ is called.
+
+ ]]>
+
+
+
+
+ The "external-context-factory" element contains the
+ fully qualified class name of the concrete
+ ExternalContextFactory implementation class that will
+ be called when
+ FactoryFinder.getFactory(EXTERNAL_CONTEXT_FACTORY)
+ is called.
+
+ ]]>
+
+
+
+
+ The "faces-context-factory" element contains the
+ fully qualified class name of the concrete
+ FacesContextFactory implementation class that will
+ be called when
+ FactoryFinder.getFactory(FACES_CONTEXT_FACTORY)
+ is called.
+
+ ]]>
+
+
+
+
+ The "facelet-cache-factory" element contains the
+ fully qualified class name of the concrete
+ FaceletCacheFactory implementation class that will
+ be called when
+ FactoryFinder.getFactory(FACELET_CACHE_FACTORY)
+ is called.
+
+ ]]>
+
+
+
+
+ The "partial-view-context-factory" element contains the
+ fully qualified class name of the concrete
+ PartialViewContextFactory implementation class that will
+ be called when FactoryFinder.getFactory
+ (FactoryFinder.PARTIAL_VIEW_CONTEXT_FACTORY) is called.
+
+ ]]>
+
+
+
+
+ The "lifecycle-factory" element contains the fully
+ qualified class name of the concrete LifecycleFactory
+ implementation class that will be called when
+ FactoryFinder.getFactory(LIFECYCLE_FACTORY) is called.
+
+ ]]>
+
+
+
+
+ The "view-declaration-language-factory" element contains
+ the fully qualified class name of the concrete
+ ViewDeclarationLanguageFactory
+ implementation class that will be called when
+ FactoryFinder.getFactory(VIEW_DECLARATION_FACTORY) is called.
+
+ ]]>
+
+
+
+
+ The "tag-handler-delegate-factory" element contains
+ the fully qualified class name of the concrete
+ ViewDeclarationLanguageFactory
+ implementation class that will be called when
+ FactoryFinder.getFactory(TAG_HANDLER_DELEGATE_FACTORY) is called.
+
+ ]]>
+
+
+
+
+ The "render-kit-factory" element contains the fully
+ qualified class name of the concrete RenderKitFactory
+ implementation class that will be called when
+ FactoryFinder.getFactory(RENDER_KIT_FACTORY) is
+ called.
+
+ ]]>
+
+
+
+
+ The "visit-context-factory" element contains the fully
+ qualified class name of the concrete VisitContextFactory
+ implementation class that will be called when
+ FactoryFinder.getFactory(VISIT_CONTEXT_FACTORY) is
+ called.
+
+ ]]>
+
+
+
+
+ The "flash-factory" element contains the
+ fully qualified class name of the concrete
+ FaceletFactory implementation class that will
+ be called when
+ FactoryFinder.getFactory(FLASH_FACTORY) is
+ called.
+
+ ]]>
+
+
+
+
+ The "flow-handler-factory" element contains the
+ fully qualified class name of the concrete
+ FlowHandlerFactory implementation class that will
+ be called when
+ FactoryFinder.getFactory(FLOW_HANDLER_FACTORY) is
+ called.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for factory. It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ The "attribute" element represents a named, typed, value
+ associated with the parent UIComponent via the generic
+ attributes mechanism.
+
+ Attribute names must be unique within the scope of the parent
+ (or related) component.
+
+ ]]>
+
+
+
+
+
+ The "attribute-name" element represents the name under
+ which the corresponding value will be stored, in the
+ generic attributes of the UIComponent we are related
+ to.
+
+ ]]>
+
+
+
+
+ The "attribute-class" element represents the Java type
+ of the value associated with this attribute name.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for attribute. It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ The "component" element represents a concrete UIComponent
+ implementation class that should be registered under the
+ specified type identifier, along with its associated
+ properties and attributes. Component types must be unique
+ within the entire web application.
+
+ Nested "attribute" elements identify generic attributes that
+ are recognized by the implementation logic of this component.
+ Nested "property" elements identify JavaBeans properties of
+ the component class that may be exposed for manipulation
+ via tools.
+
+ ]]>
+
+
+
+
+
+ The "component-type" element represents the name under
+ which the corresponding UIComponent class should be
+ registered.
+
+ ]]>
+
+
+
+
+ The "component-class" element represents the fully
+ qualified class name of a concrete UIComponent
+ implementation class.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for component. It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ The "default-locale" element declares the default locale
+ for this application instance.
+
+ It must be specified as :language:[_:country:[_:variant:]]
+ without the colons, for example "ja_JP_SJIS". The
+ separators between the segments may be '-' or '_'.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "default-value" contains the value for the property or
+ attribute in which this element resides. This value differs
+ from the "suggested-value" in that the property or attribute
+ must take the value, whereas in "suggested-value" taking the
+ value is optional.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+ EL expressions present within a faces config file
+ must start with the character sequence of '#{' and
+ end with '}'.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ Define the name and other design-time information for a facet
+ that is associated with a renderer or a component.
+
+ ]]>
+
+
+
+
+
+ The "facet-name" element represents the facet name
+ under which a UIComponent will be added to its parent.
+ It must be of type "Identifier".
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for facet. It may contain implementation
+ specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ The
+ value of from-view-id must contain one of the following
+ values:
+
+
+
+ The exact match for a view identifier that is recognized
+ by the the ViewHandler implementation being used (such as
+ "/index.jsp" if you are using the default ViewHandler).
+
+ The exact match of a flow node id
+ in the current flow, or a flow id of another flow.
+
+ A proper prefix of a view identifier, plus a trailing
+ "*" character. This pattern indicates that all view
+ identifiers that match the portion of the pattern up to the
+ asterisk will match the surrounding rule. When more than one
+ match exists, the match with the longest pattern is selected.
+
+
+ An "*" character, which means that this pattern applies
+ to all view identifiers.
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "from-action" element contains an action reference
+ expression that must have been executed (by the default
+ ActionListener for handling application level events)
+ in order to select the navigation rule. If not specified,
+ this rule will be relevant no matter which action reference
+ was executed (or if no action reference was executed).
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "if" element defines a condition that must resolve
+ to true in order for the navigation case on which it is
+ defined to be matched, with the existing match criteria
+ (action method and outcome) as a prerequiste, if present.
+ The condition is defined declaratively using a value
+ expression in the body of this element. The expression is
+ evaluated at the time the navigation case is being matched.
+ If the "from-outcome" is omitted and this element is
+ present, the navigation handler will match a null outcome
+ and use the condition return value to determine if the
+ case should be considered a match.
+
+
+
+
When used in a <switch>
within a flow, if the
+expresion returns true
, the
+<from-outcome>
sibling element's outcome is used as
+the id of the node in the flow graph to which control must be
+passed.
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "converter" element represents a concrete Converter
+ implementation class that should be registered under the
+ specified converter identifier. Converter identifiers must
+ be unique within the entire web application.
+
+ Nested "attribute" elements identify generic attributes that
+ may be configured on the corresponding UIComponent in order
+ to affect the operation of the Converter. Nested "property"
+ elements identify JavaBeans properties of the Converter
+ implementation class that may be configured to affect the
+ operation of the Converter. "attribute" and "property"
+ elements are intended to allow component developers to
+ more completely describe their components to tools and users.
+ These elements have no required runtime semantics.
+
+ ]]>
+
+
+
+
+
+
+ The "converter-id" element represents the
+ identifier under which the corresponding
+ Converter class should be registered.
+
+ ]]>
+
+
+
+
+ The "converter-for-class" element represents the
+ fully qualified class name for which a Converter
+ class will be registered.
+
+ ]]>
+
+
+
+
+
+ The "converter-class" element represents the fully
+ qualified class name of a concrete Converter
+ implementation class.
+
+ ]]>
+
+
+
+
+ Nested "attribute" elements identify generic
+ attributes that may be configured on the
+ corresponding UIComponent in order to affect the
+ operation of the Converter. This attribute is
+ primarily for design-time tools and is not
+ specified to have any meaning at runtime.
+
+ ]]>
+
+
+
+
+ Nested "property" elements identify JavaBeans
+ properties of the Converter implementation class
+ that may be configured to affect the operation of
+ the Converter. This attribute is primarily for
+ design-time tools and is not specified to have
+ any meaning at runtime.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for converter. It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ The "lifecycle" element provides a mechanism to specify
+ modifications to the behaviour of the default Lifecycle
+ implementation for this web application.
+
+ ]]>
+
+
+
+
+ The "phase-listener" element contains the fully
+ qualified class name of the concrete PhaseListener
+ implementation class that will be registered on
+ the Lifecycle.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for lifecycle. It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ The localeType defines valid locale defined by ISO-639-1
+ and ISO-3166.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ The "locale-config" element allows the app developer to
+ declare the supported locales for this application.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "default-validators" element allows the app developer to
+ register a set of validators, referenced by identifier, that
+ are automatically assigned to any EditableValueHolder component
+ in the application, unless overridden or disabled locally.
+
+ ]]>
+
+
+
+
+ The "validator-id" element represents the identifier
+ of a registered validator.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ The "managed-bean" element represents a JavaBean, of a
+ particular class, that will be dynamically instantiated
+ at runtime (by the default VariableResolver implementation)
+ if it is referenced as the first element of a value binding
+ expression, and no corresponding bean can be identified in
+ any scope. In addition to the creation of the managed bean,
+ and the optional storing of it into the specified scope,
+ the nested managed-property elements can be used to
+ initialize the contents of settable JavaBeans properties of
+ the created instance.
+
+ ]]>
+
+
+
+
+
+ The "managed-bean-name" element represents the
+ attribute name under which a managed bean will
+ be searched for, as well as stored (unless the
+ "managed-bean-scope" value is "none").
+
+ ]]>
+
+
+
+
+ The "managed-bean-class" element represents the fully
+ qualified class name of the Java class that will be
+ used`to instantiate a new instance if creation of the
+ specified`managed bean is requested.
+
+ The specified class must conform to standard JavaBeans
+ conventions. In particular, it must have a public
+ zero-arguments constructor, and zero or more public
+ property setters.
+
+ ]]>
+
+
+
+
+ The "managed-bean-scope" element represents the scope
+ into which a newly created instance of the specified
+ managed bean will be stored (unless the value is
+ "none").
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ This attribute is only considered when associated with
+ an application-scoped managed bean. If the value of the eager
+ attribute is true the runtime must instantiate this class
+ and store the instance within the application scope when the
+ application starts.
+
+ If eager is unspecified or is false, the default "lazy"
+ instantiation and scoped storage of the managed bean
+ will occur.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+Top level element for a flow
+ definition.
+
+
+
+
If there is no <start-node>
element declared, it
+is assumed to be <flowName>.xhtml
.
+
+
+
+]]>
+
+
+
+
+
+
+
+
+ Declare the id of the starting node in the
+flow graph. The start node may be any of the node types mentioned in
+the class javadocs for FlowHandler
.
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The id of this flow. The id
+ must be unique within the Application configuration Resource
+ file in which this flow is defined. The value of this attribute,
+ combined with the value of the <faces-config><name> element
+ must globally identify the flow within the application. ]]>
+
+
+
+
+
+
+
+
+
+
+
+ Invoke a method, passing parameters if necessary.
+ The return from the method is used as the outcome for where to go next in the
+ flow. If the method is a void method, the default outcome is used. ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ A parameter to pass when calling the method
+ identified in the "method" element that is a sibling of this element.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A parameter to pass when calling the method
+ identified in the "method" element that is a sibling of this element.
+
+]]>
+
+
+
+
+
+
+ The optional "class" element within a "parameter" element
+ will be interpreted as the fully qualified class name for the type
+ of the "value" element.
+
+ ]]>
+
+
+
+
+ The "value" element within an "parameter"
+ must be a literal string or an EL Expression whose "get" will be called when the "method"
+ associated with this element is invoked.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ Define a view node in a flow graph.
+
+This element must contain exactly one
+<vdl-document>
element.
+
+]]>
+
+
+
+
+
+
+
+
+ Define the vdl-document for the enclosing view.
+
+]]>
+
+
+
+
+
+
+
+
+The id of this view. It must be
+ unique within the flow.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ Define a switch node in a flow graph.
+
+
+
+
This element must contain one or more
+<case>
elements. When control passes to the
+<switch>
node, each of the cases must be considered
+in order and control must past to the <from-outcome>
+of the first one whose <if>
expression evaluates to
+true
.
+
+
+
+]]>
+
+
+
+
+
+
+
+
+ Defines a case that must be
+ considered in the list of cases in the
+ <switch>
.
+
+]]>
+
+
+
+
+
+
+
+
+ Defines the default case that will
+ be taken if none of the other cases in the
+ <switch>
are taken.
+
+]]>
+
+
+
+
+
+
+
+
+The id of this switch. It must be
+ unique within the flow.
+
+ ]]>
+
+
+
+
+
+
+
+ Defines a case that will
+ be considered in the <switch>
.
+
+
+ ]]>
+
+
+
+
+
+ If this EL expression evaluates to
+ true
, the corresponding from-outcome
will
+ be the outcome taken by the enclosing <switch>
+
+ ]]>
+
+
+
+
+ The "from-outcome" element contains a logical outcome
+ string returned by the execution of an application
+ action method selected via an "actionRef" property
+ (or a literal value specified by an "action" property)
+ of a UICommand component. If specified, this rule
+ will be relevant only if the outcome value matches
+ this element's value. If not specified, this rule
+ will be relevant if the outcome value is non-null
+ or, if the "if" element is present, will be relevant
+ for any outcome value, with the assumption that the
+ condition specified in the "if" element ultimately
+ determines if this rule is a match.
+
+If used in a faces flow, this element
+represents the node id to which control will be passed.
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Define a return node in a flow graph.
+
+
+
+
This element must contain exactly one <from-outcome>
element.
+
+
+]]>
+
+
+
+
+
+
+
+ This element
+represents the node id to which control will be passed.
+
+
+]]>
+
+
+
+
+
+
+
+
+
+The id of this flow-return.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+ Define a call node in a flow graph.
+
+
+
+
This element must contain exactly one <flow-reference>
element,
+which must contain exactly one <flow-id>
element.
+
+
+]]>
+
+
+
+
+
+
+
+
+
+ The flow id of the called flow.
+
+]]>
+
+
+
+
+
+
+
+
+ A parameter to pass when calling the flow
+ identified in the "flow-reference" element that is a sibling of this element.
+
+]]>
+
+
+
+
+
+
+
+
+
+The id of this flow-return.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+ Identifiy the called flow.
+
+
+
+
+]]>
+
+
+
+
+
+
+ The document id of the called flow.
+
+ ]]>
+
+
+
+
+
+ The id of the called flow.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+ A MethodExpression
that will be invoked when the flow is entered.
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A MethodExpression
that will be invoked when the flow is exited.
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A named parameter whose value will be populated
+ with a correspondingly named parameter within an "outbound-parameter" element.
+
+]]>
+
+
+
+
+
+
+ The "name" element within an "inbound-parameter"
+ element declares the name of this parameter
+ to be passed into a flow. There must be
+ a sibling "value" element in the same parent as this element.
+
+ ]]>
+
+
+
+
+ The "value" element within an "inbound-parameter"
+ must be an EL Expression whose value will be set with the correspondingly
+ named "outbound-parameter" when this flow is entered, if such a
+ parameter exists.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+ A named parameter whose value will be
+ passed to a correspondingly named parameter within an "inbound-parameter" element
+ on the target flow.
+
+]]>
+
+
+
+
+
+
+ The "name" element within an "outbound-parameter" element
+ declares the name of this parameter to be passed out of a flow. There must be
+ a sibling "value" element in the same parent as this element.
+
+ ]]>
+
+
+
+
+ The "value" element within an "outbound-parameter"
+ must be a literal string or an EL Expression whose "get" will be called when the "flow-call"
+ containing this element is traversed to go to a new flow.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+ Extension element for managed-bean. It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines the legal values for the
+ element's body content, which includes all of the scopes
+ normally used in a web application, plus the "none" value
+ indicating that a created bean should not be stored into
+ any scope. Alternatively, an EL expression may be used
+ as the value of this element. The result of evaluating this
+ expression must by of type java.util.Map.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "managed-property" element represents an individual
+ property of a managed bean that will be configured to the
+ specified value (or value set) if the corresponding
+ managed bean is automatically created.
+
+ ]]>
+
+
+
+
+
+ The "property-name" element represents the JavaBeans
+ property name under which the corresponding value may
+ be stored.
+
+ ]]>
+
+
+
+
+ The "property-class" element represents the Java type
+ of the value associated with this property name.
+ If not specified, it can be inferred from existing
+ classes; however, this element should be specified
+ if the configuration file is going to be the source
+ for generating the corresponding classes.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "map-entry" element reprsents a single key-entry pair
+ that will be added to the computed value of a managed
+ property of type java.util.Map.
+
+ ]]>
+
+
+
+
+ The "key" element is the String representation of a
+ map key that will be stored in a managed property of
+ type java.util.Map.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "map-entries' element represents a set of key-entry pairs
+ that will be added to the computed value of a managed property
+ of type java.util.Map. In addition, the Java class types
+ of the key and entry values may be optionally declared.
+
+ ]]>
+
+
+
+
+ The "key-class" element defines the Java type to which
+ each "key" element in a set of "map-entry" elements
+ will be converted to. If omitted, "java.lang.String"
+ is assumed.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The
+ "navigation-case" element describes a particular
+ combination of conditions that must match for this case to
+ be executed, and the view id of the component tree that
+ should be selected next.
+
+ ]]>
+
+
+
+
+
+
+ The "from-outcome" element contains a logical outcome
+ string returned by the execution of an application
+ action method selected via an "actionRef" property
+ (or a literal value specified by an "action" property)
+ of a UICommand component. If specified, this rule
+ will be relevant only if the outcome value matches
+ this element's value. If not specified, this rule
+ will be relevant if the outcome value is non-null
+ or, if the "if" element is present, will be relevant
+ for any outcome value, with the assumption that the
+ condition specified in the "if" element ultimately
+ determines if this rule is a match.
+
+]]>
+
+
+
+
+
+
+ Please see section JSF.7.4.2 for the specification of this element.
+
+ ]]>
+
+
+
+
+ The "to-view-id" element
+ contains the view identifier (or
+ flow node id, or flow id)
+ of the next view (or flow node or
+ flow) that should be displayed if this
+ navigation rule is matched. If the contents is a
+ value expression, it should be resolved by the
+ navigation handler to obtain the view (
+ or flow node or flow)
+ identifier.
+
+ ]]>
+
+
+
+
+ The document id of the called flow.
+ If this element appears in a <navigation-case> nested within
+ a <flow-definition>, it must be ignored because navigation
+ cases within flows may only navigate among the view nodes of that
+ flow.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ The "navigation-rule" element represents an individual
+ decision rule that will be utilized by the default
+ NavigationHandler implementation to make decisions on
+ what view should be displayed next, based on the
+ view id being processed.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for navigation-rule. It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ The "null-value" element indicates that the managed
+ property in which we are nested will be explicitly
+ set to null if our managed bean is automatically
+ created. This is different from omitting the managed
+ property element entirely, which will cause no
+ property setter to be called for this property.
+
+ The "null-value" element can only be used when the
+ associated "property-class" identifies a Java class,
+ not a Java primitive.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ The "property" element represents a JavaBean property of the
+ Java class represented by our parent element.
+
+ Property names must be unique within the scope of the Java
+ class that is represented by the parent element, and must
+ correspond to property names that will be recognized when
+ performing introspection against that class via
+ java.beans.Introspector.
+
+ ]]>
+
+
+
+
+
+ The "property-name" element represents the JavaBeans
+ property name under which the corresponding value
+ may be stored.
+
+ ]]>
+
+
+
+
+ The "property-class" element represents the Java type
+ of the value associated with this property name.
+ If not specified, it can be inferred from existing
+ classes; however, this element should be specified if
+ the configuration file is going to be the source for
+ generating the corresponding classes.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Any view that matches any of the
+ url-patterns in this element may only be reached from another JSF
+ view in the same web application. Because the runtime is aware of
+ which views are protected, any navigation from an unprotected
+ view to a protected view is automatically subject to
+ protection.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for property. It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ The "redirect" element indicates that navigation to the
+ specified "to-view-id" should be accomplished by
+ performing an HTTP redirect rather than the usual
+ ViewHandler mechanisms.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This element was introduced due to a specification
+ error, and is now deprecated. The correct name for
+ this element is "redirect-param" and its meaning is
+ documented therein. The "view-param" element is
+ maintained to preserve backwards compatibility.
+ Implementations must treat this element the same as
+ "redirect-param".
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "redirect-param" element, only valid within
+ a "redirect" element, contains child "name"
+ and "value" elements that must be included in the
+ redirect url when the redirect is performed.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "referenced-bean" element represents at design time the
+ promise that a Java object of the specified type will exist at
+ runtime in some scope, under the specified key. This can be
+ used by design time tools to construct user interface dialogs
+ based on the properties of the specified class. The presence
+ or absence of a referenced bean element has no impact on the
+ JavaServer Faces runtime environment inside a web application.
+
+ ]]>
+
+
+
+
+
+ The "referenced-bean-name" element represents the
+ attribute name under which the corresponding
+ referenced bean may be assumed to be stored, in one
+ of 'request', 'session', 'view', 'application'
+ or a custom scope.
+
+ ]]>
+
+
+
+
+ The "referenced-bean-class" element represents the
+ fully qualified class name of the Java class
+ (either abstract or concrete) or Java interface
+ implemented by the corresponding referenced bean.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ The "render-kit" element represents a concrete RenderKit
+ implementation that should be registered under the specified
+ render-kit-id. If no render-kit-id is specified, the
+ identifier of the default RenderKit
+ (RenderKitFactory.DEFAULT_RENDER_KIT) is assumed.
+
+ ]]>
+
+
+
+
+
+ The "render-kit-id" element represents an identifier
+ for the RenderKit represented by the parent
+ "render-kit" element.
+
+ ]]>
+
+
+
+
+ The "render-kit-class" element represents the fully
+ qualified class name of a concrete RenderKit
+ implementation class.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "client-behavior-renderer" element represents a concrete
+ ClientBehaviorRenderer implementation class that should be
+ registered under the specified behavior renderer type identifier,
+ in the RenderKit associated with the parent "render-kit"
+ element. Client Behavior renderer type must be unique within the RenderKit
+ associated with the parent "render-kit" element.
+
+ Nested "attribute" elements identify generic component
+ attributes that are recognized by this renderer.
+
+ ]]>
+
+
+
+
+ The "client-behavior-renderer-type" element represents a renderer type
+ identifier for the Client Behavior Renderer represented by the parent
+ "client-behavior-renderer" element.
+
+ ]]>
+
+
+
+
+ The "client-behavior-renderer-class" element represents the fully
+ qualified class name of a concrete Client Behavior Renderer
+ implementation class.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ The "renderer" element represents a concrete Renderer
+ implementation class that should be registered under the
+ specified component family and renderer type identifiers,
+ in the RenderKit associated with the parent "render-kit"
+ element. Combinations of component family and
+ renderer type must be unique within the RenderKit
+ associated with the parent "render-kit" element.
+
+ Nested "attribute" elements identify generic component
+ attributes that are recognized by this renderer.
+
+ ]]>
+
+
+
+
+
+ The "component-family" element represents the
+ component family for which the Renderer represented
+ by the parent "renderer" element will be used.
+
+ ]]>
+
+
+
+
+ The "renderer-type" element represents a renderer type
+ identifier for the Renderer represented by the parent
+ "renderer" element.
+
+ ]]>
+
+
+
+
+ The "renderer-class" element represents the fully
+ qualified class name of a concrete Renderer
+ implementation class.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for renderer. It may contain implementation
+ specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for render-kit. It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ The "suggested-value" contains the value for the property or
+ attribute in which this element resides. This value is
+ advisory only and is intended for tools to use when
+ populating pallettes.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ The "supported-locale" element allows authors to declare
+ which locales are supported in this application instance.
+
+ It must be specified as :language:[_:country:[_:variant:]]
+ without the colons, for example "ja_JP_SJIS". The
+ separators between the segments may be '-' or '_'.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "behavior" element represents a concrete Behavior
+ implementation class that should be registered under the
+ specified behavior identifier. Behavior identifiers must
+ be unique within the entire web application.
+
+ Nested "attribute" elements identify generic attributes that
+ may be configured on the corresponding UIComponent in order
+ to affect the operation of the Behavior. Nested "property"
+ elements identify JavaBeans properties of the Behavior
+ implementation class that may be configured to affect the
+ operation of the Behavior. "attribute" and "property"
+ elements are intended to allow component developers to
+ more completely describe their components to tools and users.
+ These elements have no required runtime semantics.
+
+ ]]>
+
+
+
+
+
+ The "behavior-id" element represents the identifier
+ under which the corresponding Behavior class should
+ be registered.
+
+ ]]>
+
+
+
+
+ The "behavior-class" element represents the fully
+ qualified class name of a concrete Behavior
+ implementation class.
+
+ ]]>
+
+
+
+
+ Nested "attribute" elements identify generic
+ attributes that may be configured on the
+ corresponding UIComponent in order to affect the
+ operation of the Behavior. This attribute is
+ primarily for design-time tools and is not
+ specified to have any meaning at runtime.
+
+ ]]>
+
+
+
+
+ Nested "property" elements identify JavaBeans
+ properties of the Behavior implementation class
+ that may be configured to affect the operation of
+ the Behavior. This attribute is primarily for
+ design-time tools and is not specified to have
+ any meaning at runtime.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for behavior. It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ The "validator" element represents a concrete Validator
+ implementation class that should be registered under the
+ specified validator identifier. Validator identifiers must
+ be unique within the entire web application.
+
+ Nested "attribute" elements identify generic attributes that
+ may be configured on the corresponding UIComponent in order
+ to affect the operation of the Validator. Nested "property"
+ elements identify JavaBeans properties of the Validator
+ implementation class that may be configured to affect the
+ operation of the Validator. "attribute" and "property"
+ elements are intended to allow component developers to
+ more completely describe their components to tools and users.
+ These elements have no required runtime semantics.
+
+ ]]>
+
+
+
+
+
+ The "validator-id" element represents the identifier
+ under which the corresponding Validator class should
+ be registered.
+
+ ]]>
+
+
+
+
+ The "validator-class" element represents the fully
+ qualified class name of a concrete Validator
+ implementation class.
+
+ ]]>
+
+
+
+
+ Nested "attribute" elements identify generic
+ attributes that may be configured on the
+ corresponding UIComponent in order to affect the
+ operation of the Validator. This attribute is
+ primarily for design-time tools and is not
+ specified to have any meaning at runtime.
+
+ ]]>
+
+
+
+
+ Nested "property" elements identify JavaBeans
+ properties of the Validator implementation class
+ that may be configured to affect the operation of
+ the Validator. This attribute is primarily for
+ design-time tools and is not specified to have
+ any meaning at runtime.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for validator. It may contain
+ implementation specific content.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ The "value" element is the String representation of
+ a literal value to which a scalar managed property
+ will be set, or a value binding expression ("#{...}")
+ that will be used to calculate the required value.
+ It will be converted as specified for the actual
+ property type.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ The "value-class" element defines the Java type to which each
+ "value" element's value will be converted to, prior to adding
+ it to the "list-entries" list for a managed property that is
+ a java.util.List, or a "map-entries" map for a managed
+ property that is a java.util.Map.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "list-entries" element represents a set of initialization
+ elements for a managed property that is a java.util.List or an
+ array. In the former case, the "value-class" element can
+ optionally be used to declare the Java type to which each
+ value should be converted before adding it to the Collection.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The presence of this element within the "application" element in
+ an application configuration resource file indicates the
+ developer wants to add an SystemEventListener to this
+ application instance. Elements nested within this element allow
+ selecting the kinds of events that will be delivered to the
+ listener instance, and allow selecting the kinds of classes that
+ can be the source of events that are delivered to the listener
+ instance.
+
+ ]]>
+
+
+
+
+ The "system-event-listener-class" element contains
+ the fully qualified class name of the concrete
+ SystemEventListener implementation class that will be
+ called when events of the type specified by the
+ "system-event-class" are sent by the runtime.
+
+ ]]>
+
+
+
+
+ The "system-event-class" element contains the fully
+ qualified class name of the SystemEvent subclass for
+ which events will be delivered to the class whose fully
+ qualified class name is given by the
+ "system-event-listener-class" element.
+
+ ]]>
+
+
+
+
+ The "source-class" element, if present, contains the
+ fully qualified class name of the class that will be the
+ source for the event to be delivered to the class whose
+ fully qualified class name is given by the
+ "system-event-listener-class" element.
+
+ ]]>
+
+
+
+
+
+
+
+
+ This type contains the recognized versions of
+ faces-config supported.
+
+ ]]>
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/web-fragment_3_1.xsd b/gen/src/main/resources/xsd/web-fragment_3_1.xsd
new file mode 100644
index 00000000..435ba584
--- /dev/null
+++ b/gen/src/main/resources/xsd/web-fragment_3_1.xsd
@@ -0,0 +1,340 @@
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+
+ ...
+
+
+ The instance documents may indicate the published version of
+ the schema using the xsi:schemaLocation attribute for Java EE
+ namespace with the following location:
+
+ http://xmlns.jcp.org/xml/ns/javaee/web-fragment_3_1.xsd
+
+ ]]>
+
+
+
+
+
+
+ The following conventions apply to all Java EE
+ deployment descriptor elements unless indicated otherwise.
+
+ - In elements that specify a pathname to a file within the
+ same JAR file, relative filenames (i.e., those not
+ starting with "/") are considered relative to the root of
+ the JAR file's namespace. Absolute filenames (i.e., those
+ starting with "/") also specify names in the root of the
+ JAR file's namespace. In general, relative names are
+ preferred. The exception is .war files where absolute
+ names are preferred for consistency with the Servlet API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The web-fragment element is the root of the deployment
+ descriptor for a web fragment. Note that the sub-elements
+ of this element can be in the arbitrary order. Because of
+ that, the multiplicity of the elements of distributable,
+ session-config, welcome-file-list, jsp-config, login-config,
+ and locale-encoding-mapping-list was changed from "?" to "*"
+ in this schema. However, the deployment descriptor instance
+ file must not contain multiple elements of session-config,
+ jsp-config, and login-config. When there are multiple elements of
+ welcome-file-list or locale-encoding-mapping-list, the container
+ must concatenate the element contents. The multiple occurence
+ of the element distributable is redundant and the container
+ treats that case exactly in the same way when there is only
+ one distributable.
+
+
+
+
+
+
+
+ The servlet element contains the name of a servlet.
+ The name must be unique within the web application.
+
+
+
+
+
+
+
+
+
+
+ The filter element contains the name of a filter.
+ The name must be unique within the web application.
+
+
+
+
+
+
+
+
+
+
+ The ejb-local-ref-name element contains the name of an EJB
+ reference. The EJB reference is an entry in the web
+ application's environment and is relative to the
+ java:comp/env context. The name must be unique within
+ the web application.
+
+ It is recommended that name is prefixed with "ejb/".
+
+
+
+
+
+
+
+
+
+
+ The ejb-ref-name element contains the name of an EJB
+ reference. The EJB reference is an entry in the web
+ application's environment and is relative to the
+ java:comp/env context. The name must be unique within
+ the web application.
+
+ It is recommended that name is prefixed with "ejb/".
+
+
+
+
+
+
+
+
+
+
+ The resource-env-ref-name element specifies the name of
+ a resource environment reference; its value is the
+ environment entry name used in the web application code.
+ The name is a JNDI name relative to the java:comp/env
+ context and must be unique within a web application.
+
+
+
+
+
+
+
+
+
+
+ The message-destination-ref-name element specifies the name of
+ a message destination reference; its value is the
+ environment entry name used in the web application code.
+ The name is a JNDI name relative to the java:comp/env
+ context and must be unique within a web application.
+
+
+
+
+
+
+
+
+
+
+ The res-ref-name element specifies the name of a
+ resource manager connection factory reference. The name
+ is a JNDI name relative to the java:comp/env context.
+ The name must be unique within a web application.
+
+
+
+
+
+
+
+
+
+
+ The env-entry-name element contains the name of a web
+ application's environment entry. The name is a JNDI
+ name relative to the java:comp/env context. The name
+ must be unique within a web application.
+
+
+
+
+
+
+
+
+
+
+ A role-name-key is specified to allow the references
+ from the security-role-refs.
+
+
+
+
+
+
+
+
+
+
+ The keyref indicates the references from
+ security-role-ref to a specified role-name.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Please see section 8.2.2 of the specification for details.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This element contains a sequence of "name" elements, each of
+ which
+ refers to an application configuration resource by the "name"
+ declared on its web.xml fragment. This element can also contain
+ a single "others" element which specifies that this document
+ comes
+ before or after other documents within the application.
+ See section 8.2.2 of the specification for details.
+
+
+
+
+
+
+
+
+
+
diff --git a/gen/src/main/resources/xsd/web-partialresponse_2_2.xsd b/gen/src/main/resources/xsd/web-partialresponse_2_2.xsd
new file mode 100644
index 00000000..df60fa59
--- /dev/null
+++ b/gen/src/main/resources/xsd/web-partialresponse_2_2.xsd
@@ -0,0 +1,426 @@
+
+
+
+
+
+
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright (c) 2011 - 2013 Oracle and/or its affiliates. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can
+ obtain a copy of the License at
+ https://glassfish.java.net/public/CDDL+GPL_1_1.html
+ or packager/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at packager/legal/LICENSE.txt.
+
+ GPL Classpath Exception:
+ Oracle designates this particular file as subject to the "Classpath"
+ exception as provided by Oracle in the GPL Version 2 section of the License
+ file that accompanied this code.
+
+ Modifications:
+ If applicable, add the following below the License Header, with the fields
+ enclosed by brackets [] replaced by your own identifying information:
+ "Portions Copyright [year] [name of copyright owner]"
+
+ Contributor(s):
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+
+
+
+
+
+
+
+
+ The XML Schema for the JavaServer Faces (Version 2.2)
+ Partial Response used in JSF Ajax frameworks.
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ The "partial-response" element is the root of the
+ partial response information hierarchy, and contains
+ nested elements for all possible elements that can exist
+ in the response.
+
+ This element must have an "id" attribute whose value
+ is the return from calling getContainerClientId() on the
+ UIViewRoot to which this response pertains.
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ The "partial-response" element is the root of the
+ partial response information hierarchy, and contains
+ nested elements for all possible elements that can exist
+ in the response.
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+ This element must have an "id" attribute whose value
+ is the return from calling getContainerClientId() on the
+ UIViewRoot to which this response pertains.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "changes" element contains a collection of child elements,
+ each of which describes a different change to be applied to the
+ view in the user agent.
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ The "eval" element enables this element's
+ contents to be executed as JavaScript.
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "update" element enables DOM elements matching the "id"
+ attribute to be updated with the contents of this element.
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "insert" element enables content to be inserted into the DOM
+ before or after an existing DOM element as specified by the
+ nested "before" or "after" elements. The elements "before" and
+ "after" are mutually exclusive - one of them must be specified.
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "delete" element enables DOM elements matching the "id"
+ attribute to be removed.
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "attributes" element enables attributes of DOM elements matching the "id"
+ attribute to be updated. If this element is used, then it must contain at
+ least one "attribute" element.
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "redirect" element enables a redirect to the location as specified by the
+ "url" attribute.
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The "error" element contains error information from the server.
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension element for partial response. It may contain
+ implementation specific content.
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
diff --git a/impl-base/pom.xml b/impl-base/pom.xml
index 7aa252dc..47d4ca6b 100644
--- a/impl-base/pom.xml
+++ b/impl-base/pom.xml
@@ -1,12 +1,11 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/impl-javaee-prototype/pom.xml b/impl-javaee-prototype/pom.xml
index 3d527d76..401593db 100644
--- a/impl-javaee-prototype/pom.xml
+++ b/impl-javaee-prototype/pom.xml
@@ -5,7 +5,7 @@
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/impl-javaee/pom.xml b/impl-javaee/pom.xml
index 130e8b27..56cfd871 100644
--- a/impl-javaee/pom.xml
+++ b/impl-javaee/pom.xml
@@ -1,12 +1,11 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.application7.ApplicationDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.application7.ApplicationDescriptor
new file mode 100644
index 00000000..efe2b596
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.application7.ApplicationDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.application7.ApplicationDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=application.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.batchXML10.BatchXMLDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.batchXML10.BatchXMLDescriptor
new file mode 100644
index 00000000..ce87c207
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.batchXML10.BatchXMLDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.batchXML10.BatchXMLDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=batch.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.beans11.BeansDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.beans11.BeansDescriptor
new file mode 100644
index 00000000..0d87eefb
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.beans11.BeansDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.beans11.BeansDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=beans.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.connector17.ConnectorDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.connector17.ConnectorDescriptor
new file mode 100644
index 00000000..7fc39007
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.connector17.ConnectorDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.connector17.ConnectorDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=ra.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.ejbjar32.EjbJarDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.ejbjar32.EjbJarDescriptor
new file mode 100644
index 00000000..4624276c
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.ejbjar32.EjbJarDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.ejbjar32.EjbJarDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=ejb-jar.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.facelettaglibrary22.WebFacelettaglibraryDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.facelettaglibrary22.WebFacelettaglibraryDescriptor
new file mode 100644
index 00000000..7912580b
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.facelettaglibrary22.WebFacelettaglibraryDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.facelettaglibrary22.WebFacelettaglibraryDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=taglib.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.facesconfig22.WebFacesConfigDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.facesconfig22.WebFacesConfigDescriptor
new file mode 100644
index 00000000..e4300a16
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.facesconfig22.WebFacesConfigDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.facesconfig22.WebFacesConfigDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=faces-config.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.facespartialresponse22.WebFacesPartialResponseDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.facespartialresponse22.WebFacesPartialResponseDescriptor
new file mode 100644
index 00000000..445b9b43
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.facespartialresponse22.WebFacesPartialResponseDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.facespartialresponse22.WebFacesPartialResponseDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=default.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.jobXML10.JobXMLDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.jobXML10.JobXMLDescriptor
new file mode 100644
index 00000000..b7970637
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.jobXML10.JobXMLDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.jobXML10.JobXMLDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=job.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.orm10.OrmDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.orm10.OrmDescriptor
new file mode 100644
index 00000000..3ddf5dda
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.orm10.OrmDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.orm10.OrmDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=orm.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.orm20.OrmDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.orm20.OrmDescriptor
new file mode 100644
index 00000000..7944f4ba
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.orm20.OrmDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.orm20.OrmDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=orm.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.orm21.OrmDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.orm21.OrmDescriptor
new file mode 100644
index 00000000..465faad3
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.orm21.OrmDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.orm21.OrmDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=orm.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.permissions7.PermissionsDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.permissions7.PermissionsDescriptor
new file mode 100644
index 00000000..ca140bbb
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.permissions7.PermissionsDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.permissions7.PermissionsDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=permissions.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.persistence21.PersistenceDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.persistence21.PersistenceDescriptor
new file mode 100644
index 00000000..8508d936
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.persistence21.PersistenceDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.persistence21.PersistenceDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=persistence.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.validationConfiguration11.ValidationConfigurationDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.validationConfiguration11.ValidationConfigurationDescriptor
new file mode 100644
index 00000000..7ea52bcd
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.validationConfiguration11.ValidationConfigurationDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.validationConfiguration11.ValidationConfigurationDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=validation.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.validationMapping11.ValidationMappingDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.validationMapping11.ValidationMappingDescriptor
new file mode 100644
index 00000000..ecc0cca1
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.validationMapping11.ValidationMappingDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.validationMapping11.ValidationMappingDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=mapping.xml
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.webapp31.WebAppDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.webapp31.WebAppDescriptor
new file mode 100644
index 00000000..4e453e19
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.webapp31.WebAppDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.webapp31.WebAppDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=web.xml
\ No newline at end of file
diff --git a/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.webfragment31.WebFragmentDescriptor b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.webfragment31.WebFragmentDescriptor
new file mode 100644
index 00000000..49ada468
--- /dev/null
+++ b/impl-javaee/src/main/resources/META-INF/services/org.jboss.shrinkwrap.descriptor.api.webfragment31.WebFragmentDescriptor
@@ -0,0 +1,3 @@
+implClass=org.jboss.shrinkwrap.descriptor.impl.webfragment31.WebFragmentDescriptorImpl
+importerClass=org.jboss.shrinkwrap.descriptor.spi.node.dom.XmlDomNodeDescriptorImporterImpl
+defaultName=web-fragment.xml
\ No newline at end of file
diff --git a/impl-jboss/pom.xml b/impl-jboss/pom.xml
index f43d11b1..45ef656a 100644
--- a/impl-jboss/pom.xml
+++ b/impl-jboss/pom.xml
@@ -1,12 +1,11 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/impl-misc/pom.xml b/impl-misc/pom.xml
index 125a4a87..f70f8e33 100644
--- a/impl-misc/pom.xml
+++ b/impl-misc/pom.xml
@@ -1,12 +1,11 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/metadata-parser-test/pom.xml b/metadata-parser-test/pom.xml
index 3db4ee25..9108f32a 100644
--- a/metadata-parser-test/pom.xml
+++ b/metadata-parser-test/pom.xml
@@ -1,12 +1,11 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
@@ -74,6 +73,7 @@
IronjacamarDescriptor
ironjacamar
ironjacamar:ironjacamarType
+ false
@@ -81,9 +81,12 @@
datasources
org.jboss.datasources.api
org.jboss.datasources.impl
+ ${basedir}/src/test/resources/packageInfo/datasourceApi/package-info.java
+ ${basedir}/src/test/resources/packageInfo/datasourceImpl/package-info.java
DatasourcesDescriptor
datasources
datasources:datasourcesType
+ false
@@ -94,6 +97,7 @@
ResourceadapterDescriptor
resource-adapters
resourceadapters:resource-adaptersType
+ false
@@ -104,6 +108,7 @@
ConnectorDescriptor
connector
j2ee:connector
+ false
@@ -168,7 +173,7 @@
-
+
@@ -181,7 +186,7 @@
-
+
diff --git a/metadata-parser-test/src/test/resources/packageInfo/datasourceApi/package-info.java b/metadata-parser-test/src/test/resources/packageInfo/datasourceApi/package-info.java
new file mode 100644
index 00000000..ef055513
--- /dev/null
+++ b/metadata-parser-test/src/test/resources/packageInfo/datasourceApi/package-info.java
@@ -0,0 +1,5 @@
+ /**
+ * Provides the implementation classes as defined in the schema
+ */
+
+package org.jboss.datasources.api;
diff --git a/metadata-parser-test/src/test/resources/packageInfo/datasourceImpl/package-info.java b/metadata-parser-test/src/test/resources/packageInfo/datasourceImpl/package-info.java
new file mode 100644
index 00000000..328962b2
--- /dev/null
+++ b/metadata-parser-test/src/test/resources/packageInfo/datasourceImpl/package-info.java
@@ -0,0 +1,5 @@
+ /**
+ * Provides the implementation classes as defined in the schema
+ */
+
+package org.jboss.datasources.impl;
diff --git a/metadata-parser-test/src/teststatic/java/org/jboss/shrinkwrap/descriptor/test/ironjacamar/DtdParserTest.java b/metadata-parser-test/src/teststatic/java/org/jboss/shrinkwrap/descriptor/test/ironjacamar/DtdParserTest.java
index 1552786c..9407e6ef 100644
--- a/metadata-parser-test/src/teststatic/java/org/jboss/shrinkwrap/descriptor/test/ironjacamar/DtdParserTest.java
+++ b/metadata-parser-test/src/teststatic/java/org/jboss/shrinkwrap/descriptor/test/ironjacamar/DtdParserTest.java
@@ -5,7 +5,7 @@
import org.jboss.shrinkwrap.descriptor.metadata.Metadata;
import org.jboss.shrinkwrap.descriptor.metadata.MetadataDescriptor;
import org.jboss.shrinkwrap.descriptor.metadata.MetadataElement;
-import org.jboss.shrinkwrap.descriptor.metadata.MetadataParser;
+import org.jboss.shrinkwrap.descriptor.metadata.MetadataParserPath;
import org.jboss.shrinkwrap.descriptor.metadata.MetadataUtil;
import org.jboss.shrinkwrap.descriptor.metadata.dom.DomWriter;
import org.junit.Ignore;
@@ -105,10 +105,16 @@ public void testConnector() throws Exception
metadataDescriptor.setPackageImpl("org.jboss.shrinkwrap.descriptor.test.impl.connector10");
metadataDescriptor.setNamespace("j2ee");
+ final MetadataParserPath path = new MetadataParserPath();
+ path.setPathToApi("");
+ path.setPathToImpl("");
+ path.setPathToServices("");
+ path.setPathToTest("");
+
metadata.getMetadataDescriptorList().add(metadataDescriptor);
metadata.preResolveDataTypes();
new MetadataUtil().log(metadata);
- new DomWriter().write(metadata, "/tmp/connector_1_0.xml", null);
+ new DomWriter().write(metadata, "/tmp/connector_1_0.xml", null, path);
//
// if (verbose) {
// new MetadataUtil().print(metadata);
diff --git a/metadata-parser/pom.xml b/metadata-parser/pom.xml
index 72ad8c16..1c5a8747 100644
--- a/metadata-parser/pom.xml
+++ b/metadata-parser/pom.xml
@@ -1,12 +1,11 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
@@ -60,7 +59,7 @@
shrinkwrap-descriptors-api-base
${project.version}
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-impl-base
@@ -80,6 +79,12 @@
3.1
+
+ commons-io
+ commons-io
+ 2.4
+
+
commons-logging
commons-logging
@@ -104,6 +109,12 @@
8.7
+
+ com.thoughtworks.qdox
+ qdox
+ 2.0-M1
+
+
com.sun.codemodel
codemodel
diff --git a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/Metadata.java b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/Metadata.java
index 84a7f8b8..3671a35b 100644
--- a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/Metadata.java
+++ b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/Metadata.java
@@ -195,12 +195,17 @@ public void addGroupReference(final String groupName, final MetadataElement grou
*/
public void addClassElement(final String className, final MetadataElement classElement) {
classElement.setType(getNamespaceValue(classElement.getType()));
+
+ if (classElement.getMaxOccurs() != null && !classElement.getMaxOccurs().equals("1")) {
+ classElement.setMaxOccurs("unbounded");
+ }
+
for (MetadataItem item : classList) {
if (item.getName().equals(className) && item.getNamespace().equals(getCurrentNamespace())
&& item.getPackageApi().equals(getCurrentPackageApi())) {
// check for a element with the same name, if found then set 'maxOccurs = unbounded'
for (MetadataElement element : item.getElements()) {
- if (element.getName().equals(classElement.getName())) {
+ if (element.getName().equals(classElement.getName()) && !classElement.getIsAttribute()) {
element.setMaxOccurs("unbounded");
return;
}
diff --git a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataDescriptor.java b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataDescriptor.java
index 4a6a21a2..314e84d7 100644
--- a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataDescriptor.java
+++ b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataDescriptor.java
@@ -31,8 +31,20 @@ public class MetadataDescriptor extends BaseMetadataItem {
private boolean generateClasses;
+ private Boolean generateCommonClasses;
+
+ private String pathToPackageInfoApi;
+
+ private String pathToPackageInfoImpl;
+
private Properties namespaces = new Properties();
+ protected String[] commonImports;
+
+ protected MetadataParserCommon common;
+
+ protected MetadataParserCommonRef commonRef;
+
public MetadataDescriptor(String name) {
super(name);
}
@@ -68,4 +80,53 @@ public boolean isGenerateClasses() {
public void setGenerateClasses(final boolean generateClasses) {
this.generateClasses = generateClasses;
}
-}
+
+ public String[] getCommonImports() {
+ return commonImports;
+ }
+
+ public void setCommonImports(String[] imports) {
+ this.commonImports = imports;
+ }
+
+ public String getPathToPackageInfoApi() {
+ return pathToPackageInfoApi;
+ }
+
+ public void setPathToPackageInfoApi(final String pathToPackageInfoApi) {
+ this.pathToPackageInfoApi = pathToPackageInfoApi;
+ }
+
+ public String getPathToPackageInfoImpl() {
+ return pathToPackageInfoImpl;
+ }
+
+ public void setPathToPackageInfoImpl(final String pathToPackageInfoImpl) {
+ this.pathToPackageInfoImpl = pathToPackageInfoImpl;
+ }
+
+ public MetadataParserCommon getCommon() {
+ return common;
+ }
+
+ public void setCommon(MetadataParserCommon common) {
+ this.common = common;
+ }
+
+ public MetadataParserCommonRef getCommonRef() {
+ return commonRef;
+ }
+
+ public void setCommonRef(MetadataParserCommonRef commonRef) {
+ this.commonRef = commonRef;
+ }
+
+ public Boolean isGenerateCommonClasses() {
+ return generateCommonClasses;
+ }
+
+ public void setGenerateCommonClasses(Boolean generateCommonClasses) {
+ this.generateCommonClasses = generateCommonClasses;
+ }
+
+}
\ No newline at end of file
diff --git a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParser.java b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParser.java
index ab7b740e..59429a91 100644
--- a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParser.java
+++ b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParser.java
@@ -31,6 +31,7 @@
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.TransformerException;
+import org.apache.commons.io.FileUtils;
import org.jboss.shrinkwrap.descriptor.metadata.dom.DomWriter;
import org.jboss.shrinkwrap.descriptor.metadata.dtd.MetadataDtdEventListener;
import org.jboss.shrinkwrap.descriptor.metadata.xslt.XsltTransformer;
@@ -103,6 +104,13 @@ public void parse(final MetadataParserPath path, final List> confList, final L
metadataDescriptor.setNamespace(metadataConf.getNameSpace());
metadataDescriptor.setNamespaces(metadataConf.getNamespaces());
metadataDescriptor.setGenerateClasses(metadataConf.generateClasses);
+ metadataDescriptor.setPathToPackageInfoApi(metadataConf.getPathToPackageInfoApi());
+ metadataDescriptor.setPathToPackageInfoImpl(metadataConf.getPathToPackageInfoImpl());
+ metadataDescriptor.setCommon(metadataConf.getCommon());
+ metadataDescriptor.setCommonRef(metadataConf.getCommonRef());
+ metadataDescriptor.setGenerateCommonClasses(metadataConf.generateCommonClasses);
+ metadataDescriptor.setCommonImports(metadataConf.getCommonImports());
+
metadata.getMetadataDescriptorList().add(metadataDescriptor);
if (log.isLoggable(Level.FINE)) {
@@ -146,7 +154,7 @@ public void parse(final MetadataParserPath path, final List> confList, final L
metadata.preResolveDataTypes();
if (pathToMetadata != null) {
- new DomWriter().write(metadata, pathToMetadata, (List) javadocTags);
+ new DomWriter().write(metadata, pathToMetadata, (List) javadocTags, path);
}
if (verbose) {
@@ -155,6 +163,7 @@ public void parse(final MetadataParserPath path, final List> confList, final L
if (path.getPathToApi() != null && path.getPathToImpl() != null) {
generateCode(path, verbose);
+ PackageInfo.copyPackageInfo(path, metadata, verbose);
}
}
diff --git a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserCommon.java b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserCommon.java
new file mode 100644
index 00000000..51246d50
--- /dev/null
+++ b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserCommon.java
@@ -0,0 +1,120 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2011, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.shrinkwrap.descriptor.metadata;
+
+import java.util.List;
+
+
+/**
+ * Mojo configuration class for the Shrinkwrap Descriptors CLI Mojo task.
+ *
+ * @author Ralf Battenfeld
+ */
+public class MetadataParserCommon {
+
+ protected String id;
+
+ protected Boolean generate;
+
+ protected String pathToCommonApi;
+
+ protected String commonDescriptorName;
+
+ protected String commonNamespace;
+
+ protected String commonApi;
+
+ protected String[] commonImports;
+
+ protected String[] types;
+
+ protected String[] excludes;
+
+ public String getPathToCommonApi() {
+ return pathToCommonApi;
+ }
+
+ public void setPathToCommonApi(final String pathToCommonApi) {
+ this.pathToCommonApi = pathToCommonApi;
+ }
+
+ public String getCommonApi() {
+ return commonApi;
+ }
+
+ public void setCommonApi(String commonApi) {
+ this.commonApi = commonApi;
+ }
+
+ public String getCommonDescriptorName() {
+ return commonDescriptorName;
+ }
+
+ public void setCommonDescriptorName(String commonDescriptorName) {
+ this.commonDescriptorName = commonDescriptorName;
+ }
+
+ public String[] getTypes() {
+ return types;
+ }
+
+ public void setTypes(String[] types) {
+ this.types = types;
+ }
+
+ public String[] getExcludes() {
+ return excludes;
+ }
+
+ public void setExcludes(String[] excludes) {
+ this.excludes = excludes;
+ }
+
+ public String[] getCommonImports() {
+ return commonImports;
+ }
+
+ public void setCommonImports(String[] imports) {
+ this.commonImports = imports;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public Boolean getGenerate() {
+ return generate;
+ }
+
+ public void setGenerate(Boolean generate) {
+ this.generate = generate;
+ }
+
+ public String getCommonNamespace() {
+ return commonNamespace;
+ }
+
+ public void setCommonNamespace(String commonNamespace) {
+ this.commonNamespace = commonNamespace;
+ }
+
+}
\ No newline at end of file
diff --git a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserCommonElement.java b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserCommonElement.java
new file mode 100644
index 00000000..e15478d1
--- /dev/null
+++ b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserCommonElement.java
@@ -0,0 +1,102 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2011, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.shrinkwrap.descriptor.metadata;
+
+import java.util.List;
+
+/**
+ * Mojo configuration class for the Shrinkwrap Descriptors CLI Mojo task.
+ *
+ * @author Ralf Battenfeld
+ */
+public class MetadataParserCommonElement {
+
+ /**
+ * @Parameter
+ */
+ protected String namespace;
+
+ protected String name;
+
+ protected String commonName;
+
+ protected String commonPackage;
+
+ protected String genericType;
+
+ protected String maxOccurs;
+
+ protected String methodName;
+
+ public String getNamespace() {
+ return namespace;
+ }
+
+ public void setNamespace(String namespace) {
+ this.namespace = namespace;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCommonName() {
+ return commonName;
+ }
+
+ public void setCommonName(String commonName) {
+ this.commonName = commonName;
+ }
+
+ public String getCommonPackage() {
+ return commonPackage;
+ }
+
+ public void setCommonPackage(String commonPackage) {
+ this.commonPackage = commonPackage;
+ }
+
+ public String getGenericType() {
+ return genericType;
+ }
+
+ public void setGenericType(String genericType) {
+ this.genericType = genericType;
+ }
+
+ public String getMaxOccurs() {
+ return maxOccurs;
+ }
+
+ public void setMaxOccurs(String maxOccurs) {
+ this.maxOccurs = maxOccurs;
+ }
+
+ public String getMethodName() {
+ return methodName;
+ }
+
+ public void setMethodName(String methodName) {
+ this.methodName = methodName;
+ }
+
+}
\ No newline at end of file
diff --git a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserCommonRef.java b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserCommonRef.java
new file mode 100644
index 00000000..89af39f9
--- /dev/null
+++ b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserCommonRef.java
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2011, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.shrinkwrap.descriptor.metadata;
+
+
+
+/**
+ * Mojo configuration class for the Shrinkwrap Descriptors CLI Mojo task.
+ *
+ * @author Ralf Battenfeld
+ */
+public class MetadataParserCommonRef {
+
+ protected String refid;
+
+ public String getRefid() {
+ return refid;
+ }
+
+ public void setRefid(String refid) {
+ this.refid = refid;
+ }
+
+}
\ No newline at end of file
diff --git a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserConfiguration.java b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserConfiguration.java
index 7fea94ef..67e251d0 100644
--- a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserConfiguration.java
+++ b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserConfiguration.java
@@ -25,6 +25,7 @@
* @author Ralf Battenfeld
*/
public class MetadataParserConfiguration {
+
/**
* Path to the XSD file to be parsed
*/
@@ -66,11 +67,39 @@ public class MetadataParserConfiguration {
*/
protected boolean generateClasses = true;
+ /**
+ * If true, then the for stand-alone descriptors, the common classes are generated as well
+ * import section.
+ */
+ protected boolean generateCommonClasses = true;
+
+ protected String[] commonImports;
+
/**
* Trace flag
*/
protected boolean verbose;
+ /**
+ * Optional file for package.html or package-info.java
+ */
+ protected String pathToPackageInfoApi;
+
+ /**
+ * Optional file for package.html or package-info.java
+ */
+ protected String pathToPackageInfoImpl;
+
+ /**
+ * Common settings used for generating the interfaces and implementation classes.
+ */
+ protected MetadataParserCommon common;
+
+ /**
+ * Reference to a common descriptor configuration.
+ */
+ protected MetadataParserCommonRef commonRef;
+
/**
* The map declaring the name spaces for the given descriptor.
*/
@@ -156,4 +185,51 @@ public void setGenerateClasses(final boolean generateClasses) {
this.generateClasses = generateClasses;
}
-}
+ public String getPathToPackageInfoApi() {
+ return pathToPackageInfoApi;
+ }
+
+ public void setPathToPackageInfoApi(final String pathToPackageInfoApi) {
+ this.pathToPackageInfoApi = pathToPackageInfoApi;
+ }
+
+ public String getPathToPackageInfoImpl() {
+ return pathToPackageInfoImpl;
+ }
+
+ public void setPathToPackageInfoImpl(final String pathToPackageInfoImpl) {
+ this.pathToPackageInfoImpl = pathToPackageInfoImpl;
+ }
+
+ public MetadataParserCommon getCommon() {
+ return common;
+ }
+
+ public void setCommon(MetadataParserCommon common) {
+ this.common = common;
+ }
+
+ public MetadataParserCommonRef getCommonRef() {
+ return commonRef;
+ }
+
+ public void setCommonRef(MetadataParserCommonRef commonRef) {
+ this.commonRef = commonRef;
+ }
+
+ public boolean isGenerateCommonClasses() {
+ return generateCommonClasses;
+ }
+
+ public void setGenerateCommonClasses(boolean generateCommonClasses) {
+ this.generateCommonClasses = generateCommonClasses;
+ }
+
+ public String[] getCommonImports() {
+ return commonImports;
+ }
+
+ public void setCommonImports(String[] imports) {
+ this.commonImports = imports;
+ }
+}
\ No newline at end of file
diff --git a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/PackageInfo.java b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/PackageInfo.java
new file mode 100644
index 00000000..5eeca2d3
--- /dev/null
+++ b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/PackageInfo.java
@@ -0,0 +1,102 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2011, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.shrinkwrap.descriptor.metadata;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.logging.Logger;
+
+import org.apache.commons.io.FileUtils;
+
+/**
+ * This class copies optionally the package info files into source directories.
+ *
+ * @author Ralf Battenfeld
+ */
+public final class PackageInfo {
+ public static final String PACKAGE_HTML_NAME = "package.html";
+ public static final String PACKAGE_JAVA_NAME = "package-info.java";
+ private static final Logger log = Logger.getLogger(PackageInfo.class.getName());
+
+ /**
+ * Copies the optional packageInfo files into the packages.
+ * @param path
+ * @param metadata
+ * @throws IOException
+ */
+ public static void copyPackageInfo(final MetadataParserPath path, final Metadata metadata, final boolean verbose) throws IOException {
+ for (final MetadataDescriptor descriptor : metadata.getMetadataDescriptorList()) {
+ if (descriptor.getPathToPackageInfoApi() != null) {
+ final File sourceFile = new File(descriptor.getPathToPackageInfoApi());
+ final String destDirectory = path.pathToApi + File.separatorChar + descriptor.getPackageApi().replace('.', '/');
+ deleteExistingPackageInfo(destDirectory, verbose);
+ copy(sourceFile, destDirectory, verbose);
+ }
+
+ if (descriptor.getPathToPackageInfoImpl() != null) {
+ final File sourceFile = new File(descriptor.getPathToPackageInfoImpl());
+ final String destDirectory = path.pathToImpl + File.separatorChar + descriptor.getPackageImpl().replace('.', '/');
+ deleteExistingPackageInfo(destDirectory, verbose);
+ copy(sourceFile, destDirectory, verbose);
+ }
+ }
+ }
+
+ /**
+ * Copies the given sourceFile into the specified directory. The source file post fix
+ * defines which variant of the package info file is created.
+ *
+ * If the source file ends with .java
, then the destination file name is package-info.java
+ * otherwise the file name is package.html
.
+ *
+ * @param sourceFile
+ * @param destDirectory
+ * @param verbose
+ * @throws IOException
+ */
+ public static void copy(final File sourceFile, final String destDirectory, final boolean verbose) throws IOException {
+ String destFileName = PACKAGE_HTML_NAME;
+ if (sourceFile.getName().endsWith("java")) {
+ destFileName = PACKAGE_JAVA_NAME;
+ }
+
+ final File destFile = new File(destDirectory + File.separatorChar + destFileName);
+ if (verbose) {
+ log.info(String.format("Copying packageInfo from: %s to: %s", sourceFile.getAbsolutePath(), destFile.getAbsolutePath()));
+ }
+
+ FileUtils.copyFile(sourceFile, destFile, true);
+ }
+
+ /**
+ * Deletes package.html or package-info.java from the given directory.
+ * @param destDirectory
+ * @param verbose
+ */
+ public static void deleteExistingPackageInfo(final String destDirectory, final boolean verbose) {
+ final File htmlFile = new File(destDirectory + File.separatorChar + PACKAGE_HTML_NAME);
+ final File javaFile = new File(destDirectory + File.separatorChar + PACKAGE_JAVA_NAME);
+ final Boolean isHtmlDeleted = FileUtils.deleteQuietly(htmlFile);
+ final Boolean isJavaDeleted = FileUtils.deleteQuietly(javaFile);
+
+ if (verbose) {
+ log.info(String.format("File %s deleted: %s", htmlFile.getAbsolutePath(), isHtmlDeleted.toString()));
+ log.info(String.format("File %s deleted: %s", javaFile.getAbsolutePath(), isJavaDeleted.toString()));
+ }
+ }
+}
diff --git a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/dom/DomWriter.java b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/dom/DomWriter.java
index ae6a5eb7..b65d3c52 100644
--- a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/dom/DomWriter.java
+++ b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/dom/DomWriter.java
@@ -17,29 +17,41 @@
package org.jboss.shrinkwrap.descriptor.metadata.dom;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
import org.jboss.shrinkwrap.descriptor.metadata.Metadata;
import org.jboss.shrinkwrap.descriptor.metadata.MetadataDescriptor;
import org.jboss.shrinkwrap.descriptor.metadata.MetadataElement;
import org.jboss.shrinkwrap.descriptor.metadata.MetadataEnum;
import org.jboss.shrinkwrap.descriptor.metadata.MetadataItem;
import org.jboss.shrinkwrap.descriptor.metadata.MetadataJavaDoc;
+import org.jboss.shrinkwrap.descriptor.metadata.MetadataParserPath;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import java.io.File;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import com.thoughtworks.qdox.JavaProjectBuilder;
+import com.thoughtworks.qdox.model.JavaAnnotation;
+import com.thoughtworks.qdox.model.JavaClass;
+import com.thoughtworks.qdox.model.JavaSource;
+import com.thoughtworks.qdox.model.expression.AnnotationValue;
/**
* This class writes an XML file based on the meta-data information.
@@ -59,7 +71,7 @@ public class DomWriter {
* @param pathToMetadata
*/
public void write(final Metadata metadata, final String pathToMetadata,
- final List extends MetadataJavaDoc> javadocTags) {
+ final List extends MetadataJavaDoc> javadocTags, final MetadataParserPath path) {
try {
final DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
final DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
@@ -72,6 +84,66 @@ public void write(final Metadata metadata, final String pathToMetadata,
final Element javadocsElement = doc.createElement("javadocs");
rootElement.appendChild(javadocsElement);
+ final Set commonPathSet = new HashSet();
+ final List fileList = new ArrayList();
+ for (final MetadataDescriptor descr : metadata.getMetadataDescriptorList()) {
+ if (descr.getCommon() != null) {
+ final String pathTo = descr.getCommon().getPathToCommonApi();
+ final String commonApi = descr.getCommon().getCommonApi().replace('.', '/');
+ commonPathSet.add(pathTo + "/" + commonApi);
+ } else if (descr.isGenerateCommonClasses()) {
+ final String pathTo = path.getPathToApi();
+ final String commonApi = descr.getPackageApi().replaceAll("[0-9]*$", "").replace('.', '/');
+ commonPathSet.add(pathTo + "/" + commonApi);
+ }
+ }
+
+ for (final String pathCommonApi : commonPathSet) {
+ listFiles(fileList, pathCommonApi);
+ }
+
+ final JavaProjectBuilder builder = new JavaProjectBuilder();
+ final Element generatedElement = doc.createElement("generatedClasses");
+ rootElement.appendChild(generatedElement);
+ for (final File file : fileList) {
+ final Element generatedClassElement = doc.createElement("generatedClass");
+ generatedClassElement.setAttribute("name", file.getName());
+ generatedElement.appendChild(generatedClassElement);
+ final JavaSource src = builder.addSource(file);
+ final JavaClass class1 = src.getClasses().get(0);
+ generatedClassElement.setAttribute("commonPackage", class1.getPackageName());
+ final List annotationList = class1.getAnnotations();
+ for (JavaAnnotation annotation : annotationList) {
+ final AnnotationValue value = annotation.getProperty("common");
+ final List commonExtendsList = (List)value.getParameterValue();
+ for (String commonClass : commonExtendsList) {
+ final Element extendsElement = doc.createElement("commonExtends");
+ extendsElement.setAttribute("extends", commonClass.replace('"', ' ').trim());
+ generatedClassElement.appendChild(extendsElement);
+ }
+ }
+ }
+
+ final Element commonPackagesElement = doc.createElement("commonPackages");
+ rootElement.appendChild(commonPackagesElement);
+ for (final MetadataDescriptor descr : metadata.getMetadataDescriptorList()) {
+ if (descr.isGenerateCommonClasses() != null && !descr.isGenerateCommonClasses()) {
+ final Element generateElement = doc.createElement("package");
+ generateElement.setAttribute("packageApi", descr.getPackageApi());
+ generateElement.setAttribute("generate", Boolean.toString(descr.isGenerateCommonClasses()));
+ commonPackagesElement.appendChild(generateElement);
+ }
+ }
+
+ final List commonNewFiles = findCommonClasses(metadata);
+ final Element commonNewFilesElement = doc.createElement("commonClasses");
+ rootElement.appendChild(commonNewFilesElement);
+ for (final String type : commonNewFiles) {
+ final Element commonType = doc.createElement("typeName");
+ commonType.setAttribute("name", type);
+ commonNewFilesElement.appendChild(commonType);
+ }
+
if (javadocTags != null) {
for (final MetadataJavaDoc javaDoc : javadocTags) {
final Attr javadocName = doc.createAttribute("tag");
@@ -106,6 +178,22 @@ public void write(final Metadata metadata, final String pathToMetadata,
generateClassApi.setValue(Boolean.toString(descriptor.isGenerateClasses()));
packageApi.setAttributeNode(generateClassApi);
+ if (descriptor.getPathToPackageInfoApi() != null) {
+ final Attr pathToPackageInfoApi = doc.createAttribute("packageInfo");
+ pathToPackageInfoApi.setValue(descriptor.getPathToPackageInfoApi());
+ packageApi.setAttributeNode(pathToPackageInfoApi);
+ }
+
+ if (descriptor.getCommonImports() != null) {
+ final Element commonImport = doc.createElement("commonImport");
+ for (String importDescl : descriptor.getCommonImports()) {
+ final Element importElement = doc.createElement("import");
+ importElement.setAttribute("package", importDescl);
+ commonImport.appendChild(importElement);
+ }
+ packageApi.appendChild(commonImport);
+ }
+
packages.appendChild(packageApi);
}
@@ -122,6 +210,13 @@ public void write(final Metadata metadata, final String pathToMetadata,
final Attr generateClassImpl = doc.createAttribute("generateClass");
generateClassImpl.setValue(Boolean.toString(descriptor.isGenerateClasses()));
packageImpl.setAttributeNode(generateClassImpl);
+
+ if (descriptor.getPathToPackageInfoImpl() != null) {
+ final Attr pathToPackageInfoImpl = doc.createAttribute("packageInfo");
+ pathToPackageInfoImpl.setValue(descriptor.getPathToPackageInfoImpl());
+ packageImpl.setAttributeNode(pathToPackageInfoImpl);
+ }
+
packages.appendChild(packageImpl);
}
@@ -407,14 +502,81 @@ public void write(final Metadata metadata, final String pathToMetadata,
descriptorElement.appendChild(namespaceElement);
}
+
+ if (descriptor.getCommonRef() != null) {
+ final Element commonRefElement = doc.createElement("commonRef");
+ commonRefElement.setAttribute("refid", descriptor.getCommonRef().getRefid());
+ descriptorElement.appendChild(commonRefElement);
+ }
+
+ if (descriptor.getCommon() != null) {
+ final Element commonElement = doc.createElement("common");
+ commonElement.setAttribute("pathToCommonApi", descriptor.getCommon().getPathToCommonApi());
+ commonElement.setAttribute("commonDescriptorName", descriptor.getCommon().getCommonDescriptorName());
+ commonElement.setAttribute("commonApi", descriptor.getCommon().getCommonApi());
+ commonElement.setAttribute("commonNamespace", descriptor.getCommon().getCommonNamespace());
+ commonElement.setAttribute("id", descriptor.getCommon().getId());
+ commonElement.setAttribute("generate", descriptor.getCommon().getGenerate().toString());
+
+ if (descriptor.getCommon().getCommonImports() != null) {
+ final Element commonImport = doc.createElement("commonImport");
+ for (String importDescl : descriptor.getCommon().getCommonImports()) {
+ final Element importElement = doc.createElement("import");
+ importElement.setAttribute("package", importDescl);
+ commonImport.appendChild(importElement);
+ }
+ commonElement.appendChild(commonImport);
+ }
+
+ if (descriptor.getCommon().getTypes() != null) {
+ final Element commonTypes = doc.createElement("commonTypes");
+ for (String type : descriptor.getCommon().getTypes()) {
+ final Element typeElement = doc.createElement("type");
+ final String[] items = type.split(":", -1);
+ if (items.length == 2) {
+ typeElement.setAttribute("namespace", items[0]);
+ typeElement.setAttribute("name", items[1]);
+ commonTypes.appendChild(typeElement);
+ } else if (items.length == 3) {
+ typeElement.setAttribute("namespace", items[0]);
+ typeElement.setAttribute("name", items[1]);
+ typeElement.setAttribute("maxOccurs", items[2]);
+ commonTypes.appendChild(typeElement);
+ } else if (items.length == 4) {
+ typeElement.setAttribute("namespace", items[0]);
+ typeElement.setAttribute("name", items[1]);
+ typeElement.setAttribute("maxOccurs", items[2]);
+ typeElement.setAttribute("methodName", items[3]);
+ commonTypes.appendChild(typeElement);
+ }
+ }
+ commonElement.appendChild(commonTypes);
+ }
+
+ if (descriptor.getCommon().getExcludes() != null) {
+ final Element excludeTypes = doc.createElement("commonExcludes");
+ for (String exclude : descriptor.getCommon().getExcludes()) {
+ final Element excludeElement = doc.createElement("exclude");
+ final String[] items = exclude.split(":", -1);
+ if (items.length == 2) {
+ excludeElement.setAttribute("namespace", items[0]);
+ excludeElement.setAttribute("name", items[1]);
+ excludeTypes.appendChild(excludeElement);
+ }
+ }
+ commonElement.appendChild(excludeTypes);
+ }
+
+ descriptorElement.appendChild(commonElement);
+ }
}
}
- TransformerFactory transformerFactory = TransformerFactory.newInstance();
- Transformer transformer = transformerFactory.newTransformer();
- DOMSource source = new DOMSource(doc);
+ final TransformerFactory transformerFactory = TransformerFactory.newInstance();
+ final Transformer transformer = transformerFactory.newTransformer();
+ final DOMSource source = new DOMSource(doc);
final File file = new File(pathToMetadata);
- StreamResult result = new StreamResult(file);
+ final StreamResult result = new StreamResult(file);
// Output to console for testing
// StreamResult result = new StreamResult(System.out);
@@ -429,6 +591,99 @@ public void write(final Metadata metadata, final String pathToMetadata,
pce.printStackTrace();
} catch (TransformerException tfe) {
tfe.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void listFiles(final List list, final String directoryName) {
+ final File directory = new File(directoryName);
+ if (directory.isDirectory()) {
+ final File[] fList = directory.listFiles();
+ for (final File file : fList) {
+ if (file.isFile()) {
+ list.add(file);
+ } else if (file.isDirectory()) {
+ listFiles(list, file.getAbsolutePath());
+ }
+ }
+ }
+ }
+
+ private List findCommonClasses(final Metadata metadata) {
+ final List classList = new ArrayList();
+ for (MetadataDescriptor descr : metadata.getMetadataDescriptorList()) {
+ if (descr.getCommon() != null) {
+ traverseClasses(metadata, classList, descr.getRootElementType());
+ } else {
+ if (descr.isGenerateClasses()) {
+ final String packageApi = descr.getPackageApi();
+ for (MetadataItem item : metadata.getClassList()) {
+ if (packageApi.equals(item.getPackageApi())) {
+ final String type = item.getNamespace() + ":" + item.getName();
+ if (!classList.contains(type)) {
+ classList.add(type);
+ }
+ }
+ }
+ }
+ }
+ }
+ return classList;
+ }
+
+ private void traverseClasses(final Metadata metadata, final List classList, final String elementType) {
+ final String[] elItems = elementType.split(":", -1);
+ if (elItems.length == 2) {
+ for (MetadataItem item : metadata.getClassList()) {
+ if (item.getNamespace().equals(elItems[0]) && item.getName().equals(elItems[1])) {
+ for (MetadataElement element : item.getElements()) {
+ if (!isDataType(element.getType(), metadata)) {
+ if (!classList.contains(element.getType())) {
+ classList.add(element.getType());
+ traverseClasses(metadata, classList, element.getType());
+ }
+ }
+ }
+ for (MetadataElement element : item.getReferences()) {
+ if (!isDataType(element.getType(), metadata)) {
+ if (!classList.contains(element.getRef())) {
+ classList.add(element.getRef());
+ traverseClasses(metadata, classList, element.getRef());
+ }
+ }
+ }
+ }
+ }
+ for (MetadataItem item : metadata.getGroupList()) {
+ if (item.getNamespace().equals(elItems[0]) && item.getName().equals(elItems[1])) {
+ for (MetadataElement element : item.getElements()) {
+ if (!isDataType(element.getType(), metadata)) {
+ if (!classList.contains(element.getType())) {
+ classList.add(element.getType());
+ traverseClasses(metadata, classList, element.getType());
+ }
+ }
+ }
+ for (MetadataElement element : item.getReferences()) {
+ if (!isDataType(element.getType(), metadata)) {
+ if (!classList.contains(element.getRef())) {
+ classList.add(element.getRef());
+ traverseClasses(metadata, classList, element.getRef());
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private boolean isDataType(final String type, final Metadata metadata) {
+ for (MetadataItem item : metadata.getDataTypeList()) {
+ if (item.getMappedTo().equals(type) || item.getName().equals(type)) {
+ return true;
+ }
}
+ return false;
}
}
diff --git a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/filter/AttributeFilter.java b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/filter/AttributeFilter.java
index 3d26ee21..aca8cf03 100644
--- a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/filter/AttributeFilter.java
+++ b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/filter/AttributeFilter.java
@@ -88,11 +88,49 @@ public boolean filter(final Metadata metadata, final TreeWalker walker) {
}
}
- final MetadataElement classElement = new MetadataElement(element);
+ if (isTextOnlyElement) {
+ final MetadataElement classElement = new MetadataElement();
+ classElement.setName(groupOrClassName);
+ classElement.setType("text");
+ classElement.setIsRef(false);
+ classElement.setIsAttribute(false);
+ metadata.addClassElement(groupOrClassName, classElement);
+
+ MetadataItem removableItem = null;
+ for (MetadataItem item : metadata.getDataTypeList()) {
+ if (item.getName().equals(groupOrClassName)) {
+ removableItem = item;
+ break;
+ }
+ }
+
+ if (removableItem != null) {
+ metadata.getDataTypeList().remove(removableItem);
+ }
+ }
+
+ final MetadataElement classAttr = new MetadataElement(element);
String type = MetadataUtil.getAttributeValue(element, "type");
if (type == null) {
- classElement.setType("xsd:string");
+ classAttr.setType("xsd:string");
}
+ classAttr.setIsAttribute(true);
+ metadata.addClassElement(groupOrClassName, classAttr);
+ return true;
+ }
+
+ final Node defaultNode = element.getAttributes().getNamedItem("default");
+ if (defaultNode != null) {
+ final MetadataElement classElement = new MetadataElement(element);
+ classElement.setType("xsd:string");
+ classElement.setIsAttribute(true);
+ metadata.addClassElement(groupOrClassName, classElement);
+ return true;
+ }
+
+ if (MetadataUtil.hasChildOf(element, XsdElementEnum.simpleType)) {
+ final MetadataElement classElement = new MetadataElement(element);
+ classElement.setType("xsd:string");
classElement.setIsAttribute(true);
metadata.addClassElement(groupOrClassName, classElement);
return true;
diff --git a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/mojo/MetadataParserMojo.java b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/mojo/MetadataParserMojo.java
index 4ce24495..dc2b66f2 100644
--- a/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/mojo/MetadataParserMojo.java
+++ b/metadata-parser/src/main/java/org/jboss/shrinkwrap/descriptor/metadata/mojo/MetadataParserMojo.java
@@ -33,6 +33,7 @@
* @author Ralf Battenfeld
*/
public class MetadataParserMojo extends AbstractMojo {
+
/**
* Path settings used for generating the interfaces and implementation classes.
*
diff --git a/metadata-parser/src/main/resources/META-INF/ddJavaAll.xsl b/metadata-parser/src/main/resources/META-INF/ddJavaAll.xsl
index 0413a4dd..29368fd2 100644
--- a/metadata-parser/src/main/resources/META-INF/ddJavaAll.xsl
+++ b/metadata-parser/src/main/resources/META-INF/ddJavaAll.xsl
@@ -1,5 +1,6 @@
-
+
@@ -17,8 +18,10 @@
+
+
+
-
@@ -48,14 +51,16 @@
javaee:faces-config-renderer-extensionType;
javaee:faces-config-validator-extensionType;
javaee:partial-response-extensionType;
- extensibleType;
+ javaee:extensibleType;
-
+
+
+
@@ -70,8 +75,8 @@
-
-
+
+
@@ -203,7 +208,6 @@
-
@@ -223,7 +227,7 @@
-
+
@@ -234,30 +238,125 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
: :
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- <T>
- extends Child<T>
-
- {
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -293,7 +392,7 @@
-
+
@@ -305,11 +404,11 @@
-
+
-
+
@@ -319,6 +418,313 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+
+
+
+
+
@@ -356,8 +762,8 @@
-
+
@@ -374,12 +780,26 @@
import org.jboss.shrinkwrap.descriptor.api.Descriptor;
import org.jboss.shrinkwrap.descriptor.api.DescriptorNamespace;
-
+
+
+
+
+
+
-
-
{
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -394,7 +814,6 @@
-
@@ -459,10 +878,7 @@
-
-
-
+
@@ -481,6 +897,7 @@
+ import java.util.Map.Entry;
import org.jboss.shrinkwrap.descriptor.api.DescriptorNamespace;
import org.jboss.shrinkwrap.descriptor.spi.node.NodeDescriptorImplBase;
import org.jboss.shrinkwrap.descriptor.impl.base.XMLDate;
@@ -901,7 +1318,7 @@
-
+
@@ -955,39 +1372,39 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1001,17 +1418,21 @@
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
+
+
@@ -1028,24 +1449,25 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1094,11 +1516,26 @@
+
+
+
+
+
+
+
@@ -1107,7 +1544,6 @@
-
@@ -1124,6 +1560,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1177,6 +1675,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1221,7 +1735,7 @@
-
+
@@ -1266,6 +1780,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1851,7 +2383,7 @@
-
+
@@ -1896,7 +2428,12 @@
+
+
+
+
@@ -1904,6 +2441,12 @@
+
+
+
+
+
+
@@ -2761,9 +3304,10 @@
{
-
+
-
+
+
@@ -2780,9 +3324,10 @@
{
-
+
-
+
+
@@ -2944,7 +3489,54 @@
"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3156,7 +3748,7 @@
-
+
@@ -3194,6 +3786,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserTest.java b/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserTest.java
index c116e2d9..224e8acd 100644
--- a/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserTest.java
+++ b/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/MetadataParserTest.java
@@ -1,6 +1,9 @@
package org.jboss.shrinkwrap.descriptor.metadata;
+import static org.junit.Assert.assertTrue;
+
import java.io.BufferedReader;
+import java.io.File;
import java.io.FileReader;
import java.net.URL;
import java.util.ArrayList;
@@ -9,12 +12,13 @@
import junit.framework.Assert;
+import org.jboss.shrinkwrap.descriptor.metadata.dom.DomWriter;
import org.jboss.shrinkwrap.descriptor.test.util.XmlAssert;
import org.junit.Test;
public class MetadataParserTest {
- @Test
+ @Test
public void testParseWithNullArguments() throws Exception {
final MetadataParser parser = new MetadataParser();
boolean isRuntimeExceptionThrown = false;
@@ -25,7 +29,7 @@ public void testParseWithNullArguments() throws Exception {
isRuntimeExceptionThrown = true;
}
- Assert.assertTrue(isRuntimeExceptionThrown);
+ assertTrue(isRuntimeExceptionThrown);
}
@Test
diff --git a/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/PackageInfoTest.java b/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/PackageInfoTest.java
new file mode 100644
index 00000000..f219c200
--- /dev/null
+++ b/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/PackageInfoTest.java
@@ -0,0 +1,40 @@
+package org.jboss.shrinkwrap.descriptor.metadata;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+
+public class PackageInfoTest {
+
+ @Rule
+ public TemporaryFolder folder = new TemporaryFolder();
+
+ @Test
+ public void testCopyAndDeleteHtmlFile() throws IOException {
+ final File packageFile = new File("src/test/resources/package-info-impl.html");
+ PackageInfo.copy(packageFile, folder.getRoot().getAbsolutePath(), true);
+ final File destFile = new File(folder.getRoot().getAbsolutePath() + File.separatorChar + PackageInfo.PACKAGE_HTML_NAME);
+ assertTrue(destFile.exists());
+
+ PackageInfo.deleteExistingPackageInfo(folder.getRoot().getAbsolutePath(), true);
+ assertFalse(destFile.exists());
+ }
+
+ @Test
+ public void testCopyJavaFile() throws IOException {
+ final File packageFile = new File("src/test/resources/package-info-api.java");
+ PackageInfo.copy(packageFile, folder.getRoot().getAbsolutePath(), true);
+ final File destFile = new File(folder.getRoot().getAbsolutePath() + File.separatorChar + PackageInfo.PACKAGE_JAVA_NAME);
+ assertTrue(destFile.exists());
+
+ PackageInfo.deleteExistingPackageInfo(folder.getRoot().getAbsolutePath(), true);
+ assertFalse(destFile.exists());
+ }
+
+}
diff --git a/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/AttributeFilterTestCase.java b/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/AttributeFilterTestCase.java
index 4cd33ec8..accb0a6b 100644
--- a/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/AttributeFilterTestCase.java
+++ b/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/AttributeFilterTestCase.java
@@ -72,7 +72,7 @@ public void testAttributeFilterWithComplexTypeAsParent() throws Exception {
@Test
public void testAttributeFilterWithGlobalDeclaration() throws Exception {
- final boolean isLogging = false;
+ final boolean isLogging = true;
final String xmlFragment =
"" +
" " +
@@ -81,6 +81,7 @@ public void testAttributeFilterWithGlobalDeclaration() throws Exception {
" " +
" " +
" " +
+ " " +
" " +
"";
@@ -96,6 +97,7 @@ public void testAttributeFilterWithGlobalDeclaration() throws Exception {
DomTestUtil.assertClassAttribute(e.get(0), "");
DomTestUtil.assertClassAttribute(e.get(1), "");
DomTestUtil.assertClassAttribute(e.get(2), "");
+ DomTestUtil.assertClassAttribute(e.get(3), "");
}
@Test
@@ -152,4 +154,78 @@ public void testUseDeclaration() throws Exception {
Assert.assertNull(e.get(0).getFixedValue());
}
+ @Test
+ public void testBeansAttributes() throws Exception {
+ final boolean isLogging = false;
+ final String xmlFragment =
+ "" +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ "";
+
+ final Metadata metadata = DomTestUtil.parse(xmlFragment, isLogging);
+ Assert.assertEquals("beans", metadata.getClassList().get(0).getName(), "beans");
+ final List e = metadata.getClassList().get(0).getElements();
+ Assert.assertTrue(e.size() == 6);
+ Assert.assertEquals("version", e.get(4).getName());
+ Assert.assertTrue(e.get(4).getIsAttribute());
+ Assert.assertEquals("bean-discovery-mode", e.get(5).getName());
+ Assert.assertTrue(e.get(5).getIsAttribute());
+ }
+
+ @Test
+ public void testClassAttributeWithClassElement() throws Exception {
+ final boolean isLogging = true;
+ final String xmlFragment =
+ "" +
+ "" +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ "" +
+ "" +
+ "" +
+ "";
+
+ final Metadata metadata = DomTestUtil.parse(xmlFragment, isLogging);
+
+ final List e = metadata.getClassList().get(0).getElements();
+ DomTestUtil.assertClassAttribute(e.get(2), "");
+ DomTestUtil.assertClassAttribute(e.get(3), "");
+ }
}
diff --git a/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/ComplexTypeFilterTestCase.java b/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/ComplexTypeFilterTestCase.java
index 000e1d8b..46528365 100644
--- a/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/ComplexTypeFilterTestCase.java
+++ b/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/ComplexTypeFilterTestCase.java
@@ -32,7 +32,7 @@ public void testComplexTypeFilterStandaloneComplexType() throws Exception {
@Test
public void testComplexTypeFilterWithMixedContent() throws Exception {
- final boolean isLogging = true;
+ final boolean isLogging = false;
final String xmlFragment =
"" +
" " +
diff --git a/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/RestrictionFilterTestCase.java b/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/RestrictionFilterTestCase.java
index 7c2aeec8..937956f1 100644
--- a/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/RestrictionFilterTestCase.java
+++ b/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/RestrictionFilterTestCase.java
@@ -49,4 +49,37 @@ public void testRestrictionBaseFilterWithComplexTypeAsParent() throws Exception
Assert.assertEquals("javaee:string", metadata.getDataTypeList().get(0).getMappedTo(), "javaee:string");
}
-}
+ @Test
+ public void testRestrictionBaseFilterWithComplexTypeAsParentUnbound() throws Exception {
+ final boolean isLogging = true;
+ final String xmlFragment =
+ "" +
+ "" +
+ " " +
+ " " +
+ " " +
+ " " +
+ "" +
+ "" +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " " +
+ "" +
+ "";
+
+ final Metadata metadata = DomTestUtil.parse(xmlFragment, isLogging);
+
+ Assert.assertEquals("executable-validationType", metadata.getClassList().get(0).getName(), "executable-validationType");
+ Assert.assertEquals("default-validated-executable-typesType", metadata.getClassList().get(1).getName(), "default-validated-executable-typesType");
+ }
+}
\ No newline at end of file
diff --git a/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/SimpleContentFilterTestCase.java b/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/SimpleContentFilterTestCase.java
index 095d6fb9..b07e60d6 100644
--- a/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/SimpleContentFilterTestCase.java
+++ b/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/filter/SimpleContentFilterTestCase.java
@@ -7,7 +7,6 @@
import org.jboss.shrinkwrap.descriptor.metadata.DomTestUtil;
import org.jboss.shrinkwrap.descriptor.metadata.Metadata;
import org.jboss.shrinkwrap.descriptor.metadata.MetadataElement;
-import org.junit.Ignore;
import org.junit.Test;
/**
@@ -22,29 +21,26 @@ public class SimpleContentFilterTestCase {
*/
@Test
- @Ignore
public void testSimpleContent() throws Exception {
final boolean isLogging = false;
final String xmlFragment =
"" +
- " " +
- " " +
+ " " +
" " +
- " " +
- " " +
+ " " +
+ " " +
" " +
" " +
- " " +
- " " +
+ " " +
"";
final Metadata metadata = DomTestUtil.parse(xmlFragment, isLogging);
- Assert.assertEquals("shoesize", metadata.getClassList().get(0).getName(), "shoesize");
+ Assert.assertEquals("propertyType", metadata.getClassList().get(0).getName(), "propertyType");
final List e = metadata.getClassList().get(0).getElements();
- DomTestUtil.assertElement(e.get(0), "");
- DomTestUtil.assertClassAttribute(e.get(1), "");
+ DomTestUtil.assertElement(e.get(0), "");
+ DomTestUtil.assertClassAttribute(e.get(1), "");
}
@Test
diff --git a/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/mojo/MetadataParserMojoTest.java b/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/mojo/MetadataParserMojoTest.java
index 43274a85..a4a4463a 100644
--- a/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/mojo/MetadataParserMojoTest.java
+++ b/metadata-parser/src/test/java/org/jboss/shrinkwrap/descriptor/metadata/mojo/MetadataParserMojoTest.java
@@ -54,5 +54,12 @@ public void testConfiguration() throws Exception {
"http://www.w3.org/2001/XMLSchema-instance");
Assert.assertEquals(metadataConf.getNamespaces().getProperty("xsi:schemaLocation"),
"http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd");
+ Assert.assertEquals(metadataConf.getCommon().getPathToCommonApi(), "pathToCommon");
+// Assert.assertTrue(metadataConf.getCommon().getElements().size() == 3);
+// Assert.assertEquals(metadataConf.getCommon().getElements().get(0).getNamespace(), "javaee");
+// Assert.assertEquals(metadataConf.getCommon().getElements().get(0).getName(), "iconType");
+// Assert.assertEquals(metadataConf.getCommon().getElements().get(0).getCommonName(), "IconCommonType");
+
+// myMojo.execute();
}
}
diff --git a/metadata-parser/src/test/resources/mojo-test-harness-pom.xml b/metadata-parser/src/test/resources/mojo-test-harness-pom.xml
index 588e946e..9b8843af 100644
--- a/metadata-parser/src/test/resources/mojo-test-harness-pom.xml
+++ b/metadata-parser/src/test/resources/mojo-test-harness-pom.xml
@@ -44,6 +44,20 @@
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd
+
+ pathToCommon
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/metadata-parser/src/test/resources/package-info-api.java b/metadata-parser/src/test/resources/package-info-api.java
new file mode 100644
index 00000000..ef055513
--- /dev/null
+++ b/metadata-parser/src/test/resources/package-info-api.java
@@ -0,0 +1,5 @@
+ /**
+ * Provides the implementation classes as defined in the schema
+ */
+
+package org.jboss.datasources.api;
diff --git a/metadata-parser/src/test/resources/package-info-impl.html b/metadata-parser/src/test/resources/package-info-impl.html
new file mode 100644
index 00000000..328962b2
--- /dev/null
+++ b/metadata-parser/src/test/resources/package-info-impl.html
@@ -0,0 +1,5 @@
+ /**
+ * Provides the implementation classes as defined in the schema
+ */
+
+package org.jboss.datasources.impl;
diff --git a/pom.xml b/pom.xml
index 0480cdbf..be02d086 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,7 +1,6 @@
-
+
@@ -16,7 +15,7 @@
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
pom
ShrinkWrap Descriptors Aggregator
http://www.jboss.org
@@ -244,7 +243,7 @@
-
+
diff --git a/spi/pom.xml b/spi/pom.xml
index 3c643a2f..db6acb4f 100644
--- a/spi/pom.xml
+++ b/spi/pom.xml
@@ -1,12 +1,11 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/test-util/pom.xml b/test-util/pom.xml
index 77bfd702..7898a15f 100644
--- a/test-util/pom.xml
+++ b/test-util/pom.xml
@@ -1,12 +1,11 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/test/pom.xml b/test/pom.xml
index a8042766..5fd4ff7b 100644
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -1,12 +1,11 @@
-
+
org.jboss.shrinkwrap.descriptors
shrinkwrap-descriptors-parent
- 2.0.0-alpha-5-SNAPSHOT
+ 2.0.0-alpha-7-SNAPSHOT
../pom.xml
diff --git a/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/application7/ApplicationDescriptorTestCase.java b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/application7/ApplicationDescriptorTestCase.java
new file mode 100644
index 00000000..ab3cd63b
--- /dev/null
+++ b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/application7/ApplicationDescriptorTestCase.java
@@ -0,0 +1,225 @@
+package org.jboss.shrinkwrap.descriptor.test.application7;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+
+import org.jboss.shrinkwrap.descriptor.api.Descriptors;
+import org.jboss.shrinkwrap.descriptor.api.application7.ApplicationDescriptor;
+import org.jboss.shrinkwrap.descriptor.test.util.XmlAssert;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class ApplicationDescriptorTestCase {
+
+ @Test
+ public void testImportGeneratedApplicationXml() throws Exception {
+ ApplicationDescriptor app6Descr = create()
+ .addDefaultNamespaces()
+ .version("7")
+ .applicationName("application-name0")
+ .description("description0")
+ .displayName("display-name0")
+ .createIcon()
+ .smallIcon("small-icon0")
+ .largeIcon("large-icon0").up()
+ .initializeInOrder("true")
+ .createModule()
+ .ejb("ejb0")
+ .altDd("alt-dd0").up()
+ .createSecurityRole()
+ .description("description1")
+ .roleName("role-name0").up()
+ .libraryDirectory("library-directory0")
+ .createEnvEntry()
+ .description("description2")
+ .envEntryName("env-entry-name0")
+ .envEntryType("env-entry-type0")
+ .envEntryValue("env-entry-value0")
+ .mappedName("mapped-name0")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class0")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name0").up()
+ .createEjbRef()
+ .description("description3")
+ .ejbRefName("ejb-ref-name0")
+ .ejbRefType("Entity")
+ .home("home0")
+ .remote("remote0")
+ .ejbLink("ejb-link0")
+ .mappedName("mapped-name1")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class1")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name1").up()
+ .createEjbLocalRef()
+ .description("description4")
+ .ejbRefName("ejb-ref-name1")
+ .ejbRefType("Entity")
+ .localHome("local-home0")
+ .local("local0")
+ .ejbLink("ejb-link1")
+ .mappedName("mapped-name2")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class2")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name2").up()
+ .createServiceRef()
+ .description("description5")
+ .displayName("display-name1")
+ .createIcon()
+ .smallIcon("small-icon1")
+ .largeIcon("large-icon1").up()
+ .serviceRefName("service-ref-name0")
+ .serviceInterface("service-interface0")
+ .serviceRefType("service-ref-type0")
+ .wsdlFile("http://www.oxygenxml.com/")
+ .jaxrpcMappingFile("jaxrpc-mapping-file0")
+ .serviceQname("qName")
+ .createPortComponentRef()
+ .serviceEndpointInterface("service-endpoint-interface0")
+ .enableMtom(false)
+ .mtomThreshold(50)
+ .getOrCreateAddressing()
+ .enabled(false)
+ .required(false)
+ .responses("ANONYMOUS").up()
+ .getOrCreateRespectBinding()
+ .enabled(false).up()
+ .portComponentLink("port-component-link0").up()
+ .createHandler()
+ .description("description6")
+ .displayName("display-name2")
+ .createIcon()
+ .smallIcon("small-icon2")
+ .largeIcon("large-icon2").up()
+ .handlerName("handler-name0")
+ .handlerClass("handler-class0")
+ .createInitParam()
+ .description("description7")
+ .paramName("param-name0")
+ .paramValue("param-value0").up()
+ .soapHeader("qName")
+ .soapRole("soap-role0")
+ .portName("port-name0").up()
+ .mappedName("mapped-name3")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class3")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name3").up()
+ .createResourceRef()
+ .description("description8")
+ .resRefName("res-ref-name0")
+ .resType("res-type0")
+ .resAuth("Application")
+ .resSharingScope("Shareable")
+ .mappedName("mapped-name4")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class4")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name4").up()
+ .createResourceEnvRef()
+ .description("description9")
+ .resourceEnvRefName("resource-env-ref-name0")
+ .resourceEnvRefType("resource-env-ref-type0")
+ .mappedName("mapped-name5")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class5")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name5").up()
+ .createMessageDestinationRef()
+ .description("description10")
+ .messageDestinationRefName("message-destination-ref-name0")
+ .messageDestinationType("message-destination-type0")
+ .messageDestinationUsage("Consumes")
+ .messageDestinationLink("message-destination-link0")
+ .mappedName("mapped-name6")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class6")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name6").up()
+ .createPersistenceContextRef()
+ .description("description11")
+ .persistenceContextRefName("persistence-context-ref-name0")
+ .persistenceUnitName("persistence-unit-name0")
+ .persistenceContextType("Transaction")
+ .createPersistenceProperty()
+ .name("name0")
+ .value("value0").up()
+ .mappedName("mapped-name7")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class7")
+ .injectionTargetName("$").up().up()
+ .createPersistenceUnitRef()
+ .description("description12")
+ .persistenceUnitRefName("persistence-unit-ref-name0")
+ .persistenceUnitName("persistence-unit-name1")
+ .mappedName("mapped-name8")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class8")
+ .injectionTargetName("$").up().up()
+ .createMessageDestination()
+ .description("description13")
+ .displayName("display-name3")
+ .createIcon()
+ .smallIcon("small-icon3")
+ .largeIcon("large-icon3").up()
+ .messageDestinationName("message-destination-name0")
+ .mappedName("mapped-name9")
+ .lookupName("lookup-name7").up()
+ .createDataSource()
+ .description("description14")
+ .name("name1")
+ .className("class-name0")
+ .serverName("server-name0")
+ .portNumber(0)
+ .databaseName("database-name0")
+ .url("jdbc::")
+ .user("user0")
+ .password("password0")
+ .createProperty()
+ .name("name2")
+ .value("value1").up()
+ .loginTimeout(0)
+ .transactional(false)
+ .isolationLevel("TRANSACTION_READ_UNCOMMITTED")
+ .initialPoolSize(0)
+ .maxPoolSize(0)
+ .minPoolSize(0)
+ .maxIdleTime(0)
+ .maxStatements(0).up();
+
+ String appXmlOriginal = getResourceContents("src/test/resources/test-gen-application7.xml");
+ String appXmlGenerated = app6Descr.exportAsString();
+
+ XmlAssert.assertIdentical(appXmlOriginal, appXmlGenerated);
+ }
+
+ @Test
+ public void testFixedAttribute() {
+ final ApplicationDescriptor app6Descr = create();
+ app6Descr.version(ApplicationDescriptor.VERSION);
+ Assert.assertEquals(ApplicationDescriptor.VERSION, app6Descr.getVersion());
+ }
+
+ // -------------------------------------------------------------------------------------||
+ // Helper Methods ----------------------------------------------------------------------||
+ // -------------------------------------------------------------------------------------||
+
+ private String getResourceContents(String resource) throws Exception {
+ assert resource != null && resource.length() > 0 : "Resource must be specified";
+ final BufferedReader reader = new BufferedReader(new FileReader(resource));
+ final StringBuilder builder = new StringBuilder();
+ String line;
+ while ((line = reader.readLine()) != null) {
+ builder.append(line);
+ builder.append("\n");
+ }
+ return builder.toString();
+ }
+
+ private ApplicationDescriptor create() {
+ return Descriptors.create(ApplicationDescriptor.class);
+ }
+
+}
diff --git a/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/batch10/BatchDescriptorTestCase.java b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/batch10/BatchDescriptorTestCase.java
new file mode 100644
index 00000000..3034f7b8
--- /dev/null
+++ b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/batch10/BatchDescriptorTestCase.java
@@ -0,0 +1,68 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.shrinkwrap.descriptor.test.batch10;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+
+import org.jboss.shrinkwrap.descriptor.api.Descriptors;
+import org.jboss.shrinkwrap.descriptor.api.batchXML10.BatchXMLDescriptor;
+import org.jboss.shrinkwrap.descriptor.test.util.XmlAssert;
+import org.junit.Test;
+
+/**
+ * Test Case to verify that {@link BeansDescriptor} impl produce the correct XML Descriptor output.
+ *
+ * @author Ralf Battenfeld
+ * @version $Revision: $
+ */
+
+public class BatchDescriptorTestCase {
+
+ @Test
+ public void testGeneratedXml() throws Exception {
+ final BatchXMLDescriptor batchDescr = create()
+ .addDefaultNamespaces()
+ .createRef().id("id1").clazz("class1").up()
+ .createRef().id("id3").clazz("class3").up();
+
+ String webXmlGenerated = batchDescr.exportAsString();
+ String webXmlOriginal = getResourceContents("src/test/resources/test-gen-batch10.xml");
+
+ XmlAssert.assertIdentical(webXmlOriginal, webXmlGenerated);
+ }
+
+ // -------------------------------------------------------------------------------------||
+ // Internal Helper --------------------------------------------------------------------||
+ // -------------------------------------------------------------------------------------||
+
+ private String getResourceContents(String resource) throws Exception {
+ assert resource != null && resource.length() > 0 : "Resource must be specified";
+ final BufferedReader reader = new BufferedReader(new FileReader(resource));
+ final StringBuilder builder = new StringBuilder();
+ String line;
+ while ((line = reader.readLine()) != null) {
+ builder.append(line);
+ builder.append("\n");
+ }
+ return builder.toString();
+ }
+
+ private BatchXMLDescriptor create() {
+ return Descriptors.create(BatchXMLDescriptor.class);
+ }
+}
diff --git a/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/beans11/BeansDescriptorTestCase.java b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/beans11/BeansDescriptorTestCase.java
new file mode 100644
index 00000000..79ff13e9
--- /dev/null
+++ b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/beans11/BeansDescriptorTestCase.java
@@ -0,0 +1,86 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.shrinkwrap.descriptor.test.beans11;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+
+import org.jboss.shrinkwrap.descriptor.api.Descriptors;
+import org.jboss.shrinkwrap.descriptor.api.beans11.BeansDescriptor;
+import org.jboss.shrinkwrap.descriptor.test.util.XmlAssert;
+import org.junit.Test;
+
+/**
+ * Test Case to verify that {@link BeansDescriptor} impl produce the correct XML Descriptor output.
+ *
+ * @author Ralf Battenfeld
+ * @version $Revision: $
+ */
+
+public class BeansDescriptorTestCase {
+
+ @Test
+ public void testGeneratedXml() throws Exception {
+ final BeansDescriptor beansDescr = create()
+ .addDefaultNamespaces()
+ .version("1.1")
+ .beanDiscoveryMode("all")
+ .getOrCreateInterceptors()
+ .clazz("class0")
+ .clazz("class1")
+ .clazz("class2")
+ .clazz("class3")
+ .clazz("class4").up()
+ .getOrCreateDecorators()
+ .clazz("class5")
+ .clazz("class6")
+ .clazz("class7")
+ .clazz("class8")
+ .clazz("class9").up()
+ .getOrCreateAlternatives()
+ .clazz("class10")
+ .clazz("class11")
+ .stereotype("stereotype0")
+ .stereotype("stereotype1")
+ .stereotype("stereotype2").up();
+
+ String webXmlGenerated = beansDescr.exportAsString();
+ String webXmlOriginal = getResourceContents("src/test/resources/test-gen-beans11.xml");
+
+ XmlAssert.assertIdentical(webXmlOriginal, webXmlGenerated);
+ }
+
+ // -------------------------------------------------------------------------------------||
+ // Internal Helper --------------------------------------------------------------------||
+ // -------------------------------------------------------------------------------------||
+
+ private String getResourceContents(String resource) throws Exception {
+ assert resource != null && resource.length() > 0 : "Resource must be specified";
+ final BufferedReader reader = new BufferedReader(new FileReader(resource));
+ final StringBuilder builder = new StringBuilder();
+ String line;
+ while ((line = reader.readLine()) != null) {
+ builder.append(line);
+ builder.append("\n");
+ }
+ return builder.toString();
+ }
+
+ private BeansDescriptor create() {
+ return Descriptors.create(BeansDescriptor.class);
+ }
+}
diff --git a/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/connector17/ConnectorDescriptorTestCase.java b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/connector17/ConnectorDescriptorTestCase.java
new file mode 100644
index 00000000..b3870156
--- /dev/null
+++ b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/connector17/ConnectorDescriptorTestCase.java
@@ -0,0 +1,141 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.shrinkwrap.descriptor.test.connector17;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+
+import junit.framework.Assert;
+
+import org.jboss.shrinkwrap.descriptor.api.Descriptors;
+import org.jboss.shrinkwrap.descriptor.api.connector17.ConnectorDescriptor;
+import org.jboss.shrinkwrap.descriptor.test.util.XmlAssert;
+import org.junit.Test;
+
+public class ConnectorDescriptorTestCase {
+
+ // -------------------------------------------------------------------------------------||
+ // Basic API --------------------------------------------------------------------------||
+ // -------------------------------------------------------------------------------------||
+
+ @Test
+ public void testDefaultName() throws Exception {
+ Assert.assertEquals("ra.xml", create().getDescriptorName());
+ }
+
+ @Test
+ public void testSetName() throws Exception {
+ Assert.assertEquals("test.xml", Descriptors.create(ConnectorDescriptor.class, "test.xml").getDescriptorName());
+ }
+
+ @Test
+ public void testGenExample() throws Exception {
+ ConnectorDescriptor jca16Descr = create()
+ .addDefaultNamespaces()
+ .version("1.7")
+ .moduleName("module-name0")
+ .description("description0")
+ .displayName("display-name0")
+ .getOrCreateIcon()
+ .smallIcon("small-icon0")
+ .largeIcon("large-icon0").up()
+ .vendorName("vendor-name0")
+ .eisType("eis-type0")
+ .resourceadapterVersion("resourceadapter-version0")
+ .getOrCreateLicense()
+ .description("description1")
+ .licenseRequired(false).up()
+ .getOrCreateResourceadapter()
+ .resourceadapterClass("resourceadapter-class0")
+ .createConfigProperty()
+ .description("description2")
+ .configPropertyName("config-property-name0")
+ .configPropertyType("java.lang.Boolean")
+ .configPropertyValue("config-property-value0")
+ .configPropertyIgnore(false)
+ .configPropertySupportsDynamicUpdates(false)
+ .configPropertyConfidential(false).up()
+ .getOrCreateOutboundResourceadapter()
+ .createConnectionDefinition()
+ .managedconnectionfactoryClass("managedconnectionfactory-class0")
+ .createConfigProperty()
+ .description("description3")
+ .configPropertyName("config-property-name1")
+ .configPropertyType("java.lang.Boolean")
+ .configPropertyValue("config-property-value1")
+ .configPropertyIgnore(false)
+ .configPropertySupportsDynamicUpdates(false)
+ .configPropertyConfidential(false).up()
+ .connectionfactoryInterface("connectionfactory-interface0")
+ .connectionfactoryImplClass("connectionfactory-impl-class0")
+ .connectionInterface("connection-interface0")
+ .connectionImplClass("connection-impl-class0").up()
+ .transactionSupport("NoTransaction")
+ .createAuthenticationMechanism()
+ .description("description4")
+ .authenticationMechanismType("authentication-mechanism-type0")
+ .credentialInterface("javax.resource.spi.security.PasswordCredential").up()
+ .reauthenticationSupport(false).up()
+ .getOrCreateInboundResourceadapter()
+ .getOrCreateMessageadapter()
+ .createMessagelistener()
+ .messagelistenerType("messagelistener-type0")
+ .getOrCreateActivationspec()
+ .activationspecClass("activationspec-class0").up().up().up().up()
+ .createAdminobject()
+ .adminobjectInterface("adminobject-interface0")
+ .adminobjectClass("adminobject-class0")
+ .createConfigProperty()
+ .description("description5")
+ .configPropertyName("config-property-name2")
+ .configPropertyType("java.lang.Boolean")
+ .configPropertyValue("config-property-value2")
+ .configPropertyIgnore(false)
+ .configPropertySupportsDynamicUpdates(false)
+ .configPropertyConfidential(false).up().up()
+ .createSecurityPermission()
+ .description("description6")
+ .securityPermissionSpec("security-permission-spec0").up().up()
+ .requiredWorkContext("required-work-context0");
+
+ String createdRaXml = jca16Descr.exportAsString();
+ String generatedRaXml = getResourceContents("src/test/resources/test-gen-connector17.xml");
+
+ XmlAssert.assertIdentical(createdRaXml, generatedRaXml);
+ }
+
+ // -------------------------------------------------------------------------------------||
+ // Internal Helper --------------------------------------------------------------------||
+ // -------------------------------------------------------------------------------------||
+
+ private String getResourceContents(String resource) throws Exception {
+ assert resource != null && resource.length() > 0 : "Resource must be specified";
+ final BufferedReader reader = new BufferedReader(new FileReader(resource));
+ final StringBuilder builder = new StringBuilder();
+ String line;
+ while ((line = reader.readLine()) != null) {
+ builder.append(line);
+ builder.append("\n");
+ }
+ return builder.toString();
+ }
+
+ private ConnectorDescriptor create() {
+ return Descriptors.create(ConnectorDescriptor.class);
+ }
+
+}
diff --git a/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/ejbjar32/EjbJarDescriptorTestCase.java b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/ejbjar32/EjbJarDescriptorTestCase.java
new file mode 100644
index 00000000..9d749897
--- /dev/null
+++ b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/ejbjar32/EjbJarDescriptorTestCase.java
@@ -0,0 +1,557 @@
+package org.jboss.shrinkwrap.descriptor.test.ejbjar32;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.text.SimpleDateFormat;
+import java.util.TimeZone;
+import java.util.logging.Logger;
+
+import org.jboss.shrinkwrap.descriptor.api.Descriptors;
+import org.jboss.shrinkwrap.descriptor.api.ejbjar32.EjbJarDescriptor;
+import org.jboss.shrinkwrap.descriptor.test.util.XmlAssert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class EjbJarDescriptorTestCase {
+ final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD hh:mm:ss");
+
+ /**
+ * Logger
+ */
+ private static final Logger log = Logger.getLogger(EjbJarDescriptorTestCase.class.getName());
+
+ @Before
+ public void init() {
+ sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
+ }
+
+ @Test
+ public void testGeneratedEjbJarXml() throws Exception {
+ EjbJarDescriptor ejbJarGenerated = create()
+ .addDefaultNamespaces()
+ .version("3.2")
+ .moduleName("module-name0")
+ .description("description0")
+ .displayName("display-name0")
+ .createIcon()
+ .smallIcon("small-icon0")
+ .largeIcon("large-icon0").up()
+ .getOrCreateEnterpriseBeans()
+ .createMessageDriven()
+ .description("description1")
+ .displayName("display-name1")
+ .createIcon()
+ .id("iconID1")
+ .smallIcon("small-icon1")
+ .largeIcon("large-icon1").up()
+ .ejbName("ejb-name0")
+ .mappedName("mapped-name0")
+ .ejbClass("ejb-class0")
+ .messagingType("messaging-type0")
+ .getOrCreateTimeoutMethod()
+ .methodName("method-name0")
+ .getOrCreateMethodParams()
+ .methodParam("method-param0").up().up()
+ .createTimer()
+ .description("description2")
+ .getOrCreateSchedule()
+ .second("second0")
+ .minute("minute0")
+ .hour("hour0")
+ .dayOfMonth("day-of-month0")
+ .month("month0")
+ .dayOfWeek("day-of-week0")
+ .year("year0").up()
+// .start(sdf.parse("2006-05-04 18:13:51.0"))
+// .end(sdf.parse("2006-05-04 18:13:51.0"))
+ .getOrCreateTimeoutMethod()
+ .methodName("method-name1")
+ .getOrCreateMethodParams()
+ .methodParam("method-param0").up().up()
+ .persistent(false)
+ .timezone("timezone0")
+ .info("info0").up()
+ .transactionType("Bean")
+ .messageDestinationType("message-destination-type0")
+ .messageDestinationLink("message-destination-link0")
+ .getOrCreateActivationConfig()
+ .description("description3")
+ .createActivationConfigProperty()
+ .activationConfigPropertyName("activation-config-property-name0")
+ .activationConfigPropertyValue("activation-config-property-value0").up().up()
+ .createAroundInvoke()
+ .clazz("class0")
+ .methodName("$").up()
+ .createAroundTimeout()
+ .clazz("class1")
+ .methodName("$").up()
+ .createEnvEntry()
+ .description("description4")
+ .envEntryName("env-entry-name0")
+ .envEntryType("env-entry-type0")
+ .envEntryValue("env-entry-value0")
+ .mappedName("mapped-name1")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class0")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name0").up()
+ .createEjbRef()
+ .description("description5")
+ .ejbRefName("ejb-ref-name0")
+ .ejbRefType("Entity")
+ .home("home0")
+ .remote("remote0")
+ .ejbLink("ejb-link0")
+ .mappedName("mapped-name2")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class1")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name1").up()
+ .createEjbLocalRef()
+ .description("description6")
+ .ejbRefName("ejb-ref-name1")
+ .ejbRefType("Entity")
+ .localHome("local-home0")
+ .local("local0")
+ .ejbLink("ejb-link1")
+ .mappedName("mapped-name3")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class2")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name2").up()
+ .createServiceRef()
+ .description("description7")
+ .displayName("display-name2")
+ .createIcon()
+ .id("iconID2")
+ .smallIcon("small-icon2")
+ .largeIcon("large-icon2").up()
+ .serviceRefName("service-ref-name0")
+ .serviceInterface("service-interface0")
+ .serviceRefType("service-ref-type0")
+ .wsdlFile("http://www.oxygenxml.com/")
+ .jaxrpcMappingFile("jaxrpc-mapping-file0")
+ .serviceQname("qName")
+ .createPortComponentRef()
+ .serviceEndpointInterface("service-endpoint-interface0")
+ .enableMtom(false)
+ .mtomThreshold(50)
+ .getOrCreateAddressing()
+ .enabled(false)
+ .required(false)
+ .responses("ANONYMOUS").up()
+ .getOrCreateRespectBinding()
+ .enabled(false).up()
+ .portComponentLink("port-component-link0").up()
+ .getOrCreateHandlerChains()
+ .createHandlerChain()
+ .protocolBindings("##a ##a http://www.oxygenxml.com/")
+ .createHandler()
+ .handlerName("handler-name0")
+ .handlerClass("handler-class0").up().up().up()
+ .mappedName("mapped-name4")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class3")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name3").up()
+ .createResourceRef()
+ .description("description8")
+ .resRefName("res-ref-name0")
+ .resType("res-type0")
+ .resAuth("Application")
+ .resSharingScope("Shareable")
+ .mappedName("mapped-name5")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class4")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name4").up()
+ .createResourceEnvRef()
+ .description("description9")
+ .resourceEnvRefName("resource-env-ref-name0")
+ .resourceEnvRefType("resource-env-ref-type0")
+ .mappedName("mapped-name6")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class5")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name5").up()
+ .createMessageDestinationRef()
+ .description("description10")
+ .messageDestinationRefName("message-destination-ref-name0")
+ .messageDestinationType("message-destination-type1")
+ .messageDestinationUsage("Consumes")
+ .messageDestinationLink("message-destination-link1")
+ .mappedName("mapped-name7")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class6")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name6").up()
+ .createPersistenceContextRef()
+ .description("description11")
+ .persistenceContextRefName("persistence-context-ref-name0")
+ .persistenceUnitName("persistence-unit-name0")
+ .persistenceContextType("Transaction")
+ .createPersistenceProperty()
+ .name("name0")
+ .value("value0").up()
+ .mappedName("mapped-name8")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class7")
+ .injectionTargetName("$").up().up()
+ .createPersistenceUnitRef()
+ .description("description12")
+ .persistenceUnitRefName("persistence-unit-ref-name0")
+ .persistenceUnitName("persistence-unit-name1")
+ .mappedName("mapped-name9")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class8")
+ .injectionTargetName("$").up().up()
+ .createPostConstruct()
+ .lifecycleCallbackClass("lifecycle-callback-class0")
+ .lifecycleCallbackMethod("$").up()
+ .createPreDestroy()
+ .lifecycleCallbackClass("lifecycle-callback-class1")
+ .lifecycleCallbackMethod("$").up()
+ .createDataSource()
+ .description("description13")
+ .name("name1")
+ .className("class-name0")
+ .serverName("server-name0")
+ .portNumber(0)
+ .databaseName("database-name0")
+ .url("jdbc::")
+ .user("user0")
+ .password("password0")
+ .createProperty()
+ .name("name2")
+ .value("value1").up()
+ .loginTimeout(0)
+ .transactional(false)
+ .isolationLevel("TRANSACTION_READ_UNCOMMITTED")
+ .initialPoolSize(0)
+ .maxPoolSize(0)
+ .minPoolSize(0)
+ .maxIdleTime(0)
+ .maxStatements(0).up()
+ .createSecurityRoleRef()
+ .description("description14")
+ .roleName("role-name0")
+ .roleLink("role-link0").up()
+ .getOrCreateSecurityIdentity()
+ .description("description15")
+ .getOrCreateRunAs()
+ .description("description16")
+ .roleName("role-name1").up().up().up().up()
+ .getOrCreateInterceptors()
+ .description("description17")
+ .createInterceptor()
+ .description("description18")
+ .interceptorClass("interceptor-class0")
+ .createAroundInvoke()
+ .clazz("class2")
+ .methodName("$").up()
+ .createAroundTimeout()
+ .clazz("class3")
+ .methodName("$").up()
+ .createEnvEntry()
+ .description("description19")
+ .envEntryName("env-entry-name1")
+ .envEntryType("env-entry-type1")
+ .envEntryValue("env-entry-value1")
+ .mappedName("mapped-name10")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class9")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name7").up()
+ .createEjbRef()
+ .description("description20")
+ .ejbRefName("ejb-ref-name2")
+ .ejbRefType("Entity")
+ .home("home1")
+ .remote("remote1")
+ .ejbLink("ejb-link2")
+ .mappedName("mapped-name11")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class10")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name8").up()
+ .createEjbLocalRef()
+ .description("description21")
+ .ejbRefName("ejb-ref-name3")
+ .ejbRefType("Entity")
+ .localHome("local-home1")
+ .local("local1")
+ .ejbLink("ejb-link3")
+ .mappedName("mapped-name12")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class11")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name9").up()
+ .createServiceRef()
+ .description("description22")
+ .displayName("display-name3")
+ .createIcon()
+ .smallIcon("small-icon3")
+ .largeIcon("large-icon3").up()
+ .serviceRefName("service-ref-name1")
+ .serviceInterface("service-interface1")
+ .serviceRefType("service-ref-type1")
+ .wsdlFile("http://www.oxygenxml.com/")
+ .jaxrpcMappingFile("jaxrpc-mapping-file1")
+ .serviceQname("qName")
+ .createPortComponentRef()
+ .serviceEndpointInterface("service-endpoint-interface1")
+ .enableMtom(false)
+ .mtomThreshold(50)
+ .getOrCreateAddressing()
+ .enabled(false)
+ .required(false)
+ .responses("ANONYMOUS").up()
+ .getOrCreateRespectBinding()
+ .enabled(false).up()
+ .portComponentLink("port-component-link1").up()
+ .createHandler()
+ .description("description23")
+ .displayName("display-name4")
+ .createIcon()
+ .smallIcon("small-icon1")
+ .largeIcon("large-icon1").up()
+ .handlerName("handler-name1")
+ .handlerClass("handler-class1")
+ .createInitParam()
+ .paramName("param-name0")
+ .paramValue("param-value0").up()
+ .soapHeader("qName")
+ .soapRole("soap-role0")
+ .portName("port-name0").up()
+ .mappedName("mapped-name13")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class12")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name10").up()
+ .createResourceRef()
+ .description("description24")
+ .resRefName("res-ref-name1")
+ .resType("res-type1")
+ .resAuth("Application")
+ .resSharingScope("Shareable")
+ .mappedName("mapped-name14")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class13")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name11").up()
+ .createResourceEnvRef()
+ .description("description25")
+ .resourceEnvRefName("resource-env-ref-name1")
+ .resourceEnvRefType("resource-env-ref-type1")
+ .mappedName("mapped-name15")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class14")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name12").up()
+ .createMessageDestinationRef()
+ .description("description26")
+ .messageDestinationRefName("message-destination-ref-name1")
+ .messageDestinationType("message-destination-type2")
+ .messageDestinationUsage("Consumes")
+ .messageDestinationLink("message-destination-link2")
+ .mappedName("mapped-name16")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class15")
+ .injectionTargetName("$").up()
+ .lookupName("lookup-name13").up()
+ .createPersistenceContextRef()
+ .description("description27")
+ .persistenceContextRefName("persistence-context-ref-name1")
+ .persistenceUnitName("persistence-unit-name2")
+ .persistenceContextType("Transaction")
+ .createPersistenceProperty()
+ .name("name3")
+ .value("value2").up()
+ .mappedName("mapped-name17")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class16")
+ .injectionTargetName("$").up().up()
+ .createPersistenceUnitRef()
+ .description("description28")
+ .persistenceUnitRefName("persistence-unit-ref-name1")
+ .persistenceUnitName("persistence-unit-name3")
+ .mappedName("mapped-name18")
+ .createInjectionTarget()
+ .injectionTargetClass("injection-target-class17")
+ .injectionTargetName("$").up().up()
+ .createPostConstruct()
+ .lifecycleCallbackClass("lifecycle-callback-class2")
+ .lifecycleCallbackMethod("$").up()
+ .createPreDestroy()
+ .lifecycleCallbackClass("lifecycle-callback-class3")
+ .lifecycleCallbackMethod("$").up()
+ .createDataSource()
+ .description("description29")
+ .name("name4")
+ .className("class-name1")
+ .serverName("server-name1")
+ .portNumber(0)
+ .databaseName("database-name1")
+ .url("jdbc::")
+ .user("user1")
+ .password("password1")
+ .createProperty()
+ .name("name5")
+ .value("value3").up()
+ .loginTimeout(0)
+ .transactional(false)
+ .isolationLevel("TRANSACTION_READ_UNCOMMITTED")
+ .initialPoolSize(0)
+ .maxPoolSize(0)
+ .minPoolSize(0)
+ .maxIdleTime(0)
+ .maxStatements(0).up()
+ .createPostActivate()
+ .lifecycleCallbackClass("lifecycle-callback-class4")
+ .lifecycleCallbackMethod("$").up()
+ .createPrePassivate()
+ .lifecycleCallbackClass("lifecycle-callback-class5")
+ .lifecycleCallbackMethod("$").up() .up().up()
+ .getOrCreateRelationships()
+ .description("description30")
+ .createEjbRelation()
+ .description("description31")
+ .ejbRelationName("ejb-relation-name0")
+ .createEjbRelationshipRole()
+ .description("description32")
+ .ejbRelationshipRoleName("ejb-relationship-role-name0")
+ .multiplicity("One")
+ .getOrCreateRelationshipRoleSource()
+ .description("description33")
+ .ejbName("ejb-name1").up()
+ .getOrCreateCmrField()
+ .description("description34")
+ .cmrFieldName("cmr-field-name0")
+ .cmrFieldType("java.util.Collection").up().up()
+ .createEjbRelationshipRole()
+ .description("description35")
+ .ejbRelationshipRoleName("ejb-relationship-role-name1")
+ .multiplicity("One")
+ .cascadeDelete()
+ .getOrCreateRelationshipRoleSource()
+ .description("description36")
+ .ejbName("ejb-name2").up()
+ .getOrCreateCmrField()
+ .description("description37")
+ .cmrFieldName("cmr-field-name1")
+ .cmrFieldType("java.util.Collection").up().up().up().up()
+ .getOrCreateAssemblyDescriptor()
+ .createSecurityRole()
+ .description("description38")
+ .roleName("role-name2").up()
+ .createMethodPermission()
+ .description("description39")
+ .unchecked()
+ .createMethod()
+ .description("description40")
+ .ejbName("ejb-name3")
+ .methodIntf("Home")
+ .methodName("method-name6")
+ .getOrCreateMethodParams()
+ .methodParam("method-param1").up().up().up()
+ .createContainerTransaction()
+ .description("description41")
+ .createMethod()
+ .description("description42")
+ .ejbName("ejb-name4")
+ .methodIntf("Home")
+ .methodName("method-name7")
+ .getOrCreateMethodParams()
+ .methodParam("method-param2").up().up()
+ .transAttribute("NotSupported").up()
+ .createInterceptorBinding()
+ .description("description43")
+ .ejbName("ejb-name5")
+ .interceptorClass("interceptor-class1")
+ .excludeDefaultInterceptors(false)
+ .excludeClassInterceptors(false)
+ .getOrCreateMethod()
+ .methodName("method-name8")
+ .getOrCreateMethodParams()
+ .methodParam("method-param3").up().up().up()
+ .createMessageDestination()
+ .description("description44")
+ .displayName("display-name5")
+ .createIcon()
+ .smallIcon("small-icon4")
+ .largeIcon("large-icon4").up()
+ .messageDestinationName("message-destination-name0")
+ .mappedName("mapped-name19")
+ .lookupName("lookup-name14").up()
+ .getOrCreateExcludeList()
+ .description("description45")
+ .createMethod()
+ .description("description46")
+ .ejbName("ejb-name6")
+ .methodIntf("Home")
+ .methodName("method-name9")
+ .getOrCreateMethodParams()
+ .methodParam("method-param4").up().up().up()
+ .createApplicationException()
+ .exceptionClass("exception-class0")
+ .rollback(false)
+ .inherited(false).up().up()
+ .ejbClientJar("ejb-client-jar0");
+
+ String webXmlGenerated = ejbJarGenerated.exportAsString();
+ String webXmlOriginal = getResourceContents("src/test/resources/test-gen-ejbjar32.xml");
+
+// log.info(webXmlGenerated);
+
+ XmlAssert.assertIdentical(webXmlOriginal, webXmlGenerated);
+ }
+
+ @Test
+ public void testInterceptors() throws Exception {
+ EjbJarDescriptor ejbJarGenerated = create()
+ .addDefaultNamespaces()
+ .version("3.2")
+ .getOrCreateInterceptors()
+ .createInterceptor().interceptorClass(" enterprise.annot_ovd_interceptor_ejb.NullChecker ").up()
+ .up()
+ .getOrCreateAssemblyDescriptor()
+ .createInterceptorBinding()
+ .ejbName("*")
+ .interceptorClass(" enterprise.annot_ovd_interceptor_ejb.NullChecker ")
+ .up()
+ .createInterceptorBinding()
+ .ejbName("StatelessSessionBean")
+ .excludeClassInterceptors(true)
+ .getOrCreateMethod()
+ .methodName("isOddNumber")
+ .up()
+ .up()
+ .up();
+
+ String webXmlGenerated = ejbJarGenerated.exportAsString();
+ String webXmlOriginal = getResourceContents("src/test/resources/test-orig-ejbjar32.xml");
+
+ XmlAssert.assertIdentical(webXmlOriginal, webXmlGenerated);
+ }
+
+ // -------------------------------------------------------------------------------------||
+ // Helper Methods ----------------------------------------------------------------------||
+ // -------------------------------------------------------------------------------------||
+
+ private String getResourceContents(String resource) throws Exception {
+ assert resource != null && resource.length() > 0 : "Resource must be specified";
+ final BufferedReader reader = new BufferedReader(new FileReader(resource));
+ final StringBuilder builder = new StringBuilder();
+ String line;
+ while ((line = reader.readLine()) != null) {
+ builder.append(line);
+ builder.append("\n");
+ }
+ return builder.toString();
+ }
+
+ private EjbJarDescriptor create() {
+ return Descriptors.create(EjbJarDescriptor.class);
+ }
+
+}
diff --git a/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/facesconfig22/FacesConfigDescriptorTestCase.java b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/facesconfig22/FacesConfigDescriptorTestCase.java
new file mode 100644
index 00000000..91c12c64
--- /dev/null
+++ b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/facesconfig22/FacesConfigDescriptorTestCase.java
@@ -0,0 +1,224 @@
+package org.jboss.shrinkwrap.descriptor.test.facesconfig22;
+
+import static org.jboss.shrinkwrap.descriptor.test.util.XmlAssert.assertSchemaLocation;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.FileReader;
+import java.io.InputStream;
+
+import junit.framework.Assert;
+
+import org.jboss.shrinkwrap.descriptor.api.Descriptors;
+import org.jboss.shrinkwrap.descriptor.api.facesconfig22.FacesConfigVersionType;
+import org.jboss.shrinkwrap.descriptor.api.facesconfig22.WebFacesConfigDescriptor;
+import org.jboss.shrinkwrap.descriptor.spi.node.Node;
+import org.jboss.shrinkwrap.descriptor.spi.node.NodeDescriptor;
+import org.jboss.shrinkwrap.descriptor.test.util.XmlAssert;
+import org.junit.Test;
+
+/**
+ * @author kenfinnigan
+ */
+public class FacesConfigDescriptorTestCase {
+
+ private final String source = "" +
+ "\n" +
+ " SeamBooking\n" +
+ " \n" +
+ " *\n" +
+ " \n" +
+ " #{identity.logout}\n" +
+ " #{true}\n" +
+ " /home.xhtml\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " #{bookingAgent.cancel}\n" +
+ " #{true}\n" +
+ " /search.xhtml\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " messages\n" +
+ " messages\n" +
+ " \n" +
+ " \n" +
+ "";
+
+ @Test
+ public void shouldCreateDefaultName() throws Exception {
+ Assert.assertEquals("faces-config.xml", create().getDescriptorName());
+ }
+
+ @Test
+ public void verifySchemaLocation() {
+ final String expectedSchemaLocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd";
+
+ assertSchemaLocation(create().exportAsString(), "http://www.w3.org/2001/XMLSchema-instance",
+ expectedSchemaLocation);
+ }
+
+ @Test
+ public void shouldBeAbleToOverrideVersionInWebFacesConfigDescriptor() throws Exception {
+ // Make a descriptor
+ final WebFacesConfigDescriptor facesConfig = Descriptors.importAs(WebFacesConfigDescriptor.class).fromString(source);
+
+ facesConfig.version("2.2");
+ Assert.assertEquals("2.2", facesConfig.getVersionAsString());
+
+ // Get as Node structure
+ final InputStream stream = new ByteArrayInputStream(facesConfig.exportAsString().getBytes());
+ final WebFacesConfigDescriptor fromFacesConfigXml = Descriptors.importAs(WebFacesConfigDescriptor.class).fromStream(
+ stream);
+ final Node root = ((NodeDescriptor) fromFacesConfigXml).getRootNode();
+
+ // Preconditions
+ Assert.assertEquals("2.2", facesConfig.getVersionAsString());
+ Assert.assertTrue(root.getAttribute("xsi:schemaLocation").contains("web-facesconfig_2_2.xsd"));
+
+ // Change the version
+ facesConfig.version("2.1");
+
+ // Check that everything was updated
+ Assert.assertEquals("2.1", facesConfig.getVersionAsString());
+ }
+
+ @Test
+ public void testGeneratedFacesConfigXml() throws Exception {
+ final WebFacesConfigDescriptor facesConfig = create()
+ .addDefaultNamespaces()
+ .version(FacesConfigVersionType._2_2)
+ .name("SeamBooking")
+ .getOrCreateNavigationRule()
+ .fromViewId("*")
+ .getOrCreateNavigationCase()
+ .fromAction("#{identity.logout}")
+ ._if("#{true}")
+ .toViewId("/home.xhtml")
+ .getOrCreateRedirect()
+ .up()
+ .up()
+ .createNavigationCase()
+ .fromAction("#{bookingAgent.cancel}")
+ ._if("#{true}")
+ .toViewId("/search.xhtml")
+ .getOrCreateRedirect()
+ .up()
+ .up()
+ .up()
+ .createNavigationRule()
+ .fromViewId("/home.xhtml")
+ .getOrCreateNavigationCase()
+ .fromAction("#{identity.login}")
+ ._if("#{identity.loggedIn}")
+ .toViewId("/search.xhtml")
+ .getOrCreateRedirect()
+ .up()
+ .up()
+ .createNavigationCase()
+ .fromAction("#{identity.login}")
+ .fromOutcome("failed")
+ .toViewId("/home.xhtml")
+ .up()
+ .up()
+ .createNavigationRule()
+ .fromViewId("/search.xhtml")
+ .getOrCreateNavigationCase()
+ .fromAction("#{bookingAgent.selectHotel(_hotel)}")
+ ._if("#{bookingAgent.hotelSelection != null}")
+ .toViewId("/hotel.xhtml")
+ .getOrCreateRedirect()
+ .up()
+ .up()
+ .up()
+ .createNavigationRule()
+ .fromViewId("/hotel.xhtml")
+ .getOrCreateNavigationCase()
+ .fromAction("#{bookingAgent.bookHotel}")
+ ._if("#{bookingAgent.booking != null}")
+ .toViewId("/book.xhtml")
+ .getOrCreateRedirect()
+ .up()
+ .up()
+ .up()
+ .createNavigationRule()
+ .fromViewId("/book.xhtml")
+ .getOrCreateNavigationCase()
+ .fromAction("#{bookingAgent.validate}")
+ ._if("#{bookingAgent.bookingValid}")
+ .toViewId("/confirm.xhtml")
+ .getOrCreateRedirect()
+ .up()
+ .up()
+ .up()
+ .createNavigationRule()
+ .fromViewId("/confirm.xhtml")
+ .getOrCreateNavigationCase()
+ .fromAction("#{bookingAgent.confirm}")
+ ._if("#{true}")
+ .toViewId("/search.xhtml")
+ .getOrCreateRedirect()
+ .up()
+ .up()
+ .up()
+ .createNavigationRule()
+ .fromViewId("/register.xhtml")
+ .getOrCreateNavigationCase()
+ .fromAction("#{registrar.register}")
+ ._if("#{registrar.registered}")
+ .toViewId("/home.xhtml")
+ .getOrCreateRedirect()
+ .up()
+ .up()
+ .up()
+ .createNavigationRule()
+ .fromViewId("/password.xhtml")
+ .getOrCreateNavigationCase()
+ .fromAction("#{passwordManager.changePassword}")
+ ._if("#{passwordManager.changed}")
+ .toViewId("/account.xhtml")
+ .getOrCreateRedirect()
+ .up()
+ .up()
+ .up()
+ .getOrCreateApplication()
+ .getOrCreateResourceBundle()
+ .baseName("messages")
+ .var("messages")
+ .up()
+ .up();
+
+ String facesConfigXmlGenerated = facesConfig.exportAsString();
+ String facesConfigXmlOriginal = getResourceContents("src/test/resources/test-orig-facesconfig22.xml");
+
+ XmlAssert.assertIdentical(facesConfigXmlOriginal, facesConfigXmlGenerated);
+ }
+
+ // -------------------------------------------------------------------------------------||
+ // Internal Helper ---------------------------------------------------------------------||
+ // -------------------------------------------------------------------------------------||
+
+ private String getResourceContents(String resource) throws Exception {
+ assert resource != null && resource.length() > 0 : "Resource must be specified";
+ final BufferedReader reader = new BufferedReader(new FileReader(resource));
+ final StringBuilder builder = new StringBuilder();
+ String line;
+ while ((line = reader.readLine()) != null) {
+ builder.append(line);
+ builder.append("\n");
+ }
+ return builder.toString();
+ }
+
+ private WebFacesConfigDescriptor create() {
+ return Descriptors.create(WebFacesConfigDescriptor.class);
+ }
+
+}
diff --git a/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/job10/JobDescriptorTestCase.java b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/job10/JobDescriptorTestCase.java
new file mode 100644
index 00000000..02ad077b
--- /dev/null
+++ b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/job10/JobDescriptorTestCase.java
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.shrinkwrap.descriptor.test.job10;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.util.logging.Logger;
+
+import org.jboss.shrinkwrap.descriptor.api.Descriptors;
+import org.jboss.shrinkwrap.descriptor.api.jobXML10.JobXMLDescriptor;
+import org.jboss.shrinkwrap.descriptor.test.ejbjar32.EjbJarDescriptorTestCase;
+import org.jboss.shrinkwrap.descriptor.test.util.XmlAssert;
+import org.junit.Test;
+
+/**
+ * Test Case to verify that {@link BeansDescriptor} impl produce the correct XML Descriptor output.
+ *
+ * @author Ralf Battenfeld
+ * @version $Revision: $
+ */
+
+public class JobDescriptorTestCase {
+
+ private static final Logger log = Logger.getLogger(JobDescriptorTestCase.class.getName());
+
+ @Test
+ public void testGeneratedXml() throws Exception {
+ final JobXMLDescriptor batchDescr = create()
+ .addDefaultNamespaces()
+ .id("simple-batchlet-job")
+ .version("1.0")
+ .createStep().id("batchlet-step")
+ .getOrCreateBatchlet().ref("co.uk.planetjones.HelloWorldBatchlet").up()
+ .up();
+
+ String webXmlGenerated = batchDescr.exportAsString();
+ String webXmlOriginal = getResourceContents("src/test/resources/test-gen-job10.xml");
+
+ log.info(webXmlGenerated);
+ log.info(webXmlOriginal);
+
+ XmlAssert.assertIdentical(webXmlOriginal, webXmlGenerated);
+ }
+
+ // -------------------------------------------------------------------------------------||
+ // Internal Helper --------------------------------------------------------------------||
+ // -------------------------------------------------------------------------------------||
+
+ private String getResourceContents(String resource) throws Exception {
+ assert resource != null && resource.length() > 0 : "Resource must be specified";
+ final BufferedReader reader = new BufferedReader(new FileReader(resource));
+ final StringBuilder builder = new StringBuilder();
+ String line;
+ while ((line = reader.readLine()) != null) {
+ builder.append(line);
+ builder.append("\n");
+ }
+ return builder.toString();
+ }
+
+ private JobXMLDescriptor create() {
+ return Descriptors.create(JobXMLDescriptor.class);
+ }
+}
diff --git a/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/permissions7/PermissionsDescriptorTestCase.java b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/permissions7/PermissionsDescriptorTestCase.java
new file mode 100644
index 00000000..f0ef9ca8
--- /dev/null
+++ b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/permissions7/PermissionsDescriptorTestCase.java
@@ -0,0 +1,68 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.shrinkwrap.descriptor.test.permissions7;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+
+import org.jboss.shrinkwrap.descriptor.api.Descriptors;
+import org.jboss.shrinkwrap.descriptor.api.permissions7.PermissionsDescriptor;
+import org.jboss.shrinkwrap.descriptor.test.util.XmlAssert;
+import org.junit.Test;
+
+/**
+ * Test Case to verify that {@link BeansDescriptor} impl produce the correct XML Descriptor output.
+ *
+ * @author Ralf Battenfeld
+ * @version $Revision: $
+ */
+
+public class PermissionsDescriptorTestCase {
+
+ @Test
+ public void testGeneratedXml() throws Exception {
+ final PermissionsDescriptor permissionsDescr = create()
+ .version("7")
+ .createPermission().className("java.io.FilePermission").name("/tmp/abc").actions("read,write").up()
+ .createPermission().className("java.lang.RuntimePermission").name("createClassLoader").up();
+
+ String webXmlGenerated = permissionsDescr.exportAsString();
+ String webXmlOriginal = getResourceContents("src/test/resources/test-gen-permissions7.xml");
+
+ XmlAssert.assertIdentical(webXmlOriginal, webXmlGenerated);
+ }
+
+ // -------------------------------------------------------------------------------------||
+ // Internal Helper --------------------------------------------------------------------||
+ // -------------------------------------------------------------------------------------||
+
+ private String getResourceContents(String resource) throws Exception {
+ assert resource != null && resource.length() > 0 : "Resource must be specified";
+ final BufferedReader reader = new BufferedReader(new FileReader(resource));
+ final StringBuilder builder = new StringBuilder();
+ String line;
+ while ((line = reader.readLine()) != null) {
+ builder.append(line);
+ builder.append("\n");
+ }
+ return builder.toString();
+ }
+
+ private PermissionsDescriptor create() {
+ return Descriptors.create(PermissionsDescriptor.class);
+ }
+}
diff --git a/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/persistence/PersistenceCommonDescriptorTestCase.java b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/persistence/PersistenceCommonDescriptorTestCase.java
new file mode 100644
index 00000000..a4e8d06a
--- /dev/null
+++ b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/persistence/PersistenceCommonDescriptorTestCase.java
@@ -0,0 +1,57 @@
+package org.jboss.shrinkwrap.descriptor.test.persistence;
+
+import org.jboss.shrinkwrap.descriptor.api.Descriptors;
+import org.jboss.shrinkwrap.descriptor.api.persistence.PersistenceCommonDescriptor;
+import org.jboss.shrinkwrap.descriptor.api.persistence10.PersistenceDescriptor;
+import org.junit.Test;
+
+public class PersistenceCommonDescriptorTestCase {
+
+ @Test
+ public void testPersistenceCommonDescriptorAPI() throws Exception {
+ final PersistenceCommonDescriptor persistence = (PersistenceCommonDescriptor)create()
+ .version("1.0")
+ .createPersistenceUnit()
+ .name("name1")
+ .description("description0")
+ .provider("provider0")
+ .jtaDataSource("jta-data-source0")
+ .nonJtaDataSource("non-jta-data-source0")
+ .mappingFile("mapping-file0")
+ .mappingFile("mapping-file1")
+ .jarFile("jar-file0")
+ .jarFile("jar-file1")
+ .clazz("class0")
+ .clazz("class1")
+ .excludeUnlistedClasses(true)
+ .transactionType("")
+ .up();
+
+ persistence.getOrCreatePersistenceUnit().getOrCreateProperties()
+ .createProperty().name("name3").value("value1").up();
+
+
+ persistence.getOrCreatePersistenceUnit()
+ .name("name7")
+ .description("description1")
+ .provider("provider1")
+ .jtaDataSource("jta-data-source1")
+ .nonJtaDataSource("non-jta-data-source1")
+ .mappingFile("mapping-file2")
+ .mappingFile("mapping-file3")
+ .jarFile("jar-file2")
+ .jarFile("jar-file3")
+ .clazz("class2")
+ .clazz("class3")
+ .excludeUnlistedClasses(false)
+ .up();
+ }
+
+ // -------------------------------------------------------------------------------------||
+ // Internal Helper ---------------------------------------------------------------------||
+ // -------------------------------------------------------------------------------------||
+
+ private PersistenceCommonDescriptor create() {
+ return Descriptors.create(PersistenceDescriptor.class);
+ }
+}
diff --git a/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/persistence21/PersistenceDescriptorTestCase.java b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/persistence21/PersistenceDescriptorTestCase.java
new file mode 100644
index 00000000..a6fc68b4
--- /dev/null
+++ b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/persistence21/PersistenceDescriptorTestCase.java
@@ -0,0 +1,84 @@
+package org.jboss.shrinkwrap.descriptor.test.persistence21;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+
+import org.jboss.shrinkwrap.descriptor.api.Descriptors;
+import org.jboss.shrinkwrap.descriptor.api.persistence21.PersistenceDescriptor;
+import org.jboss.shrinkwrap.descriptor.test.util.XmlAssert;
+import org.junit.Test;
+
+public class PersistenceDescriptorTestCase {
+
+ @Test
+ public void testGeneratedPersistenceXml() throws Exception {
+ final PersistenceDescriptor persistence = create()
+ .addDefaultNamespaces()
+ .version("2.1")
+ .createPersistenceUnit()
+ .name("name1")
+ .transactionType("JTA")
+ .description("description0")
+ .provider("provider0")
+ .jtaDataSource("jta-data-source0")
+ .nonJtaDataSource("non-jta-data-source0")
+ .mappingFile("mapping-file0")
+ .mappingFile("mapping-file1")
+ .jarFile("jar-file0")
+ .jarFile("jar-file1")
+ .clazz("class0")
+ .clazz("class1")
+ .excludeUnlistedClasses(true)
+ .sharedCacheMode("ALL")
+ .validationMode("AUTO")
+ .getOrCreateProperties()
+ .createProperty().name("name3").value("value1").up()
+ .createProperty().name("name5").value("value3").up()
+ .up().up()
+ .createPersistenceUnit()
+ .name("name7")
+ .transactionType("JTA")
+ .description("description1")
+ .provider("provider1")
+ .jtaDataSource("jta-data-source1")
+ .nonJtaDataSource("non-jta-data-source1")
+ .mappingFile("mapping-file2")
+ .mappingFile("mapping-file3")
+ .jarFile("jar-file2")
+ .jarFile("jar-file3")
+ .clazz("class2")
+ .clazz("class3")
+ .excludeUnlistedClasses(true)
+ .sharedCacheMode("ALL")
+ .validationMode("AUTO")
+ .getOrCreateProperties()
+ .createProperty().name("name9").value("value5").up()
+ .createProperty().name("name11").value("value7").up()
+ .up().up();
+
+ String webXmlGenerated = persistence.exportAsString();
+ String webXmlOriginal = getResourceContents("src/test/resources/test-gen-persistence21.xml");
+
+ XmlAssert.assertIdentical(webXmlOriginal, webXmlGenerated);
+ }
+
+ // -------------------------------------------------------------------------------------||
+ // Internal Helper ---------------------------------------------------------------------||
+ // -------------------------------------------------------------------------------------||
+
+ private String getResourceContents(String resource) throws Exception {
+ assert resource != null && resource.length() > 0 : "Resource must be specified";
+ final BufferedReader reader = new BufferedReader(new FileReader(resource));
+ final StringBuilder builder = new StringBuilder();
+ String line;
+ while ((line = reader.readLine()) != null) {
+ builder.append(line);
+ builder.append("\n");
+ }
+ return builder.toString();
+ }
+
+ private PersistenceDescriptor create() {
+ return Descriptors.create(PersistenceDescriptor.class);
+ }
+}
diff --git a/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/validationConfiguration11/ValidationConfigurationDescriptorTestCase.java b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/validationConfiguration11/ValidationConfigurationDescriptorTestCase.java
new file mode 100644
index 00000000..9fdc7fc1
--- /dev/null
+++ b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/validationConfiguration11/ValidationConfigurationDescriptorTestCase.java
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.shrinkwrap.descriptor.test.validationConfiguration11;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+
+import org.jboss.shrinkwrap.descriptor.api.Descriptors;
+import org.jboss.shrinkwrap.descriptor.api.beans11.BeansDescriptor;
+import org.jboss.shrinkwrap.descriptor.api.validationConfiguration11.ValidationConfigurationDescriptor;
+import org.jboss.shrinkwrap.descriptor.test.util.XmlAssert;
+import org.junit.Test;
+
+/**
+ * Test Case to verify that {@link BeansDescriptor} impl produce the correct XML Descriptor output.
+ *
+ * @author Ralf Battenfeld
+ * @version $Revision: $
+ */
+
+public class ValidationConfigurationDescriptorTestCase {
+
+ @Test
+ public void testGeneratedXml() throws Exception {
+ final ValidationConfigurationDescriptor validationConfDescr = create()
+ .addDefaultNamespaces()
+ .version("1.1")
+ .defaultProvider("default-provider0")
+ .messageInterpolator("message-interpolator0")
+ .traversableResolver("traversable-resolver0")
+ .constraintValidatorFactory("constraint-validator-factory0")
+ .parameterNameProvider("parameter-name-provider0")
+ .getOrCreateExecutableValidation()
+ .enabled(true)
+ .getOrCreateDefaultValidatedExecutableTypes()
+ .executableType("NONE", "NONE", "NONE").up()
+ .up()
+ .constraintMapping("constraint-mapping0")
+ .constraintMapping("constraint-mapping1")
+ .constraintMapping("constraint-mapping2")
+ .createProperty().name("name1").text("property0").up()
+ .createProperty().name("name3").text("property1").up()
+ .createProperty().name("name5").text("property2").up();
+
+ String xmlGenerated = validationConfDescr.exportAsString();
+ String xmlOriginal = getResourceContents("src/test/resources/test-gen-validation-configuration11.xml");
+
+ XmlAssert.assertIdentical(xmlOriginal, xmlGenerated);
+ }
+
+ // -------------------------------------------------------------------------------------||
+ // Internal Helper --------------------------------------------------------------------||
+ // -------------------------------------------------------------------------------------||
+
+ private String getResourceContents(String resource) throws Exception {
+ assert resource != null && resource.length() > 0 : "Resource must be specified";
+ final BufferedReader reader = new BufferedReader(new FileReader(resource));
+ final StringBuilder builder = new StringBuilder();
+ String line;
+ while ((line = reader.readLine()) != null) {
+ builder.append(line);
+ builder.append("\n");
+ }
+ return builder.toString();
+ }
+
+ private ValidationConfigurationDescriptor create() {
+ return Descriptors.create(ValidationConfigurationDescriptor.class);
+ }
+}
diff --git a/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/webapp31/WebAppDescriptorTestCase.java b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/webapp31/WebAppDescriptorTestCase.java
new file mode 100644
index 00000000..cead4b1c
--- /dev/null
+++ b/test/src/test/java/org/jboss/shrinkwrap/descriptor/test/webapp31/WebAppDescriptorTestCase.java
@@ -0,0 +1,194 @@
+package org.jboss.shrinkwrap.descriptor.test.webapp31;
+
+import static org.jboss.shrinkwrap.descriptor.test.util.XmlAssert.*;
+
+import static org.junit.Assert.assertTrue;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.List;
+import java.util.logging.Logger;
+
+import junit.framework.Assert;
+
+import org.jboss.shrinkwrap.descriptor.api.Descriptors;
+import org.jboss.shrinkwrap.descriptor.api.javaee7.IconType;
+import org.jboss.shrinkwrap.descriptor.api.webapp31.WebAppDescriptor;
+import org.jboss.shrinkwrap.descriptor.api.webcommon31.FilterType;
+import org.jboss.shrinkwrap.descriptor.api.webcommon31.TrackingModeType;
+import org.jboss.shrinkwrap.descriptor.spi.node.Node;
+import org.jboss.shrinkwrap.descriptor.spi.node.NodeDescriptor;
+import org.junit.Test;
+
+public class WebAppDescriptorTestCase {
+
+ private final Logger log = Logger.getLogger(WebAppDescriptorTestCase.class.getName());
+
+ private final String source = "" +
+ "\n" +
+ " \n" +
+ " UrlRewriteFilter\n" +
+ " org.tuckey.web.filters.urlrewrite.UrlRewriteFilter\n" +
+ " \n" +
+ " \n" +
+ " /*\n" +
+ " UrlRewriteFilter\n" +
+ " \n" +
+ "";
+
+ @Test
+ public void shouldCreateDefaultName() throws Exception {
+ Assert.assertEquals("web.xml", create().getDescriptorName());
+ }
+
+ @Test
+ public void shouldBeAbleToSetName() throws Exception {
+ Assert.assertEquals("test.xml", Descriptors.create(WebAppDescriptor.class, "test.xml").getDescriptorName());
+ }
+
+ /**
+ * Ensures that the root element has xsi:schemaLocation w/ correct value SHRINKDESC-36
+ */
+ @Test
+ public void verifySchemaLocation() {
+ final String expectedSchemaLocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd";
+
+ assertSchemaLocation(create().exportAsString(), "http://www.w3.org/2001/XMLSchema-instance",
+ expectedSchemaLocation);
+ }
+
+ @Test
+ public void shouldBeAbleToDetermineDefaultFilterName() throws Exception {
+ String name = "PrettyFilter";
+ String clazz = "com.ocpsoft.pretty." + name;
+ String mapping = "/*";
+
+ String desc = create().createFilter().filterClass(clazz).filterName(name).up().createFilterMapping()
+ .filterName(name).urlPattern(mapping).up().exportAsString();
+
+ log.fine(desc);
+
+ assertPresenceUsingXPath(desc, "/web-app/filter/filter-name", name);
+ assertPresenceUsingXPath(desc, "/web-app/filter/filter-class", clazz);
+ assertPresenceUsingXPath(desc, "/web-app/filter-mapping/filter-name", name);
+ assertPresenceUsingXPath(desc, "/web-app/filter-mapping/url-pattern", mapping);
+ }
+
+ @Test
+ public void shouldBeAbleToSetWelcomeFiles() throws Exception {
+ String desc = create().createWelcomeFileList().welcomeFile("WelcomeFile1").welcomeFile("WelcomeFile2").up()
+ .exportAsString();
+
+ log.fine(desc);
+
+ assertPresenceUsingXPath(desc, "/web-app/welcome-file-list/welcome-file[1]", "WelcomeFile1");
+ assertPresenceUsingXPath(desc, "/web-app/welcome-file-list/welcome-file[2]", "WelcomeFile2");
+ }
+
+ @Test
+ public void shouldBeAbleToGetFilterIcons() throws Exception {
+ WebAppDescriptor web = create().createFilter().createIcon().smallIcon("small1").largeIcon("large1").up()
+ .createIcon().smallIcon("small2").largeIcon("large2").up().up();
+
+ List>> list = web.getAllFilter().get(0).getAllIcon();
+ assertTrue(list.size() == 2);
+ for (IconType> icon : list) {
+ assertTrue(icon.getSmallIcon().startsWith("small"));
+ assertTrue(icon.getLargeIcon().startsWith("large"));
+ }
+
+ }
+
+ @Test
+ public void shouldBeAbleToDetermineDefaultServletName() throws Exception {
+ String name = "FacesServlet";
+ String clazz = "javax.faces.webapp." + name;
+ String mapping = "/*";
+
+ String desc = create().createServlet().servletClass(clazz).servletName(name).up().createServletMapping()
+ .servletName(name).urlPattern(mapping).up().exportAsString();
+
+ log.fine(desc);
+
+ assertPresenceUsingXPath(desc, "/web-app/servlet/servlet-name", name);
+ assertPresenceUsingXPath(desc, "/web-app/servlet/servlet-class", clazz);
+ assertPresenceUsingXPath(desc, "/web-app/servlet-mapping/servlet-name", name);
+ assertPresenceUsingXPath(desc, "/web-app/servlet-mapping/url-pattern", mapping);
+ }
+
+ @Test
+ public void shouldBeAbleToSetRootAttributes() throws Exception {
+ String version = "2.5";
+
+ String desc = create().version(version).metadataComplete(true).exportAsString();
+
+ log.fine(desc);
+
+ assertPresenceUsingXPath(desc, "/web-app/@version", version);
+ assertPresenceUsingXPath(desc, "/web-app/@metadata-complete", "true");
+ }
+
+ @Test
+ public void shouldBeAbleToCreateSessionCookieConfig() throws Exception {
+ String name = "SESSIONID";
+ String domain = "example.com";
+ String path = "/";
+ int timeout = 3600;
+ int maxAge = 3600;
+
+ String desc = create().createSessionConfig().sessionTimeout(timeout).getOrCreateCookieConfig().name(name)
+ .domain(domain).path(path).maxAge(maxAge).up().trackingMode(TrackingModeType._COOKIE.name()).up()
+ .exportAsString();
+
+ log.fine(desc);
+
+ assertPresenceUsingXPath(desc, "/web-app/session-config/session-timeout", timeout);
+ assertPresenceUsingXPath(desc, "/web-app/session-config/cookie-config/name", name);
+ assertPresenceUsingXPath(desc, "/web-app/session-config/cookie-config/domain", domain);
+ assertPresenceUsingXPath(desc, "/web-app/session-config/cookie-config/path", path);
+ assertPresenceUsingXPath(desc, "/web-app/session-config/cookie-config/max-age", maxAge);
+ assertPresenceUsingXPath(desc, "/web-app/session-config/tracking-mode", TrackingModeType._COOKIE.name());
+ }
+
+ /**
+ * SHRINKDESC-37
+ */
+ @Test
+ public void shouldBeAbleToOverrideVersionInWebAppDescriptor() throws Exception {
+ // Make a descriptor
+ final WebAppDescriptor web = Descriptors.importAs(WebAppDescriptor.class).fromString(source);
+
+ web.version("3.1");
+ Assert.assertEquals("3.1", web.getVersionAsString());
+
+ // Get as Node structure
+ final InputStream stream = new ByteArrayInputStream(web.exportAsString().getBytes());
+ final WebAppDescriptor fromWebXml = Descriptors.importAs(WebAppDescriptor.class).fromStream(stream);
+ final Node root = ((NodeDescriptor) fromWebXml).getRootNode();
+
+ // Preconditions
+ Assert.assertEquals("3.1", web.getVersionAsString());
+ Assert.assertTrue(root.getAttribute("xsi:schemaLocation").contains("web-app_3_1.xsd"));
+
+ // Change the version
+ web.version("2.5");
+
+ // Check that everything was updated
+ Assert.assertEquals("2.5", web.getVersionAsString());
+
+ // Log just for fun
+ // log.info("web.xml after update: " + web.exportAsString());
+ }
+
+ // -------------------------------------------------------------------------------------||
+ // Helper Methods ----------------------------------------------------------------------||
+ // -------------------------------------------------------------------------------------||
+
+ private WebAppDescriptor create() {
+ return Descriptors.create(WebAppDescriptor.class);
+ }
+}
diff --git a/test/src/test/resources/test-gen-application7.xml b/test/src/test/resources/test-gen-application7.xml
new file mode 100644
index 00000000..b3845fd7
--- /dev/null
+++ b/test/src/test/resources/test-gen-application7.xml
@@ -0,0 +1,210 @@
+
+
+ application-name0
+ description0
+ display-name0
+
+ small-icon0
+ large-icon0
+
+ true
+
+ ejb0
+ alt-dd0
+
+
+ description1
+ role-name0
+
+ library-directory0
+
+ description2
+ env-entry-name0
+ env-entry-type0
+ env-entry-value0
+ mapped-name0
+
+ injection-target-class0
+ $
+
+ lookup-name0
+
+
+ description3
+ ejb-ref-name0
+ Entity
+ home0
+ remote0
+ ejb-link0
+ mapped-name1
+
+ injection-target-class1
+ $
+
+ lookup-name1
+
+
+ description4
+ ejb-ref-name1
+ Entity
+ local-home0
+ local0
+ ejb-link1
+ mapped-name2
+
+ injection-target-class2
+ $
+
+ lookup-name2
+
+
+ description5
+ display-name1
+
+ small-icon1
+ large-icon1
+
+ service-ref-name0
+ service-interface0
+ service-ref-type0
+ http://www.oxygenxml.com/
+ jaxrpc-mapping-file0
+ qName
+
+ service-endpoint-interface0
+ false
+ 50
+
+ false
+ false
+ ANONYMOUS
+
+
+ false
+
+ port-component-link0
+
+
+ description6
+ display-name2
+
+ small-icon2
+ large-icon2
+
+ handler-name0
+ handler-class0
+
+ description7
+ param-name0
+ param-value0
+
+ qName
+ soap-role0
+ port-name0
+
+ mapped-name3
+
+ injection-target-class3
+ $
+
+ lookup-name3
+
+
+ description8
+ res-ref-name0
+ res-type0
+ Application
+ Shareable
+ mapped-name4
+
+ injection-target-class4
+ $
+
+ lookup-name4
+
+
+ description9
+ resource-env-ref-name0
+ resource-env-ref-type0
+ mapped-name5
+
+ injection-target-class5
+ $
+
+ lookup-name5
+
+
+ description10
+ message-destination-ref-name0
+ message-destination-type0
+ Consumes
+ message-destination-link0
+ mapped-name6
+
+ injection-target-class6
+ $
+
+ lookup-name6
+
+
+ description11
+ persistence-context-ref-name0
+ persistence-unit-name0
+ Transaction
+
+ name0
+ value0
+
+ mapped-name7
+
+ injection-target-class7
+ $
+
+
+
+ description12
+ persistence-unit-ref-name0
+ persistence-unit-name1
+ mapped-name8
+
+ injection-target-class8
+ $
+
+
+
+ description13
+ display-name3
+
+ small-icon3
+ large-icon3
+
+ message-destination-name0
+ mapped-name9
+ lookup-name7
+
+
+ description14
+ name1
+ class-name0
+ server-name0
+ 0
+ database-name0
+ jdbc::
+ user0
+ password0
+
+ name2
+ value1
+
+ 0
+ false
+ TRANSACTION_READ_UNCOMMITTED
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
diff --git a/test/src/test/resources/test-gen-batch10.xml b/test/src/test/resources/test-gen-batch10.xml
new file mode 100644
index 00000000..08bdb0de
--- /dev/null
+++ b/test/src/test/resources/test-gen-batch10.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/test/src/test/resources/test-gen-beans11.xml b/test/src/test/resources/test-gen-beans11.xml
new file mode 100644
index 00000000..cccdc452
--- /dev/null
+++ b/test/src/test/resources/test-gen-beans11.xml
@@ -0,0 +1,31 @@
+
+
+
+
+ class0
+ class1
+ class2
+ class3
+ class4
+
+
+
+ class5
+ class6
+ class7
+ class8
+ class9
+
+
+
+ class10
+ class11
+ stereotype0
+ stereotype1
+ stereotype2
+
+
+
diff --git a/test/src/test/resources/test-gen-connector17.xml b/test/src/test/resources/test-gen-connector17.xml
new file mode 100644
index 00000000..b19c7617
--- /dev/null
+++ b/test/src/test/resources/test-gen-connector17.xml
@@ -0,0 +1,84 @@
+
+
+ module-name0
+ description0
+ display-name0
+
+ small-icon0
+ large-icon0
+
+ vendor-name0
+ eis-type0
+ resourceadapter-version0
+
+ description1
+ false
+
+
+ resourceadapter-class0
+
+ description2
+ config-property-name0
+ java.lang.Boolean
+ config-property-value0
+ false
+ false
+ false
+
+
+
+ managedconnectionfactory-class0
+
+ description3
+ config-property-name1
+ java.lang.Boolean
+ config-property-value1
+ false
+ false
+ false
+
+ connectionfactory-interface0
+ connectionfactory-impl-class0
+ connection-interface0
+ connection-impl-class0
+
+ NoTransaction
+
+ description4
+ authentication-mechanism-type0
+ javax.resource.spi.security.PasswordCredential
+
+ false
+
+
+
+
+ messagelistener-type0
+
+ activationspec-class0
+
+
+
+
+
+ adminobject-interface0
+ adminobject-class0
+
+ description5
+ config-property-name2
+ java.lang.Boolean
+ config-property-value2
+ false
+ false
+ false
+
+
+
+ description6
+ security-permission-spec0
+
+
+ required-work-context0
+
diff --git a/test/src/test/resources/test-gen-ejbjar32.xml b/test/src/test/resources/test-gen-ejbjar32.xml
new file mode 100644
index 00000000..86d89d17
--- /dev/null
+++ b/test/src/test/resources/test-gen-ejbjar32.xml
@@ -0,0 +1,578 @@
+
+
+ module-name0
+ description0
+ display-name0
+
+ small-icon0
+ large-icon0
+
+
+
+ description1
+ display-name1
+
+ small-icon1
+ large-icon1
+
+ ejb-name0
+ mapped-name0
+ ejb-class0
+ messaging-type0
+
+ method-name0
+
+ method-param0
+
+
+
+ description2
+
+ second0
+ minute0
+ hour0
+ day-of-month0
+ month0
+ day-of-week0
+ year0
+
+
+
+ method-name1
+
+ method-param0
+
+
+ false
+ timezone0
+ info0
+
+ Bean
+ message-destination-type0
+ message-destination-link0
+
+ description3
+
+ activation-config-property-name0
+ activation-config-property-value0
+
+
+
+ class0
+ $
+
+
+ class1
+ $
+
+
+ description4
+ env-entry-name0
+ env-entry-type0
+ env-entry-value0
+ mapped-name1
+
+ injection-target-class0
+ $
+
+ lookup-name0
+
+
+ description5
+ ejb-ref-name0
+ Entity
+ home0
+ remote0
+ ejb-link0
+ mapped-name2
+
+ injection-target-class1
+ $
+
+ lookup-name1
+
+
+ description6
+ ejb-ref-name1
+ Entity
+ local-home0
+ local0
+ ejb-link1
+ mapped-name3
+
+ injection-target-class2
+ $
+
+ lookup-name2
+
+
+ description7
+ display-name2
+
+ small-icon2
+ large-icon2
+
+ service-ref-name0
+ service-interface0
+ service-ref-type0
+ http://www.oxygenxml.com/
+ jaxrpc-mapping-file0
+ qName
+
+ service-endpoint-interface0
+ false
+ 50
+
+ false
+ false
+ ANONYMOUS
+
+
+ false
+
+ port-component-link0
+
+
+
+ ##a ##a http://www.oxygenxml.com/
+
+ handler-name0
+ handler-class0
+
+
+
+ mapped-name4
+
+ injection-target-class3
+ $
+
+ lookup-name3
+
+
+ description8
+ res-ref-name0
+ res-type0
+ Application
+ Shareable
+ mapped-name5
+
+ injection-target-class4
+ $
+
+ lookup-name4
+
+
+ description9
+ resource-env-ref-name0
+ resource-env-ref-type0
+ mapped-name6
+
+ injection-target-class5
+ $
+
+ lookup-name5
+
+
+ description10
+ message-destination-ref-name0
+ message-destination-type1
+ Consumes
+ message-destination-link1
+ mapped-name7
+
+ injection-target-class6
+ $
+
+ lookup-name6
+
+
+ description11
+ persistence-context-ref-name0
+ persistence-unit-name0
+ Transaction
+
+ name0
+ value0
+
+ mapped-name8
+
+ injection-target-class7
+ $
+
+
+
+ description12
+ persistence-unit-ref-name0
+ persistence-unit-name1
+ mapped-name9
+
+ injection-target-class8
+ $
+
+
+
+ lifecycle-callback-class0
+ $
+
+
+ lifecycle-callback-class1
+ $
+
+
+ description13
+ name1
+ class-name0
+ server-name0
+ 0
+ database-name0
+ jdbc::
+ user0
+ password0
+
+ name2
+ value1
+
+ 0
+ false
+ TRANSACTION_READ_UNCOMMITTED
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ description14
+ role-name0
+ role-link0
+
+
+ description15
+
+ description16
+ role-name1
+
+
+
+
+
+ description17
+
+ description18
+ interceptor-class0
+
+ class2
+ $
+
+
+ class3
+ $
+
+
+ description19
+ env-entry-name1
+ env-entry-type1
+ env-entry-value1
+ mapped-name10
+
+ injection-target-class9
+ $
+
+ lookup-name7
+
+
+ description20
+ ejb-ref-name2
+ Entity
+ home1
+ remote1
+ ejb-link2
+ mapped-name11
+
+ injection-target-class10
+ $
+
+ lookup-name8
+
+
+ description21
+ ejb-ref-name3
+ Entity
+ local-home1
+ local1
+ ejb-link3
+ mapped-name12
+
+ injection-target-class11
+ $
+
+ lookup-name9
+
+
+ description22
+ display-name3
+
+ small-icon3
+ large-icon3
+
+ service-ref-name1
+ service-interface1
+ service-ref-type1
+ http://www.oxygenxml.com/
+ jaxrpc-mapping-file1
+ qName
+
+ service-endpoint-interface1
+ false
+ 50
+
+ false
+ false
+ ANONYMOUS
+
+
+ false
+
+ port-component-link1
+
+
+ description23
+ display-name4
+
+ small-icon1
+ large-icon1
+
+ handler-name1
+ handler-class1
+
+ param-name0
+ param-value0
+
+ qName
+ soap-role0
+ port-name0
+
+ mapped-name13
+
+ injection-target-class12
+ $
+
+ lookup-name10
+
+
+ description24
+ res-ref-name1
+ res-type1
+ Application
+ Shareable
+ mapped-name14
+
+ injection-target-class13
+ $
+
+ lookup-name11
+
+
+ description25
+ resource-env-ref-name1
+ resource-env-ref-type1
+ mapped-name15
+
+ injection-target-class14
+ $
+
+ lookup-name12
+
+
+ description26
+ message-destination-ref-name1
+ message-destination-type2
+ Consumes
+ message-destination-link2
+ mapped-name16
+
+ injection-target-class15
+ $
+
+ lookup-name13
+
+
+ description27
+ persistence-context-ref-name1
+ persistence-unit-name2
+ Transaction
+
+ name3
+ value2
+
+ mapped-name17
+
+ injection-target-class16
+ $
+
+
+
+ description28
+ persistence-unit-ref-name1
+ persistence-unit-name3
+ mapped-name18
+
+ injection-target-class17
+ $
+
+
+
+ lifecycle-callback-class2
+ $
+
+
+ lifecycle-callback-class3
+ $
+
+
+ description29
+ name4
+ class-name1
+ server-name1
+ 0
+ database-name1
+ jdbc::
+ user1
+ password1
+
+ name5
+ value3
+
+ 0
+ false
+ TRANSACTION_READ_UNCOMMITTED
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ lifecycle-callback-class4
+ $
+
+
+ lifecycle-callback-class5
+ $
+
+
+
+
+ description30
+
+ description31
+ ejb-relation-name0
+
+ description32
+ ejb-relationship-role-name0
+ One
+
+ description33
+ ejb-name1
+
+
+ description34
+ cmr-field-name0
+ java.util.Collection
+
+
+
+ description35
+ ejb-relationship-role-name1
+ One
+
+
+ description36
+ ejb-name2
+
+
+ description37
+ cmr-field-name1
+ java.util.Collection
+
+
+
+
+
+
+ description38
+ role-name2
+
+
+ description39
+
+
+ description40
+ ejb-name3
+ Home
+ method-name6
+
+ method-param1
+
+
+
+
+ description41
+
+ description42
+ ejb-name4
+ Home
+ method-name7
+
+ method-param2
+
+
+ NotSupported
+
+
+ description43
+ ejb-name5
+ interceptor-class1
+ false
+ false
+
+ method-name8
+
+ method-param3
+
+
+
+
+ description44
+ display-name5
+
+ small-icon4
+ large-icon4
+
+ message-destination-name0
+ mapped-name19
+ lookup-name14
+
+
+ description45
+
+ description46
+ ejb-name6
+ Home
+ method-name9
+
+ method-param4
+
+
+
+
+ exception-class0
+ false
+ false
+
+
+ ejb-client-jar0
+
diff --git a/test/src/test/resources/test-gen-job10.xml b/test/src/test/resources/test-gen-job10.xml
new file mode 100644
index 00000000..e33d4972
--- /dev/null
+++ b/test/src/test/resources/test-gen-job10.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
diff --git a/test/src/test/resources/test-gen-permissions7.xml b/test/src/test/resources/test-gen-permissions7.xml
new file mode 100644
index 00000000..ba8ddbf7
--- /dev/null
+++ b/test/src/test/resources/test-gen-permissions7.xml
@@ -0,0 +1,15 @@
+
+
+
+ java.io.FilePermission
+ /tmp/abc
+ read,write
+
+
+ java.lang.RuntimePermission
+ createClassLoader
+
+
diff --git a/test/src/test/resources/test-gen-persistence21.xml b/test/src/test/resources/test-gen-persistence21.xml
new file mode 100644
index 00000000..12d8f77f
--- /dev/null
+++ b/test/src/test/resources/test-gen-persistence21.xml
@@ -0,0 +1,43 @@
+
+
+
+ description0
+ provider0
+ jta-data-source0
+ non-jta-data-source0
+ mapping-file0
+ mapping-file1
+ jar-file0
+ jar-file1
+ class0
+ class1
+ true
+ ALL
+ AUTO
+
+
+
+
+
+
+ description1
+ provider1
+ jta-data-source1
+ non-jta-data-source1
+ mapping-file2
+ mapping-file3
+ jar-file2
+ jar-file3
+ class2
+ class3
+ true
+ ALL
+ AUTO
+
+
+
+
+
+
diff --git a/test/src/test/resources/test-gen-validation-configuration11.xml b/test/src/test/resources/test-gen-validation-configuration11.xml
new file mode 100644
index 00000000..7f996108
--- /dev/null
+++ b/test/src/test/resources/test-gen-validation-configuration11.xml
@@ -0,0 +1,23 @@
+
+
+ default-provider0
+ message-interpolator0
+ traversable-resolver0
+ constraint-validator-factory0
+ parameter-name-provider0
+
+
+ NONE
+ NONE
+ NONE
+
+
+ constraint-mapping0
+ constraint-mapping1
+ constraint-mapping2
+ property0
+ property1
+ property2
+
diff --git a/test/src/test/resources/test-gen-validation-mapping11.xml b/test/src/test/resources/test-gen-validation-mapping11.xml
new file mode 100644
index 00000000..2cdf0b45
--- /dev/null
+++ b/test/src/test/resources/test-gen-validation-mapping11.xml
@@ -0,0 +1,147 @@
+
+
+ default-package0
+
+
+
+ value0
+
+
+ message0
+
+ value1
+
+
+ value2
+
+
+ value3
+
+
+
+
+
+
+
+
+
+ message1
+
+ value4
+
+
+ value5
+
+
+ value6
+
+
+
+
+
+
+
+
+
+ message2
+
+ value7
+
+
+ value8
+
+
+ value9
+
+
+
+
+
+
+
+
+
+
+ message3
+
+
+
+
+
+
+
+
+
+
+ message4
+
+
+
+
+
+
+
+
+
+
+
+
+ message5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ value10
+
+
+
diff --git a/test/src/test/resources/test-orig-ejbjar32.xml b/test/src/test/resources/test-orig-ejbjar32.xml
new file mode 100644
index 00000000..c7ac416d
--- /dev/null
+++ b/test/src/test/resources/test-orig-ejbjar32.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+ enterprise.annot_ovd_interceptor_ejb.NullChecker
+
+
+
+
+
+ *
+ enterprise.annot_ovd_interceptor_ejb.NullChecker
+
+
+ StatelessSessionBean
+ true
+
+ isOddNumber
+
+
+
+
diff --git a/test/src/test/resources/test-orig-facesconfig22.xml b/test/src/test/resources/test-orig-facesconfig22.xml
new file mode 100644
index 00000000..37ef5ed0
--- /dev/null
+++ b/test/src/test/resources/test-orig-facesconfig22.xml
@@ -0,0 +1,140 @@
+
+
+
+ SeamBooking
+
+
+ *
+
+
+ #{identity.logout}
+ #{true}
+ /home.xhtml
+
+
+
+
+ #{bookingAgent.cancel}
+ #{true}
+ /search.xhtml
+
+
+
+
+
+
+ /home.xhtml
+
+
+ #{identity.login}
+ #{identity.loggedIn}
+ /search.xhtml
+
+
+
+
+ #{identity.login}
+ failed
+ /home.xhtml
+
+
+
+
+
+ /search.xhtml
+
+
+
+
+
+ #{bookingAgent.selectHotel(_hotel)}
+ #{bookingAgent.hotelSelection != null}
+ /hotel.xhtml
+
+
+
+
+
+
+ /hotel.xhtml
+
+
+ #{bookingAgent.bookHotel}
+ #{bookingAgent.booking != null}
+ /book.xhtml
+
+
+
+
+
+
+ /book.xhtml
+
+
+ #{bookingAgent.validate}
+ #{bookingAgent.bookingValid}
+ /confirm.xhtml
+
+
+
+
+
+
+ /confirm.xhtml
+
+
+ #{bookingAgent.confirm}
+ #{true}
+ /search.xhtml
+
+
+
+
+
+
+ /register.xhtml
+
+
+ #{registrar.register}
+ #{registrar.registered}
+ /home.xhtml
+
+
+
+
+
+
+ /password.xhtml
+
+
+ #{passwordManager.changePassword}
+ #{passwordManager.changed}
+ /account.xhtml
+
+
+
+
+
+
+
+ messages
+ messages
+
+
+
\ No newline at end of file