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 javadocTags) { + final List 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