You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@onami.apache.org by sc...@apache.org on 2014/06/05 18:02:08 UTC

svn commit: r1600690 - in /onami/trunk/persist/src: main/java/org/apache/onami/persist/ test/java/org/apache/onami/persist/ test/java/org/apache/onami/persist/test/ test/java/org/apache/onami/persist/test/transaction/testframework/ test/java/org/apache...

Author: sclassen
Date: Thu Jun  5 16:02:07 2014
New Revision: 1600690

URL: http://svn.apache.org/r1600690
Log:
onami-persist: added multiple PU test and fixed bug regarding requestInjection().

Added:
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/MultiplePuTest.java   (with props)
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/TestEntity.java
      - copied, changed from r1599234, onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/TransactionTestEntity.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/UnderstandRequestInjectionTest.java   (with props)
Removed:
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/TransactionTestEntity.java
Modified:
    onami/trunk/persist/src/main/java/org/apache/onami/persist/AllPersistenceUnits.java
    onami/trunk/persist/src/main/java/org/apache/onami/persist/PersistenceModule.java
    onami/trunk/persist/src/main/java/org/apache/onami/persist/PersistenceUnitModule.java
    onami/trunk/persist/src/main/java/org/apache/onami/persist/TxnInterceptor.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/AllPersistenceUnitsTest.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/TxnInterceptorTest.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/TransactionalTask.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/TransactionalWorker.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnAnyThrowingNone.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnAnyThrowingRuntimeTestException.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnAnyThrowingTestException.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnNoneThrowingNone.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnNoneThrowingRuntimeTestException.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnNoneThrowingTestException.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingNone.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingTestException.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnTestExceptionThrowingNone.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnTestExceptionThrowingRuntimeTestException.java
    onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnTestExceptionThrowingTestException.java
    onami/trunk/persist/src/test/resources/META-INF/persistence.xml

Modified: onami/trunk/persist/src/main/java/org/apache/onami/persist/AllPersistenceUnits.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/main/java/org/apache/onami/persist/AllPersistenceUnits.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/main/java/org/apache/onami/persist/AllPersistenceUnits.java (original)
+++ onami/trunk/persist/src/main/java/org/apache/onami/persist/AllPersistenceUnits.java Thu Jun  5 16:02:07 2014
@@ -20,9 +20,13 @@ package org.apache.onami.persist;
  */
 
 import com.google.inject.Inject;
+import com.google.inject.Injector;
+import com.google.inject.Key;
 import com.google.inject.Singleton;
 
+import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 
 import static org.apache.onami.persist.Preconditions.checkNotNull;
@@ -38,26 +42,46 @@ class AllPersistenceUnits
     /**
      * Collection of all known persistence services.
      */
-    private final Set<PersistenceService> persistenceServices = new HashSet<PersistenceService>();
+    private final List<PersistenceService> persistenceServices = new ArrayList<PersistenceService>();
 
     /**
      * Collection of all known units of work.
      */
-    private final Set<UnitOfWork> unitsOfWork = new HashSet<UnitOfWork>();
+    private final List<UnitOfWork> unitsOfWork = new ArrayList<UnitOfWork>();
+
+    /**
+     * Collection of the keys of all known persistence services.
+     */
+    private final Set<Key<PersistenceService>> persistenceServiceKeys = new HashSet<Key<PersistenceService>>();
+
+    /**
+     * Collection of the keys of of all known units of work.
+     */
+    private final Set<Key<UnitOfWork>> unitOfWorkKeys = new HashSet<Key<UnitOfWork>>();
 
     /**
      * Adds a persistence service and a unit of work to this collection.
      *
-     * @param ps  the persistence service to add. Must not be {@code null}.
-     * @param uow the unit of work to add. Must not be {@code null}.
+     * @param psKey  the persistence service to add. Must not be {@code null}.
+     * @param uowKey the unit of work to add. Must not be {@code null}.
      */
+    void add( Key<PersistenceService> psKey, Key<UnitOfWork> uowKey )
+    {
+        persistenceServiceKeys.add( checkNotNull( psKey, "psKey is mandatory!" ) );
+        unitOfWorkKeys.add( checkNotNull( uowKey, "ouwKey is mandatory!" ) );
+    }
+
     @Inject
-    void add( PersistenceService ps, UnitOfWork uow )
+    private void init( Injector injector )
     {
-        checkNotNull( ps );
-        checkNotNull( uow );
-        persistenceServices.add( ps );
-        unitsOfWork.add( uow );
+        for ( Key<PersistenceService> persistenceServiceKey : persistenceServiceKeys )
+        {
+            persistenceServices.add( injector.getInstance( persistenceServiceKey ) );
+        }
+        for ( Key<UnitOfWork> unitOfWorkKey : unitOfWorkKeys )
+        {
+            unitsOfWork.add( injector.getInstance( unitOfWorkKey ) );
+        }
     }
 
     /**

Modified: onami/trunk/persist/src/main/java/org/apache/onami/persist/PersistenceModule.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/main/java/org/apache/onami/persist/PersistenceModule.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/main/java/org/apache/onami/persist/PersistenceModule.java (original)
+++ onami/trunk/persist/src/main/java/org/apache/onami/persist/PersistenceModule.java Thu Jun  5 16:02:07 2014
@@ -75,6 +75,7 @@ public abstract class PersistenceModule
         bind( PersistenceFilter.class ).to( PersistenceFilterImpl.class );
 
         final AllPersistenceUnits allPersistenceUnits = new AllPersistenceUnits();
+        requestInjection( allPersistenceUnits );
         bind( AllPersistenceServices.class ).toInstance( allPersistenceUnits );
         bind( AllUnitsOfWork.class ).toInstance( allPersistenceUnits );
 

Modified: onami/trunk/persist/src/main/java/org/apache/onami/persist/PersistenceUnitModule.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/main/java/org/apache/onami/persist/PersistenceUnitModule.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/main/java/org/apache/onami/persist/PersistenceUnitModule.java (original)
+++ onami/trunk/persist/src/main/java/org/apache/onami/persist/PersistenceUnitModule.java Thu Jun  5 16:02:07 2014
@@ -90,11 +90,7 @@ class PersistenceUnitModule
             requestInjection( transactionInterceptor );
         }
 
-        // request injection into allPersistenceUnits - this adds the current persistence unit to the allPersistenceUnits.
-        if ( allPersistenceUnits != null )
-        {
-            requestInjection( allPersistenceUnits );
-        }
+        allPersistenceUnits.add( getPersistenceKey(), getUnitOfWorkKey() );
     }
 
     /**
@@ -133,6 +129,31 @@ class PersistenceUnitModule
         expose( type ).annotatedWith( config.getAnnotation() );
     }
 
+
+    private Key<PersistenceService> getPersistenceKey()
+    {
+        if ( config.isAnnotated() )
+        {
+            return Key.get( PersistenceService.class, config.getAnnotation() );
+        }
+        else
+        {
+            return Key.get( PersistenceService.class );
+        }
+    }
+
+    private Key<UnitOfWork> getUnitOfWorkKey()
+    {
+        if ( config.isAnnotated() )
+        {
+            return Key.get( UnitOfWork.class, config.getAnnotation() );
+        }
+        else
+        {
+            return Key.get( UnitOfWork.class );
+        }
+    }
+
     private void bindPersistenceServiceAndEntityManagerFactoryProviderAndProperties()
     {
         if ( config.isApplicationManagedPersistenceUnit() )

Modified: onami/trunk/persist/src/main/java/org/apache/onami/persist/TxnInterceptor.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/main/java/org/apache/onami/persist/TxnInterceptor.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/main/java/org/apache/onami/persist/TxnInterceptor.java (original)
+++ onami/trunk/persist/src/main/java/org/apache/onami/persist/TxnInterceptor.java Thu Jun  5 16:02:07 2014
@@ -33,23 +33,27 @@ class TxnInterceptor
     /**
      * Unit of work.
      */
-    @Inject
-    @VisibleForTesting
-    UnitOfWork unitOfWork;
+    private UnitOfWork unitOfWork;
 
     /**
      * Factory for {@link TransactionFacade}.
      */
-    @Inject
-    @VisibleForTesting
-    TransactionFacadeFactory tfProvider;
+    private TransactionFacadeFactory tfProvider;
 
     /**
      * Helper for working with the concrete transactional annotations on methods and classes.
      */
+    private TransactionalAnnotationHelper txnAnnotationHelper;
+
     @Inject
     @VisibleForTesting
-    TransactionalAnnotationHelper txnAnnotationHelper;
+    void init( UnitOfWork unitOfWork, TransactionFacadeFactory tfProvider,
+               TransactionalAnnotationHelper txnAnnotationHelper )
+    {
+        this.unitOfWork = unitOfWork;
+        this.tfProvider = tfProvider;
+        this.txnAnnotationHelper = txnAnnotationHelper;
+    }
 
     /**
      * {@inheritDoc}

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/AllPersistenceUnitsTest.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/AllPersistenceUnitsTest.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/AllPersistenceUnitsTest.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/AllPersistenceUnitsTest.java Thu Jun  5 16:02:07 2014
@@ -19,9 +19,13 @@ package org.apache.onami.persist;
  * under the License.
  */
 
+import com.google.inject.AbstractModule;
+import com.google.inject.Guice;
+import com.google.inject.Key;
 import org.junit.Before;
 import org.junit.Test;
 
+import static com.google.inject.name.Names.named;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.fail;
@@ -33,6 +37,14 @@ import static org.mockito.Mockito.*;
 public class AllPersistenceUnitsTest
 {
 
+    private static final Key<PersistenceService> PS_KEY_1 = Key.get( PersistenceService.class, named( "1" ) );
+
+    private static final Key<PersistenceService> PS_KEY_2 = Key.get( PersistenceService.class, named( "2" ) );
+
+    private static final Key<UnitOfWork> UOW_KEY_1 = Key.get( UnitOfWork.class, named( "1" ) );
+
+    private static final Key<UnitOfWork> UOW_KEY_2 = Key.get( UnitOfWork.class, named( "2" ) );
+
     private AllPersistenceUnits sut;
 
     private PersistenceService ps1;
@@ -47,16 +59,32 @@ public class AllPersistenceUnitsTest
     public void setUp()
         throws Exception
     {
-        sut = new AllPersistenceUnits();
-
+        // create mocks
         ps1 = mock( PersistenceService.class );
         ps2 = mock( PersistenceService.class );
 
         uow1 = mock( UnitOfWork.class );
         uow2 = mock( UnitOfWork.class );
 
-        sut.add( ps1, uow1 );
-        sut.add( ps2, uow2 );
+        // create subject under test
+        sut = new AllPersistenceUnits();
+
+        sut.add( PS_KEY_1, UOW_KEY_1 );
+        sut.add( PS_KEY_2, UOW_KEY_2 );
+
+        // use guice to trigger the init method of AllPersistenceUnits
+        Guice.createInjector( new AbstractModule()
+        {
+            @Override
+            protected void configure()
+            {
+                bind( PS_KEY_1 ).toInstance( ps1 );
+                bind( PS_KEY_2 ).toInstance( ps2 );
+                bind( UOW_KEY_1 ).toInstance( uow1 );
+                bind( UOW_KEY_2 ).toInstance( uow2 );
+                requestInjection( sut );
+            }
+        } );
     }
 
     @Test

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/TxnInterceptorTest.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/TxnInterceptorTest.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/TxnInterceptorTest.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/TxnInterceptorTest.java Thu Jun  5 16:02:07 2014
@@ -34,7 +34,7 @@ import static org.mockito.Mockito.*;
 /**
  * Test for {@link TxnInterceptor}
  */
-@RunWith( HierarchicalContextRunner.class )
+@RunWith(HierarchicalContextRunner.class)
 public class TxnInterceptorTest
 {
 
@@ -59,9 +59,7 @@ public class TxnInterceptorTest
         txnAnnotationHelper = mock( TransactionalAnnotationHelper.class );
 
         sut = new TxnInterceptor();
-        sut.unitOfWork = unitOfWork;
-        sut.tfProvider = tfProvider;
-        sut.txnAnnotationHelper = txnAnnotationHelper;
+        sut.init( unitOfWork, tfProvider, txnAnnotationHelper );
 
         invocation = mock( MethodInvocation.class );
     }

Added: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/MultiplePuTest.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/MultiplePuTest.java?rev=1600690&view=auto
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/MultiplePuTest.java (added)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/MultiplePuTest.java Thu Jun  5 16:02:07 2014
@@ -0,0 +1,126 @@
+package org.apache.onami.persist.test;
+
+/*
+ * 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.
+ */
+
+import com.google.inject.BindingAnnotation;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Key;
+import org.apache.onami.persist.EntityManagerProvider;
+import org.apache.onami.persist.PersistenceModule;
+import org.apache.onami.persist.PersistenceService;
+import org.apache.onami.persist.UnitOfWork;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.*;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+public class MultiplePuTest
+{
+
+    private Injector injector;
+
+    private EntityManagerProvider firstEmp;
+
+    private EntityManagerProvider secondEmp;
+
+    @Before
+    public void setUp()
+    {
+        final PersistenceModule pm = createPersistenceModuleForTest();
+        injector = Guice.createInjector( pm );
+
+        //startup persistence
+        injector.getInstance( Key.get( PersistenceService.class, FirstPU.class ) ).start();
+        injector.getInstance( Key.get( PersistenceService.class, SecondPU.class ) ).start();
+
+        injector.getInstance( Key.get( UnitOfWork.class, FirstPU.class ) ).begin();
+        injector.getInstance( Key.get( UnitOfWork.class, SecondPU.class ) ).begin();
+
+        firstEmp = injector.getInstance( Key.get( EntityManagerProvider.class, FirstPU.class ) );
+        secondEmp = injector.getInstance( Key.get( EntityManagerProvider.class, SecondPU.class ) );
+    }
+
+    @After
+    public void tearDown()
+        throws Exception
+    {
+        injector.getInstance( Key.get( UnitOfWork.class, FirstPU.class ) ).end();
+        injector.getInstance( Key.get( UnitOfWork.class, SecondPU.class ) ).end();
+
+        injector.getInstance( Key.get( PersistenceService.class, FirstPU.class ) ).stop();
+        injector.getInstance( Key.get( PersistenceService.class, SecondPU.class ) ).stop();
+    }
+
+    private PersistenceModule createPersistenceModuleForTest()
+    {
+        return new PersistenceModule()
+        {
+
+            @Override
+            protected void configurePersistence()
+            {
+                bindApplicationManagedPersistenceUnit( "firstUnit" ).annotatedWith( FirstPU.class );
+                bindApplicationManagedPersistenceUnit( "secondUnit" ).annotatedWith( SecondPU.class );
+            }
+        };
+    }
+
+
+    @Test
+    public void storeUnitsInTwoPersistenceUnits()
+        throws Exception
+    {
+        // given
+        final TestEntity firstEntity = new TestEntity();
+        final TestEntity secondEntity = new TestEntity();
+
+        // when
+        firstEmp.get().persist( firstEntity );
+        secondEmp.get().persist( secondEntity );
+
+        // then
+        assertNotNull( firstEmp.get().find( TestEntity.class, firstEntity.getId() ) );
+        assertNotNull( secondEmp.get().find( TestEntity.class, secondEntity.getId() ) );
+        assertNull( firstEmp.get().find( TestEntity.class, secondEntity.getId() ) );
+        assertNull( secondEmp.get().find( TestEntity.class, firstEntity.getId() ) );
+    }
+
+    @Retention( RetentionPolicy.RUNTIME )
+    @Target( { FIELD, PARAMETER, METHOD } )
+    @BindingAnnotation
+    public static @interface FirstPU
+    {
+    }
+
+    @Retention( RetentionPolicy.RUNTIME )
+    @Target( { FIELD, PARAMETER, METHOD } )
+    @BindingAnnotation
+    public static @interface SecondPU
+    {
+    }
+}

Propchange: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/MultiplePuTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/MultiplePuTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/MultiplePuTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/TestEntity.java (from r1599234, onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/TransactionTestEntity.java)
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/TestEntity.java?p2=onami/trunk/persist/src/test/java/org/apache/onami/persist/test/TestEntity.java&p1=onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/TransactionTestEntity.java&r1=1599234&r2=1600690&rev=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/TransactionTestEntity.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/TestEntity.java Thu Jun  5 16:02:07 2014
@@ -1,4 +1,4 @@
-package org.apache.onami.persist.test.transaction.testframework;
+package org.apache.onami.persist.test;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -29,7 +29,7 @@ import java.util.UUID;
  * The ID will be unique in every run of a test.
  */
 @Entity
-public final class TransactionTestEntity
+public final class TestEntity
     implements Serializable
 {
 
@@ -43,7 +43,7 @@ public final class TransactionTestEntity
         return id;
     }
 
-    @SuppressWarnings("unused")
+    @SuppressWarnings( "unused" )
     // used by the persistence framework
     private void setId( UUID id )
     {

Added: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/UnderstandRequestInjectionTest.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/UnderstandRequestInjectionTest.java?rev=1600690&view=auto
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/UnderstandRequestInjectionTest.java (added)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/UnderstandRequestInjectionTest.java Thu Jun  5 16:02:07 2014
@@ -0,0 +1,122 @@
+package org.apache.onami.persist.test;
+
+/*
+ * 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.
+ */
+
+import com.google.inject.Guice;
+import com.google.inject.Inject;
+import com.google.inject.PrivateModule;
+import org.junit.Test;
+
+import java.util.Set;
+
+import static com.google.common.collect.Sets.newHashSet;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+/**
+ * Test for understanding how guice handles the requestInjection() method.
+ */
+public class UnderstandRequestInjectionTest
+{
+    @Test
+    public void requestInjectionInOnePrivateModule()
+        throws Exception
+    {
+        final ObjectWithSetterInjection obj = new ObjectWithSetterInjection();
+        Guice.createInjector( new PrivateModule()
+        {
+            @Override
+            protected void configure()
+            {
+                bind( Foo.class ).to( Foo1.class );
+                requestInjection( obj );
+            }
+        } );
+
+        obj.assertAddedTypes( 1 );
+    }
+
+    @Test
+    public void requestInjectionInTwoPrivateModule()
+        throws Exception
+    {
+        final ObjectWithSetterInjection obj = new ObjectWithSetterInjection();
+        Guice.createInjector( new PrivateModule()
+                              {
+                                  @Override
+                                  protected void configure()
+                                  {
+                                      bind( Foo.class ).to( Foo1.class );
+                                      requestInjection( obj );
+                                  }
+                              }, //                                                                 //
+                              new PrivateModule()
+                              {
+                                  @Override
+                                  protected void configure()
+                                  {
+                                      bind( Foo.class ).to( Foo2.class );
+                                  }
+                              }
+        );
+
+        obj.assertAddedTypes( 1 );
+    }
+
+    private static class ObjectWithSetterInjection
+    {
+        private Set<Integer> actuals = newHashSet();
+
+        @Inject
+        public void addFoo( Foo foo )
+        {
+            actuals.add( foo.type() );
+        }
+
+        void assertAddedTypes( Integer... types )
+        {
+            Set<Integer> expected = newHashSet( types );
+            assertThat( actuals, is( expected ) );
+        }
+    }
+
+    private interface Foo
+    {
+        int type();
+    }
+
+    private static class Foo1
+        implements Foo
+    {
+        public int type()
+        {
+            return 1;
+        }
+    }
+
+    private static class Foo2
+        implements Foo
+    {
+        public int type()
+        {
+            return 2;
+        }
+    }
+}

Propchange: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/UnderstandRequestInjectionTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/UnderstandRequestInjectionTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/UnderstandRequestInjectionTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/TransactionalTask.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/TransactionalTask.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/TransactionalTask.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/TransactionalTask.java Thu Jun  5 16:02:07 2014
@@ -22,6 +22,7 @@ package org.apache.onami.persist.test.tr
 import com.google.common.annotations.VisibleForTesting;
 import com.google.inject.Inject;
 import org.apache.onami.persist.EntityManagerProvider;
+import org.apache.onami.persist.test.TestEntity;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.RuntimeTestException;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.TestException;
 
@@ -33,8 +34,8 @@ import java.util.List;
  * A {@link TransactionalTask} is a task which is executed during a transaction
  * test. {@link TransactionalTask}s are passed to a {@link TransactionalWorker} which will call
  * them one after another.
- * The sub classes of {@link TransactionalTask} should create a {@link TransactionTestEntity} and
- * use {@link #storeEntity(TransactionTestEntity)} to persist entities in the DB. They also must
+ * The sub classes of {@link TransactionalTask} should create a {@link org.apache.onami.persist.test.TestEntity} and
+ * use {@link #storeEntity(org.apache.onami.persist.test.TestEntity)} to persist entities in the DB. They also must
  * call {@link #doOtherTasks()} to allow the {@link TransactionalWorker} to call the other scheduled
  * tasks.
  */
@@ -46,11 +47,11 @@ public abstract class TransactionalTask
 
     private TransactionalWorker worker;
 
-    private final List<TransactionTestEntity> persistedEntities = new ArrayList<TransactionTestEntity>();
+    private final List<TestEntity> persistedEntities = new ArrayList<TestEntity>();
 
     /**
      * Should 'try to' create entities in the persistent storage (i.e. DB).
-     * Use {@link #storeEntity(TransactionTestEntity)} to persist entities.
+     * Use {@link #storeEntity(org.apache.onami.persist.test.TestEntity)} to persist entities.
      *
      * @throws TestException        may be thrown to test rollback.
      * @throws RuntimeTestException may be thrown to test rollback.
@@ -75,7 +76,7 @@ public abstract class TransactionalTask
      *
      * @param entity the entity to store.
      */
-    protected final void storeEntity( TransactionTestEntity entity )
+    protected final void storeEntity( TestEntity entity )
     {
         final EntityManager entityManager = emProvider.get();
         entityManager.persist( entity );
@@ -90,7 +91,7 @@ public abstract class TransactionalTask
     }
 
     @VisibleForTesting
-    List<TransactionTestEntity> getPersistedEntities()
+    List<TestEntity> getPersistedEntities()
     {
         return persistedEntities;
     }

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/TransactionalWorker.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/TransactionalWorker.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/TransactionalWorker.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/TransactionalWorker.java Thu Jun  5 16:02:07 2014
@@ -25,6 +25,7 @@ import com.google.inject.Injector;
 import org.apache.onami.persist.EntityManagerProvider;
 import org.apache.onami.persist.Transactional;
 import org.apache.onami.persist.UnitOfWork;
+import org.apache.onami.persist.test.TestEntity;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.RuntimeTestException;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.TestException;
 
@@ -48,7 +49,7 @@ public class TransactionalWorker
 
     private final TransactionalTasks tasks = new TransactionalTasks();
 
-    private final List<TransactionTestEntity> storedEntities = new ArrayList<TransactionTestEntity>();
+    private final List<TestEntity> storedEntities = new ArrayList<TestEntity>();
 
     @Inject
     private Injector injector;
@@ -92,7 +93,7 @@ public class TransactionalWorker
 
     /**
      * Executes the previously specified tasks. All entities which were stored using
-     * {@link TransactionalTask#storeEntity(TransactionTestEntity)} are collected by the worker.<p/>
+     * {@link TransactionalTask#storeEntity(org.apache.onami.persist.test.TestEntity)} are collected by the worker.<p/>
      */
     public void doTasks()
     {
@@ -124,10 +125,10 @@ public class TransactionalWorker
     public void assertAllEntitiesHaveBeenPersisted()
     {
         checkState( !storedEntities.isEmpty(), "no entities to check" );
-        for ( TransactionTestEntity storedEntity : storedEntities )
+        for ( TestEntity storedEntity : storedEntities )
         {
             assertNotNull( "At least one entity which should have been persisted was NOT found in the DB. " + tasks,
-                           emProvider.get().find( TransactionTestEntity.class, storedEntity.getId() ) );
+                           emProvider.get().find( TestEntity.class, storedEntity.getId() ) );
         }
     }
 
@@ -138,10 +139,10 @@ public class TransactionalWorker
     public void assertNoEntityHasBeenPersisted()
     {
         checkState( !storedEntities.isEmpty(), "no entities to check" );
-        for ( TransactionTestEntity storedEntity : storedEntities )
+        for ( TestEntity storedEntity : storedEntities )
         {
             assertNull( "At least one entity which should NOT have been persisted was found in the DB. " + tasks,
-                        emProvider.get().find( TransactionTestEntity.class, storedEntity.getId() ) );
+                        emProvider.get().find( TestEntity.class, storedEntity.getId() ) );
         }
     }
 

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnAnyThrowingNone.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnAnyThrowingNone.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnAnyThrowingNone.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnAnyThrowingNone.java Thu Jun  5 16:02:07 2014
@@ -20,7 +20,7 @@ package org.apache.onami.persist.test.tr
  */
 
 import org.apache.onami.persist.Transactional;
-import org.apache.onami.persist.test.transaction.testframework.TransactionTestEntity;
+import org.apache.onami.persist.test.TestEntity;
 import org.apache.onami.persist.test.transaction.testframework.TransactionalTask;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.RuntimeTestException;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.TestException;
@@ -42,7 +42,7 @@ public class TaskRollingBackOnAnyThrowin
     public void doTransactional()
         throws TestException, RuntimeTestException
     {
-        storeEntity( new TransactionTestEntity() );
+        storeEntity( new TestEntity() );
         doOtherTasks();
     }
 

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnAnyThrowingRuntimeTestException.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnAnyThrowingRuntimeTestException.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnAnyThrowingRuntimeTestException.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnAnyThrowingRuntimeTestException.java Thu Jun  5 16:02:07 2014
@@ -20,7 +20,7 @@ package org.apache.onami.persist.test.tr
  */
 
 import org.apache.onami.persist.Transactional;
-import org.apache.onami.persist.test.transaction.testframework.TransactionTestEntity;
+import org.apache.onami.persist.test.TestEntity;
 import org.apache.onami.persist.test.transaction.testframework.TransactionalTask;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.RuntimeTestException;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.TestException;
@@ -42,7 +42,7 @@ public class TaskRollingBackOnAnyThrowin
     public void doTransactional()
         throws TestException, RuntimeTestException
     {
-        storeEntity( new TransactionTestEntity() );
+        storeEntity( new TestEntity() );
         doOtherTasks();
         throw new RuntimeTestException( getClass().getSimpleName() );
     }

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnAnyThrowingTestException.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnAnyThrowingTestException.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnAnyThrowingTestException.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnAnyThrowingTestException.java Thu Jun  5 16:02:07 2014
@@ -20,7 +20,7 @@ package org.apache.onami.persist.test.tr
  */
 
 import org.apache.onami.persist.Transactional;
-import org.apache.onami.persist.test.transaction.testframework.TransactionTestEntity;
+import org.apache.onami.persist.test.TestEntity;
 import org.apache.onami.persist.test.transaction.testframework.TransactionalTask;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.RuntimeTestException;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.TestException;
@@ -42,7 +42,7 @@ public class TaskRollingBackOnAnyThrowin
     public void doTransactional()
         throws TestException, RuntimeTestException
     {
-        storeEntity( new TransactionTestEntity() );
+        storeEntity( new TestEntity() );
         doOtherTasks();
         throw new TestException( getClass().getSimpleName() );
     }

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnNoneThrowingNone.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnNoneThrowingNone.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnNoneThrowingNone.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnNoneThrowingNone.java Thu Jun  5 16:02:07 2014
@@ -20,7 +20,7 @@ package org.apache.onami.persist.test.tr
  */
 
 import org.apache.onami.persist.Transactional;
-import org.apache.onami.persist.test.transaction.testframework.TransactionTestEntity;
+import org.apache.onami.persist.test.TestEntity;
 import org.apache.onami.persist.test.transaction.testframework.TransactionalTask;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.RuntimeTestException;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.TestException;
@@ -42,7 +42,7 @@ public class TaskRollingBackOnNoneThrowi
     public void doTransactional()
         throws TestException, RuntimeTestException
     {
-        storeEntity( new TransactionTestEntity() );
+        storeEntity( new TestEntity() );
         doOtherTasks();
     }
 

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnNoneThrowingRuntimeTestException.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnNoneThrowingRuntimeTestException.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnNoneThrowingRuntimeTestException.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnNoneThrowingRuntimeTestException.java Thu Jun  5 16:02:07 2014
@@ -20,7 +20,7 @@ package org.apache.onami.persist.test.tr
  */
 
 import org.apache.onami.persist.Transactional;
-import org.apache.onami.persist.test.transaction.testframework.TransactionTestEntity;
+import org.apache.onami.persist.test.TestEntity;
 import org.apache.onami.persist.test.transaction.testframework.TransactionalTask;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.RuntimeTestException;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.TestException;
@@ -42,7 +42,7 @@ public class TaskRollingBackOnNoneThrowi
     public void doTransactional()
         throws TestException, RuntimeTestException
     {
-        storeEntity( new TransactionTestEntity() );
+        storeEntity( new TestEntity() );
         doOtherTasks();
         throw new RuntimeTestException( getClass().getSimpleName() );
     }

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnNoneThrowingTestException.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnNoneThrowingTestException.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnNoneThrowingTestException.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnNoneThrowingTestException.java Thu Jun  5 16:02:07 2014
@@ -20,7 +20,7 @@ package org.apache.onami.persist.test.tr
  */
 
 import org.apache.onami.persist.Transactional;
-import org.apache.onami.persist.test.transaction.testframework.TransactionTestEntity;
+import org.apache.onami.persist.test.TestEntity;
 import org.apache.onami.persist.test.transaction.testframework.TransactionalTask;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.RuntimeTestException;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.TestException;
@@ -42,7 +42,7 @@ public class TaskRollingBackOnNoneThrowi
     public void doTransactional()
         throws TestException, RuntimeTestException
     {
-        storeEntity( new TransactionTestEntity() );
+        storeEntity( new TestEntity() );
         doOtherTasks();
         throw new TestException();
     }

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingNone.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingNone.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingNone.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingNone.java Thu Jun  5 16:02:07 2014
@@ -20,7 +20,7 @@ package org.apache.onami.persist.test.tr
  */
 
 import org.apache.onami.persist.Transactional;
-import org.apache.onami.persist.test.transaction.testframework.TransactionTestEntity;
+import org.apache.onami.persist.test.TestEntity;
 import org.apache.onami.persist.test.transaction.testframework.TransactionalTask;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.RuntimeTestException;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.TestException;
@@ -42,7 +42,7 @@ public class TaskRollingBackOnRuntimeTes
     public void doTransactional()
         throws TestException, RuntimeTestException
     {
-        storeEntity( new TransactionTestEntity() );
+        storeEntity( new TestEntity() );
         doOtherTasks();
     }
 

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException.java Thu Jun  5 16:02:07 2014
@@ -20,7 +20,7 @@ package org.apache.onami.persist.test.tr
  */
 
 import org.apache.onami.persist.Transactional;
-import org.apache.onami.persist.test.transaction.testframework.TransactionTestEntity;
+import org.apache.onami.persist.test.TestEntity;
 import org.apache.onami.persist.test.transaction.testframework.TransactionalTask;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.RuntimeTestException;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.TestException;
@@ -42,7 +42,7 @@ public class TaskRollingBackOnRuntimeTes
     public void doTransactional()
         throws TestException, RuntimeTestException
     {
-        storeEntity( new TransactionTestEntity() );
+        storeEntity( new TestEntity() );
         doOtherTasks();
         throw new RuntimeTestException( getClass().getSimpleName() );
     }

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingTestException.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingTestException.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingTestException.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingTestException.java Thu Jun  5 16:02:07 2014
@@ -20,7 +20,7 @@ package org.apache.onami.persist.test.tr
  */
 
 import org.apache.onami.persist.Transactional;
-import org.apache.onami.persist.test.transaction.testframework.TransactionTestEntity;
+import org.apache.onami.persist.test.TestEntity;
 import org.apache.onami.persist.test.transaction.testframework.TransactionalTask;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.RuntimeTestException;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.TestException;
@@ -42,7 +42,7 @@ public class TaskRollingBackOnRuntimeTes
     public void doTransactional()
         throws TestException, RuntimeTestException
     {
-        storeEntity( new TransactionTestEntity() );
+        storeEntity( new TestEntity() );
         doOtherTasks();
         throw new TestException( getClass().getSimpleName() );
     }

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnTestExceptionThrowingNone.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnTestExceptionThrowingNone.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnTestExceptionThrowingNone.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnTestExceptionThrowingNone.java Thu Jun  5 16:02:07 2014
@@ -20,7 +20,7 @@ package org.apache.onami.persist.test.tr
  */
 
 import org.apache.onami.persist.Transactional;
-import org.apache.onami.persist.test.transaction.testframework.TransactionTestEntity;
+import org.apache.onami.persist.test.TestEntity;
 import org.apache.onami.persist.test.transaction.testframework.TransactionalTask;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.RuntimeTestException;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.TestException;
@@ -42,7 +42,7 @@ public class TaskRollingBackOnTestExcept
     public void doTransactional()
         throws TestException, RuntimeTestException
     {
-        storeEntity( new TransactionTestEntity() );
+        storeEntity( new TestEntity() );
         doOtherTasks();
     }
 

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnTestExceptionThrowingRuntimeTestException.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnTestExceptionThrowingRuntimeTestException.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnTestExceptionThrowingRuntimeTestException.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnTestExceptionThrowingRuntimeTestException.java Thu Jun  5 16:02:07 2014
@@ -20,7 +20,7 @@ package org.apache.onami.persist.test.tr
  */
 
 import org.apache.onami.persist.Transactional;
-import org.apache.onami.persist.test.transaction.testframework.TransactionTestEntity;
+import org.apache.onami.persist.test.TestEntity;
 import org.apache.onami.persist.test.transaction.testframework.TransactionalTask;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.RuntimeTestException;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.TestException;
@@ -42,7 +42,7 @@ public class TaskRollingBackOnTestExcept
     public void doTransactional()
         throws TestException, RuntimeTestException
     {
-        storeEntity( new TransactionTestEntity() );
+        storeEntity( new TestEntity() );
         doOtherTasks();
         throw new RuntimeTestException( getClass().getSimpleName() );
     }

Modified: onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnTestExceptionThrowingTestException.java
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnTestExceptionThrowingTestException.java?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnTestExceptionThrowingTestException.java (original)
+++ onami/trunk/persist/src/test/java/org/apache/onami/persist/test/transaction/testframework/tasks/TaskRollingBackOnTestExceptionThrowingTestException.java Thu Jun  5 16:02:07 2014
@@ -20,7 +20,7 @@ package org.apache.onami.persist.test.tr
  */
 
 import org.apache.onami.persist.Transactional;
-import org.apache.onami.persist.test.transaction.testframework.TransactionTestEntity;
+import org.apache.onami.persist.test.TestEntity;
 import org.apache.onami.persist.test.transaction.testframework.TransactionalTask;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.RuntimeTestException;
 import org.apache.onami.persist.test.transaction.testframework.exceptions.TestException;
@@ -42,7 +42,7 @@ public class TaskRollingBackOnTestExcept
     public void doTransactional()
         throws TestException, RuntimeTestException
     {
-        storeEntity( new TransactionTestEntity() );
+        storeEntity( new TestEntity() );
         doOtherTasks();
         throw new TestException( getClass().getSimpleName() );
     }

Modified: onami/trunk/persist/src/test/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/onami/trunk/persist/src/test/resources/META-INF/persistence.xml?rev=1600690&r1=1600689&r2=1600690&view=diff
==============================================================================
--- onami/trunk/persist/src/test/resources/META-INF/persistence.xml (original)
+++ onami/trunk/persist/src/test/resources/META-INF/persistence.xml Thu Jun  5 16:02:07 2014
@@ -26,7 +26,7 @@
     <persistence-unit name="testUnit" transaction-type="RESOURCE_LOCAL">
         <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
 
-        <class>org.apache.onami.persist.test.transaction.testframework.TransactionTestEntity</class>
+        <class>org.apache.onami.persist.test.TestEntity</class>
 
         <exclude-unlisted-classes>true</exclude-unlisted-classes>
 
@@ -43,4 +43,46 @@
         </properties>
     </persistence-unit>
 
+    <!-- JPA first "unit" -->
+    <persistence-unit name="firstUnit" transaction-type="RESOURCE_LOCAL">
+        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
+
+        <class>org.apache.onami.persist.test.TestEntity</class>
+
+        <exclude-unlisted-classes>true</exclude-unlisted-classes>
+
+        <properties>
+            <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
+            <property name="hibernate.connection.url" value="jdbc:hsqldb:mem:first"/>
+            <property name="hibernate.connection.username" value="sa"/>
+            <property name="hibernate.connection.password" value="sa"/>
+            <property name="hibernate.connection.pool_size" value="2"/>
+            <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
+            <property name="hibernate.cache_provider" value="org.hibernate.cache.NoCacheProvider"/>
+
+            <property name="hibernate.hbm2ddl.auto" value="create"/>
+        </properties>
+    </persistence-unit>
+
+    <!-- JPA second "unit" -->
+    <persistence-unit name="secondUnit" transaction-type="RESOURCE_LOCAL">
+        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
+
+        <class>org.apache.onami.persist.test.TestEntity</class>
+
+        <exclude-unlisted-classes>true</exclude-unlisted-classes>
+
+        <properties>
+            <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
+            <property name="hibernate.connection.url" value="jdbc:hsqldb:mem:second"/>
+            <property name="hibernate.connection.username" value="sa"/>
+            <property name="hibernate.connection.password" value="sa"/>
+            <property name="hibernate.connection.pool_size" value="2"/>
+            <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
+            <property name="hibernate.cache_provider" value="org.hibernate.cache.NoCacheProvider"/>
+
+            <property name="hibernate.hbm2ddl.auto" value="create"/>
+        </properties>
+    </persistence-unit>
+
 </persistence>