Hi guys, I just committed an archetype for creating an integration-test module for MyFaces core.
With this archetype you are able to generate a module with one of three configurations (servlet 2.5 + el 1.0, servlet 2.5 + el 2.2 or serlvet 3.0 + el 2.2), just like the basic integration-tests modules in the 2.0.x branch. This stuff works pretty well, however while working on the archetype I was - again - thinking about the basic integration-test architecture for MyFaces core and I found some flaws in the current design. For example it is not possible to test MyFaces core 2.0.7-SNAPSHOT or earlier, b/c there was no integration-test support module back then. Or the version of MyFaces core is currently only defined by the parent module, which is pretty inflexible. And of course there is also the discussion about re-using some tests across different versions, which is not easily possible at the moment. Thus I am thinking of changing the integration-test module structure a bit, which would of course also mean changing the archetype. So please see this archetype as a first draft and nothing more! Suggestions for a kick-ass integration-test module structure are always welcome! Thanks for your attention. Regards, Jakob ---------- Forwarded message ---------- From: <jak...@apache.org> Date: 2011/8/24 Subject: svn commit: r1161089 - in /myfaces/myfaces-build-tools/trunk/maven2-archetypes: ./ myfaces-archetype-codi-jsf12/src/site/apt/ myfaces-archetype-codi-jsf20/src/site/apt/ myfaces-archetype-core-integration-test/ myfaces-archetype-core-integration-test/sr... To: comm...@myfaces.apache.org Author: jakobk Date: Wed Aug 24 13:19:38 2011 New Revision: 1161089 URL: http://svn.apache.org/viewvc?rev=1161089&view=rev Log: MYFACES-3290 Archetype for integration-test modules Added: myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/ (with props) myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/pom.xml myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/META-INF/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/META-INF/LICENSE.txt - copied unchanged from r1146098, myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-codi-jsf20/src/main/resources/META-INF/LICENSE.txt myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/META-INF/NOTICE.txt - copied unchanged from r1146098, myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-codi-jsf20/src/main/resources/META-INF/NOTICE.txt myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/META-INF/maven/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/META-INF/maven/archetype-metadata.xml myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/pom.xml myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/java/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/java/TestBean.java myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/webapp/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/webapp/pages/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/webapp/pages/index.xhtml myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/test/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/test/java/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/test/java/IntegrationTest.java myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/site/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/site/apt/ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/site/apt/index.apt Modified: myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-codi-jsf12/src/site/apt/index.apt myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-codi-jsf20/src/site/apt/index.apt myfaces/myfaces-build-tools/trunk/maven2-archetypes/pom.xml Modified: myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-codi-jsf12/src/site/apt/index.apt URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-codi-jsf12/src/site/apt/index.apt?rev=1161089&r1=1161088&r2=1161089&view=diff ============================================================================== --- myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-codi-jsf12/src/site/apt/index.apt (original) +++ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-codi-jsf12/src/site/apt/index.apt Wed Aug 24 13:19:38 2011 @@ -1,5 +1,5 @@ ------ - Myfaces CODI JSF 1.2 Archetype + MyFaces CODI JSF 1.2 Archetype ------ Overview Modified: myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-codi-jsf20/src/site/apt/index.apt URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-codi-jsf20/src/site/apt/index.apt?rev=1161089&r1=1161088&r2=1161089&view=diff ============================================================================== --- myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-codi-jsf20/src/site/apt/index.apt (original) +++ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-codi-jsf20/src/site/apt/index.apt Wed Aug 24 13:19:38 2011 @@ -1,5 +1,5 @@ ------ - Myfaces CODI JSF 2.0 Archetype + MyFaces CODI JSF 2.0 Archetype ------ Overview Propchange: myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/ ------------------------------------------------------------------------------ --- svn:ignore (added) +++ svn:ignore Wed Aug 24 13:19:38 2011 @@ -0,0 +1,10 @@ +target +.classpath +.project +.wtpmodules +*.ipr +*.iml +*.iws +.settings +.externalToolBuilders +maven-eclipse.xml Added: myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/pom.xml URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/pom.xml?rev=1161089&view=auto ============================================================================== --- myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/pom.xml (added) +++ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/pom.xml Wed Aug 24 13:19:38 2011 @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you 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. +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <parent> + <groupId>org.apache.myfaces.buildtools</groupId> + <artifactId>myfaces-archetype-parent</artifactId> + <version>1.0.4-SNAPSHOT</version> + </parent> + + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.myfaces.buildtools</groupId> + <artifactId>myfaces-archetype-core-integration-test</artifactId> + <packaging>jar</packaging> <!-- maven-archetype --> + <name>MyFaces Core Integration Test Archetype</name> + + <description> + Archetype to create a new MyFaces core project used for integration tests via cargo and HtmlUnit. + Projects created via this archetype aim to test specific issues from the MyFaces core JIRA issue + tracker and can be directly added to the MyFaces core integration-tests module. + </description> + +</project> Added: myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/META-INF/maven/archetype-metadata.xml URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/META-INF/maven/archetype-metadata.xml?rev=1161089&view=auto ============================================================================== --- myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/META-INF/maven/archetype-metadata.xml (added) +++ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/META-INF/maven/archetype-metadata.xml Wed Aug 24 13:19:38 2011 @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you 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. +--> +<archetype-descriptor xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" + name="myfaces-archetype-core-integration-test" partial="false"> + + <requiredProperties> + <requiredProperty key="groupId"> + <defaultValue>org.apache.myfaces.core.integrationtest</defaultValue> + </requiredProperty> + + <requiredProperty key="package"> + <defaultValue>org.apache.myfaces.integrationtest</defaultValue> + </requiredProperty> + + <requiredProperty key="version"> + <defaultValue>2.0.9-SNAPSHOT</defaultValue> + </requiredProperty> + + <!-- + The issueId from the MyFaces core JIRA issue for which + this integration test is created (e.g MYFACES-1234) + --> + <requiredProperty key="issueId" /> + + <!-- + type of environment: + 0 - servlet 2.5 + el 1.0 (default) + 1 - servlet 2.5 + el 2.2 + 2 - servlet 3.0 + el 2.2 + --> + <requiredProperty key="environmentType" /> + </requiredProperties> + + <fileSets> + <fileSet filtered="true" packaged="true"> + <directory>src/main/java/</directory> + </fileSet> + <fileSet filtered="true" packaged="true"> + <directory>src/test/java/</directory> + </fileSet> + <fileSet filtered="true" packaged="false"> + <directory>src/main/webapp/</directory> + </fileSet> + </fileSets> + + <modules/> + +</archetype-descriptor> Added: myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/pom.xml URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/pom.xml?rev=1161089&view=auto ============================================================================== --- myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/pom.xml (added) +++ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/pom.xml Wed Aug 24 13:19:38 2011 @@ -0,0 +1,216 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to you 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. +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <parent> + <groupId>org.apache.myfaces.core.integrationtest</groupId> + <artifactId>myfaces-integration-tests</artifactId> + + <!-- NOTE: set appropriate version, e.g. 2.0.x-SNAPSHOT or 2.1.x-SNAPSHOT --> + <version>${version}</version> + </parent> + + <modelVersion>4.0.0</modelVersion> + + <groupId>${groupId}</groupId> + <artifactId>${artifactId}</artifactId> + <packaging>war</packaging> + <name>Apache MyFaces JSF-2.0 Core Integration Tests - ${issueId}</name> + + + <build> + <plugins> + <plugin> + <!-- to start the container for manual tests use "mvn clean package cargo:run" --> + <groupId>org.codehaus.cargo</groupId> + <artifactId>cargo-maven2-plugin</artifactId> + <configuration> + <container> +## servlet 2.5 + el 2.2 +#if ($environmentType == 1) + <!-- using jetty6x here, b/c jetty7x does not play well with el-2.2 integration --> + <containerId>jetty6x</containerId> + <type>embedded</type> + + <dependencies> + <!-- use el 2.2 api+impl from glassfish --> + <dependency> + <groupId>javax.el</groupId> + <artifactId>javax.el-api</artifactId> + </dependency> + <dependency> + <groupId>org.glassfish.web</groupId> + <artifactId>javax.el</artifactId> + </dependency> + </dependencies> +## servlet 3.0 + el 2.2 +#elseif ($environmentType == 2) + <containerId>tomcat7x</containerId> + <zipUrlInstaller> + <url>http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.16/bin/apache-tomcat-7.0.16.zip</url> + </zipUrlInstaller> +## servlet 2.5 + el 1.0 (default) +#else + <containerId>tomcat6x</containerId> + <zipUrlInstaller> + <url>http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.32/bin/apache-tomcat-6.0.32.zip</url> + </zipUrlInstaller> +#end + </container> + + <configuration> + <properties> + <cargo.servlet.port>${symbol_dollar}{cargo.port}</cargo.servlet.port> + </properties> + + <deployables> + <deployable> + <groupId>${symbol_dollar}{project.groupId}</groupId> + <artifactId>${symbol_dollar}{project.artifactId}</artifactId> + <type>war</type> + <properties> + <context>${symbol_dollar}{cargo.context}</context> + </properties> + </deployable> + </deployables> + </configuration> + </configuration> + <executions> + <execution> + <id>start-container</id> + <phase>pre-integration-test</phase> + <goals> + <goal>start</goal> + </goals> + </execution> + <execution> + <id>stop-container</id> + <phase>post-integration-test</phase> + <goals> + <goal>stop</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <!-- using failsafe instead of surefire plugin ensures execution of phase post-integration-test --> + <artifactId>maven-failsafe-plugin</artifactId> + <executions> + <execution> + <id>htmlunit-integration-tests</id> + <phase>integration-test</phase> + <goals> + <goal>integration-test</goal> + </goals> + <configuration> + <includes> + <include>**/*Test*.java</include> + </includes> + <skip>false</skip> + <testNGArtifactName>none:none</testNGArtifactName> + <systemPropertyVariables> + <!-- pass properties to JUnit --> + <cargo.context>${symbol_dollar}{cargo.context}</cargo.context> + <cargo.port>${symbol_dollar}{cargo.port}</cargo.port> + </systemPropertyVariables> + </configuration> + </execution> + <execution> + <id>verify</id> + <phase>verify</phase> + <goals> + <goal>verify</goal> + </goals> + </execution> + </executions> + </plugin> + + </plugins> + </build> + + + <dependencies> + +## servlet 2.5 + el 2.2 +#if ($environmentType == 1) + <!-- servlet 2.5 --> + <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-servlet_2.5_spec</artifactId> + <scope>provided</scope> + </dependency> + + <!-- el 2.2 api+impl from glassfish (need both dependencies here for cargo-plugin, see above) --> + <dependency> + <groupId>javax.el</groupId> + <artifactId>javax.el-api</artifactId> + <version>2.2.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.glassfish.web</groupId> + <artifactId>javax.el</artifactId> + <version>2.2.1</version> + <scope>provided</scope> + </dependency> +## servlet 3.0 + el 2.2 +#elseif ($environmentType == 2) + <!-- servlet 3.0 --> + <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-servlet_3.0_spec</artifactId> + <scope>provided</scope> + </dependency> + + <!-- el 2.2 --> + <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-el_2.2_spec</artifactId> + <scope>provided</scope> + </dependency> +## servlet 2.5 + el 1.0 (default) +#else + <!-- servlet 2.5 --> + <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-servlet_2.5_spec</artifactId> + <scope>provided</scope> + </dependency> + + <!-- el 1.0 --> + <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-el_1.0_spec</artifactId> + <scope>provided</scope> + </dependency> +#end + + <!-- test support module --> + <dependency> + <groupId>org.apache.myfaces.core.integrationtest</groupId> + <artifactId>myfaces-integration-test-support</artifactId> + <scope>test</scope> + </dependency> + + </dependencies> + +</project> Added: myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/java/TestBean.java URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/java/TestBean.java?rev=1161089&view=auto ============================================================================== --- myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/java/TestBean.java (added) +++ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/java/TestBean.java Wed Aug 24 13:19:38 2011 @@ -0,0 +1,42 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 ${package}; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.RequestScoped; + +/** + * Bean for integration tests of ${issueId}. + */ +@ManagedBean +@RequestScoped +public class TestBean +{ + + // TODO + + public String action() + { + return null; + } + +} Added: myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml?rev=1161089&view=auto ============================================================================== --- myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml (added) +++ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml Wed Aug 24 13:19:38 2011 @@ -0,0 +1,66 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +<?xml version = '1.0' encoding = 'ISO-8859-1'?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you 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. + +--> +<web-app xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" + version="2.5"> + + <servlet> + <servlet-name>Faces Servlet</servlet-name> + <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> + <load-on-startup>1</load-on-startup> + </servlet> + + <servlet-mapping> + <servlet-name>Faces Servlet</servlet-name> + <url-pattern>*.xhtml</url-pattern> + </servlet-mapping> + + <context-param> + <param-name>javax.faces.PROJECT_STAGE</param-name> + <param-value>Production</param-value> + </context-param> + + <context-param> + <param-name>javax.faces.DEFAULT_SUFFIX</param-name> + <param-value>.xhtml</param-value> + </context-param> + + <welcome-file-list> + <welcome-file>index.xhtml</welcome-file> + </welcome-file-list> + +## servlet 2.5 + el 2.2 +#if ($environmentType == 1) + <!-- + we have to explicitly configure glassfish's el 2.2 implementation, + because it is not the standard one on this server + --> + <context-param> + <param-name>org.apache.myfaces.EXPRESSION_FACTORY</param-name> + <param-value>com.sun.el.ExpressionFactoryImpl</param-value> + </context-param> +#end + +</web-app> Added: myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/webapp/pages/index.xhtml URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/webapp/pages/index.xhtml?rev=1161089&view=auto ============================================================================== --- myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/webapp/pages/index.xhtml (added) +++ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/main/webapp/pages/index.xhtml Wed Aug 24 13:19:38 2011 @@ -0,0 +1,48 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you 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. + +--> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jsp/jstl/core"> +<h:head> + <title>Apache MyFaces Core - Integration test for ${issueId}</title> +</h:head> +<h:body> + + <h1>Apache MyFaces Core - Integration test for ${issueId}</h1> + + <h:messages /> + + <h:form id="form"> + + <!-- TODO --> + + <h:commandButton id="submit" value="Submit" action="${symbol_pound}{testBean.action}" /> + </h:form> + +</h:body> +</html> Added: myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/test/java/IntegrationTest.java URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/test/java/IntegrationTest.java?rev=1161089&view=auto ============================================================================== --- myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/test/java/IntegrationTest.java (added) +++ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/main/resources/archetype-resources/src/test/java/IntegrationTest.java Wed Aug 24 13:19:38 2011 @@ -0,0 +1,46 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 ${package}; + +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import org.apache.myfaces.integrationtest.support.MyFacesIntegrationTest; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** + * Test cases for ${issueId}. + */ +@RunWith(JUnit4.class) +public class IntegrationTest extends MyFacesIntegrationTest +{ + + @Test + public void testAction_shouldExpectedResult() throws Exception + { + HtmlPage page = webClient.getPage(getBaseURL() + "pages/index.xhtml"); + + // TODO + } + +} Added: myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/site/apt/index.apt URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/site/apt/index.apt?rev=1161089&view=auto ============================================================================== --- myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/site/apt/index.apt (added) +++ myfaces/myfaces-build-tools/trunk/maven2-archetypes/myfaces-archetype-core-integration-test/src/site/apt/index.apt Wed Aug 24 13:19:38 2011 @@ -0,0 +1,46 @@ + ------ + MyFaces Core Integration-Test Archetype + ------ + +Overview + + This project defines a Maven archetype. Running the archetype plugin with this archetype will + create a directory tree containing the files needed to quickly get started on a new integration + test for MyFaces core 2.x. + +Usage + + Use the following maven command and then select myfaces-archetype-core-integration-test from the options. + + ++------------------------------------------------------------------+ +mvn archetype:generate -DarchetypeCatalog=http://myfaces.apache.org ++------------------------------------------------------------------+ + + You will then be prompted for some archetype specific properties, which will look like this: + ++------------------------------------------------------------------+ +Define value for property 'artifactId': : myfaces-1234-tests +Define value for property 'environmentType': : 0 +Define value for property 'issueId': : MYFACES-1234 ++------------------------------------------------------------------+ + + All other properties (like e.g. groupId) will automatically be configured. As shown above, you need + to provide 3 properties: + + * artifactId is the artifactId for the maven project, you should use #\{issueId\}-tests as shown above. + + * environmentType defines which type of environment should be used. + + * 0: servlet 2.5 and el 1.0 + + * 1: servlet 2.5 and el 2.2 + + * 2: servlet 3.0 and el 2.2 + + * issueId is the issue-id of the JIRA issue which this integration test addresses + + [] + + The version of the project is automatically set to a default value (e.g. 2.0.9-SNAPSHOT). If you + want to test a different version, you have to change this manually in the pom.xml. Modified: myfaces/myfaces-build-tools/trunk/maven2-archetypes/pom.xml URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-archetypes/pom.xml?rev=1161089&r1=1161088&r2=1161089&view=diff ============================================================================== --- myfaces/myfaces-build-tools/trunk/maven2-archetypes/pom.xml (original) +++ myfaces/myfaces-build-tools/trunk/maven2-archetypes/pom.xml Wed Aug 24 13:19:38 2011 @@ -121,6 +121,7 @@ <module>myfaces-archetype-jsfcomponents20</module> <module>myfaces-archetype-codi-jsf12</module> <module>myfaces-archetype-codi-jsf20</module> + <module>myfaces-archetype-core-integration-test</module> </modules> <distributionManagement> -- Jakob Korherr blog: http://www.jakobk.com twitter: http://twitter.com/jakobkorherr work: http://www.irian.at