You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2014/06/19 16:28:41 UTC

svn commit: r1603889 - in /tomee/tomee/trunk/examples/deltaspike-fullstack: ./ src/main/java/org/superbiz/deltaspike/repository/ src/main/java/org/superbiz/deltaspike/repository/jpa/ src/main/java/org/superbiz/deltaspike/view/ src/main/resources/META-I...

Author: andygumbrecht
Date: Thu Jun 19 14:28:40 2014
New Revision: 1603889

URL: http://svn.apache.org/r1603889
Log:
This closes #12

commit ec978499ff59ff891b5d3d61742af183ab9f4c01
Author: Andrew Gumbrecht <an...@apache.org>
Date: 2014-06-17T14:58:16Z

Initial 1.7.0 branch

git-svn-id: https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-1.7.0@1603194 13f79535-47bb-0310-9956-ffa450edef68

commit f1fceeed3589574d16b952837ef1e6057b765049
Author: gpetracek <gp...@apache.org>
Date: 2014-06-18T21:06:57Z

TOMEE-1252 upgrade to deltaspike v1

commit e2ef4231af2d88485daa7b8ea42486c0f1c3b36f
Author: gpetracek <gp...@apache.org>
Date: 2014-06-18T21:19:30Z

TOMEE-1253 tests based on the test-control module of deltaspike

Added:
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/java/
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/java/org/
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/java/org/superbiz/
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/java/org/superbiz/deltaspike/
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/java/org/superbiz/deltaspike/test/
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/java/org/superbiz/deltaspike/test/MockedPageBeanTest.java
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/java/org/superbiz/deltaspike/test/PageBeanTest.java
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/resources/
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/resources/META-INF/
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/resources/META-INF/services/
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/resources/META-INF/services/org.apache.deltaspike.testcontrol.spi.ExternalContainer
Removed:
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/webapp/WEB-INF/beans.xml
Modified:
    tomee/tomee/trunk/examples/deltaspike-fullstack/   (props changed)
    tomee/tomee/trunk/examples/deltaspike-fullstack/pom.xml
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/java/org/superbiz/deltaspike/repository/Repository.java
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/java/org/superbiz/deltaspike/repository/jpa/JpaFeedbackRepository.java
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/java/org/superbiz/deltaspike/view/RegistrationPage.java
    tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/resources/META-INF/validation.xml

Propchange: tomee/tomee/trunk/examples/deltaspike-fullstack/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Thu Jun 19 14:28:40 2014
@@ -1 +1,3 @@
 target
+.idea
+*.iml

Modified: tomee/tomee/trunk/examples/deltaspike-fullstack/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/deltaspike-fullstack/pom.xml?rev=1603889&r1=1603888&r2=1603889&view=diff
==============================================================================
--- tomee/tomee/trunk/examples/deltaspike-fullstack/pom.xml (original)
+++ tomee/tomee/trunk/examples/deltaspike-fullstack/pom.xml Thu Jun 19 14:28:40 2014
@@ -11,17 +11,17 @@
 <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/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
+
   <groupId>org.superbiz</groupId>
   <artifactId>deltaspike-fullstack</artifactId>
-
   <name>OpenEJB :: Examples :: JSF2/CDI/BV/JPA/DeltaSpike</name>
   <version>1.0-SNAPSHOT</version>
 
   <packaging>war</packaging>
 
   <properties>
-    <myfaces2.version>2.1.15</myfaces2.version>
-    <ds.version>0.6</ds.version>
+    <myfaces2.version>2.2.3</myfaces2.version>
+    <ds.version>1.0.0</ds.version>
     <extval.version>2.0.8</extval.version>
   </properties>
 
@@ -48,6 +48,7 @@
       </plugin>
     </plugins>
   </build>
+
   <repositories>
     <repository>
       <id>prime-repo</id>
@@ -56,6 +57,7 @@
       <layout>default</layout>
     </repository>
   </repositories>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.openejb</groupId>
@@ -63,6 +65,12 @@
       <version>6.0-6-SNAPSHOT</version>
       <scope>provided</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-core</artifactId>
+      <version>4.7.0-SNAPSHOT</version>
+      <scope>test</scope>
+    </dependency>
 
     <dependency>
       <groupId>org.apache.deltaspike.core</groupId>
@@ -119,13 +127,11 @@
       <version>${ds.version}</version>
       <scope>runtime</scope>
     </dependency>
-
     <dependency>
       <groupId>org.apache.myfaces.extensions.validator</groupId>
       <artifactId>myfaces-extval-core</artifactId>
       <version>${extval.version}</version>
     </dependency>
-
     <dependency>
       <groupId>org.apache.myfaces.extensions.validator.validation-modules</groupId>
       <artifactId>myfaces-extval-property-validation</artifactId>
@@ -137,7 +143,6 @@
         </exclusion>
       </exclusions>
     </dependency>
-
     <dependency>
       <groupId>org.apache.myfaces.extensions.validator.validation-modules</groupId>
       <artifactId>myfaces-extval-bean-validation</artifactId>
@@ -149,7 +154,46 @@
         </exclusion>
       </exclusions>
     </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.11</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.deltaspike.modules</groupId>
+      <artifactId>deltaspike-test-control-module-api</artifactId>
+      <version>${ds.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.deltaspike.modules</groupId>
+      <artifactId>deltaspike-test-control-module-impl</artifactId>
+      <version>${ds.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.deltaspike.cdictrl</groupId>
+      <artifactId>deltaspike-cdictrl-api</artifactId>
+      <version>${ds.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.deltaspike.cdictrl</groupId>
+      <artifactId>deltaspike-cdictrl-openejb</artifactId>
+      <version>${ds.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <!-- only needed for mocked cdi-beans -->
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+      <version>1.9.5</version>
+      <scope>test</scope>
+    </dependency>
 
+    <!-- for full page-bean tests -->
     <dependency>
       <groupId>org.apache.myfaces.core</groupId>
       <artifactId>myfaces-api</artifactId>
@@ -160,7 +204,19 @@
       <groupId>org.apache.myfaces.core</groupId>
       <artifactId>myfaces-impl</artifactId>
       <version>${myfaces2.version}</version>
-      <scope>provided</scope>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.myfaces.core</groupId>
+      <artifactId>myfaces-impl-test</artifactId>
+      <version>${myfaces2.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.myfaces.test</groupId>
+      <artifactId>myfaces-test20</artifactId>
+      <version>1.0.6</version>
+      <scope>test</scope>
     </dependency>
 
     <!-- 3rd party libs -->

Modified: tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/java/org/superbiz/deltaspike/repository/Repository.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/java/org/superbiz/deltaspike/repository/Repository.java?rev=1603889&r1=1603888&r2=1603889&view=diff
==============================================================================
--- tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/java/org/superbiz/deltaspike/repository/Repository.java (original)
+++ tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/java/org/superbiz/deltaspike/repository/Repository.java Thu Jun 19 14:28:40 2014
@@ -36,7 +36,6 @@ import static java.lang.annotation.Reten
 @Documented
 
 @RequestScoped
-@Transactional
 public @interface Repository
 {
 }

Modified: tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/java/org/superbiz/deltaspike/repository/jpa/JpaFeedbackRepository.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/java/org/superbiz/deltaspike/repository/jpa/JpaFeedbackRepository.java?rev=1603889&r1=1603888&r2=1603889&view=diff
==============================================================================
--- tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/java/org/superbiz/deltaspike/repository/jpa/JpaFeedbackRepository.java (original)
+++ tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/java/org/superbiz/deltaspike/repository/jpa/JpaFeedbackRepository.java Thu Jun 19 14:28:40 2014
@@ -18,10 +18,12 @@
  */
 package org.superbiz.deltaspike.repository.jpa;
 
+import org.apache.deltaspike.jpa.api.transaction.Transactional;
 import org.superbiz.deltaspike.domain.Feedback;
 import org.superbiz.deltaspike.repository.FeedbackRepository;
 import org.superbiz.deltaspike.repository.Repository;
 
+@Transactional
 @Repository
 public class JpaFeedbackRepository extends AbstractGenericJpaRepository<Feedback> implements FeedbackRepository
 {

Modified: tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/java/org/superbiz/deltaspike/view/RegistrationPage.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/java/org/superbiz/deltaspike/view/RegistrationPage.java?rev=1603889&r1=1603888&r2=1603889&view=diff
==============================================================================
--- tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/java/org/superbiz/deltaspike/view/RegistrationPage.java (original)
+++ tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/java/org/superbiz/deltaspike/view/RegistrationPage.java Thu Jun 19 14:28:40 2014
@@ -26,7 +26,7 @@ import org.apache.myfaces.extensions.val
 import org.superbiz.deltaspike.WebappMessageBundle;
 import org.superbiz.deltaspike.domain.User;
 import org.superbiz.deltaspike.domain.validation.Full;
-import org.superbiz.deltaspike.repository.UserRepository;
+import org.superbiz.deltaspike.repository.service.UserService;
 import org.superbiz.deltaspike.view.config.Pages;
 
 import javax.inject.Inject;
@@ -40,7 +40,7 @@ public class RegistrationPage implements
     private static final long serialVersionUID = 3844502441069448490L;
 
     @Inject
-    private UserRepository userRepository;
+    private UserService userService;
 
     @Inject
     private GroupedConversation conversation;
@@ -59,7 +59,7 @@ public class RegistrationPage implements
     @BeanValidation(useGroups = Full.class) //triggers UniqueUserNameValidator
     public Class<? extends Pages> register()
     {
-        this.userRepository.save(this.user);
+        this.userService.save(this.user);
         this.webappMessages.addInfo().msgUserRegistered(this.user.getUserName());
 
         //in order to re-use the page-bean for the login-page
@@ -70,7 +70,7 @@ public class RegistrationPage implements
 
     public Class<? extends Pages> login()
     {
-        User user = this.userRepository.loadUser(this.user.getUserName());
+        User user = this.userService.loadUser(this.user.getUserName());
         if (user != null && user.getPassword().equals(this.user.getPassword()))
         {
             this.webappMessages.addInfo().msgLoginSuccessful();

Modified: tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/resources/META-INF/validation.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/resources/META-INF/validation.xml?rev=1603889&r1=1603888&r2=1603889&view=diff
==============================================================================
--- tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/resources/META-INF/validation.xml (original)
+++ tomee/tomee/trunk/examples/deltaspike-fullstack/src/main/resources/META-INF/validation.xml Thu Jun 19 14:28:40 2014
@@ -19,5 +19,5 @@
 <validation-config xmlns="http://jboss.org/xml/ns/javax/validation/configuration"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/configuration">
-    <constraint-validator-factory>org.apache.deltaspike.beanValidation.impl.CDIAwareConstraintValidatorFactory</constraint-validator-factory>
+    <constraint-validator-factory>org.apache.deltaspike.beanvalidation.impl.CDIAwareConstraintValidatorFactory</constraint-validator-factory>
 </validation-config>

Added: tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/java/org/superbiz/deltaspike/test/MockedPageBeanTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/java/org/superbiz/deltaspike/test/MockedPageBeanTest.java?rev=1603889&view=auto
==============================================================================
--- tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/java/org/superbiz/deltaspike/test/MockedPageBeanTest.java (added)
+++ tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/java/org/superbiz/deltaspike/test/MockedPageBeanTest.java Thu Jun 19 14:28:40 2014
@@ -0,0 +1,87 @@
+/*
+ * 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 org.superbiz.deltaspike.test;
+
+import junit.framework.Assert;
+import org.apache.deltaspike.core.spi.scope.window.WindowContext;
+import org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner;
+import org.apache.deltaspike.testcontrol.api.mock.DynamicMockManager;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.superbiz.deltaspike.WebappMessageBundle;
+import org.superbiz.deltaspike.domain.User;
+import org.superbiz.deltaspike.repository.UserRepository;
+import org.superbiz.deltaspike.repository.jpa.JpaUserRepository;
+import org.superbiz.deltaspike.view.RegistrationPage;
+import org.superbiz.deltaspike.view.config.Pages;
+
+import javax.faces.context.FacesContext;
+import javax.inject.Inject;
+
+import static org.mockito.Mockito.*;
+
+@RunWith(CdiTestRunner.class)
+public class MockedPageBeanTest
+{
+    @Inject
+    private RegistrationPage registrationPage; //will use a the mocked UserRepository
+
+    @Inject
+    private WindowContext windowContext;
+
+    @Inject
+    private WebappMessageBundle webappMessageBundle;
+
+    @Inject
+    private DynamicMockManager mockManager;
+
+    @Inject
+    private UserRepository userRepository; //will inject the mocked instance
+
+    @Test
+    public void saveUserWithMockedBean()
+    {
+        final String userName = "gp";
+        final String firstName = "Gerhard";
+        final String lastName = "Petracek";
+
+        UserRepository mockedUserRepository = mock(JpaUserRepository.class); //don't use the interface here to avoid issues with mockito and cdi proxies
+        when(mockedUserRepository.loadUser(userName)).thenReturn(new User(userName, firstName, lastName.toUpperCase() /*just to illustrate that the mock-instance is used*/));
+        mockManager.addMock(mockedUserRepository);
+
+
+        this.windowContext.activateWindow("testWindow");
+
+        this.registrationPage.getUser().setUserName(userName);
+        this.registrationPage.getUser().setFirstName(firstName);
+        this.registrationPage.getUser().setLastName(lastName);
+        this.registrationPage.getUser().setPassword("123");
+
+        Class<? extends Pages> targetPage = this.registrationPage.register();
+
+        Assert.assertEquals(Pages.Login.class, targetPage);
+        Assert.assertFalse(FacesContext.getCurrentInstance().getMessageList().isEmpty());
+        Assert.assertEquals(webappMessageBundle.msgUserRegistered(userName), FacesContext.getCurrentInstance().getMessageList().iterator().next().getSummary());
+
+        User user = this.userRepository.loadUser(userName);
+        Assert.assertNotNull(user);
+        Assert.assertEquals(firstName, user.getFirstName());
+        Assert.assertEquals(lastName.toUpperCase(), user.getLastName());
+    }
+}

Added: tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/java/org/superbiz/deltaspike/test/PageBeanTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/java/org/superbiz/deltaspike/test/PageBeanTest.java?rev=1603889&view=auto
==============================================================================
--- tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/java/org/superbiz/deltaspike/test/PageBeanTest.java (added)
+++ tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/java/org/superbiz/deltaspike/test/PageBeanTest.java Thu Jun 19 14:28:40 2014
@@ -0,0 +1,119 @@
+/*
+ * 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 org.superbiz.deltaspike.test;
+
+import junit.framework.Assert;
+import org.apache.deltaspike.cdise.api.ContextControl;
+import org.apache.deltaspike.core.spi.scope.window.WindowContext;
+import org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.superbiz.deltaspike.WebappMessageBundle;
+import org.superbiz.deltaspike.domain.User;
+import org.superbiz.deltaspike.repository.UserRepository;
+import org.superbiz.deltaspike.view.RegistrationPage;
+import org.superbiz.deltaspike.view.config.Pages;
+
+import javax.faces.context.FacesContext;
+import javax.inject.Inject;
+
+@RunWith(CdiTestRunner.class)
+public class PageBeanTest
+{
+    @Inject
+    private RegistrationPage registrationPage;
+
+    @Inject
+    private WindowContext windowContext;
+
+    @Inject
+    private WebappMessageBundle webappMessageBundle;
+
+    @Inject
+    private UserRepository userRepository;
+
+    @Inject
+    private ContextControl contextControl;
+
+    @Test
+    public void saveUser()
+    {
+        final String userName = "gp";
+        final String firstName = "Gerhard";
+        final String lastName = "Petracek";
+        this.windowContext.activateWindow("testWindow");
+
+        this.registrationPage.getUser().setUserName(userName);
+        this.registrationPage.getUser().setFirstName(firstName);
+        this.registrationPage.getUser().setLastName(lastName);
+        this.registrationPage.getUser().setPassword("123");
+
+        Class<? extends Pages> targetPage = this.registrationPage.register();
+
+        Assert.assertEquals(Pages.Login.class, targetPage);
+        Assert.assertFalse(FacesContext.getCurrentInstance().getMessageList().isEmpty());
+        Assert.assertEquals(webappMessageBundle.msgUserRegistered(userName), FacesContext.getCurrentInstance().getMessageList().iterator().next().getSummary());
+
+        User user = this.userRepository.loadUser(userName);
+        Assert.assertNotNull(user);
+        Assert.assertEquals(firstName, user.getFirstName());
+        Assert.assertEquals(lastName, user.getLastName());
+    }
+
+    @Test
+    public void saveUserAndLogin()
+    {
+        final String userName = "tt";
+        final String firstName = "Tom";
+        final String lastName = "Tester";
+        this.windowContext.activateWindow("testWindow");
+
+        Assert.assertTrue(FacesContext.getCurrentInstance().getMessageList().isEmpty());
+
+        this.registrationPage.getUser().setUserName(userName);
+        this.registrationPage.getUser().setFirstName(firstName);
+        this.registrationPage.getUser().setLastName(lastName);
+        this.registrationPage.getUser().setPassword("123");
+
+        Class<? extends Pages> targetPage = this.registrationPage.register();
+
+        Assert.assertEquals(Pages.Login.class, targetPage);
+        Assert.assertFalse(FacesContext.getCurrentInstance().getMessageList().isEmpty());
+        Assert.assertEquals(webappMessageBundle.msgUserRegistered(userName), FacesContext.getCurrentInstance().getMessageList().iterator().next().getSummary());
+
+        User user = this.userRepository.loadUser(userName);
+        Assert.assertNotNull(user);
+        Assert.assertEquals(firstName, user.getFirstName());
+        Assert.assertEquals(lastName, user.getLastName());
+
+        this.contextControl.stopContexts();
+        this.contextControl.startContexts();
+        this.windowContext.activateWindow("testWindow");
+
+        Assert.assertTrue(FacesContext.getCurrentInstance().getMessageList().isEmpty());
+
+        this.registrationPage.getUser().setUserName(userName);
+        this.registrationPage.getUser().setFirstName(firstName);
+        this.registrationPage.getUser().setLastName(lastName);
+        this.registrationPage.getUser().setPassword("123");
+
+        targetPage = this.registrationPage.login();
+        Assert.assertEquals(Pages.About.class, targetPage);
+    }
+}

Added: tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/resources/META-INF/services/org.apache.deltaspike.testcontrol.spi.ExternalContainer
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/resources/META-INF/services/org.apache.deltaspike.testcontrol.spi.ExternalContainer?rev=1603889&view=auto
==============================================================================
--- tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/resources/META-INF/services/org.apache.deltaspike.testcontrol.spi.ExternalContainer (added)
+++ tomee/tomee/trunk/examples/deltaspike-fullstack/src/test/resources/META-INF/services/org.apache.deltaspike.testcontrol.spi.ExternalContainer Thu Jun 19 14:28:40 2014
@@ -0,0 +1,18 @@
+# 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.
+
+org.apache.deltaspike.testcontrol.impl.jsf.MyFacesContainerAdapter