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 2013/11/15 00:19:37 UTC
svn commit: r1542116 [3/3] - in /onami/sandbox/persist: ./ src/ src/main/
src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/onami/ src/main/java/org/apache/onami/persist/
src/test/ src/test/java/ src/test/java/org/ sr...
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/SingleTransactionTest.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/SingleTransactionTest.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/SingleTransactionTest.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/SingleTransactionTest.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,224 @@
+package org.apache.onami.persist;
+
+/*
+ * 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.Injector;
+import junit.framework.TestCase;
+import org.apache.onami.persist.testframework.TransactionalWorker;
+import org.apache.onami.persist.testframework.tasks.TaskRollingBackOnAnyThrowingNone;
+import org.apache.onami.persist.testframework.tasks.TaskRollingBackOnAnyThrowingRuntimeTestException;
+import org.apache.onami.persist.testframework.tasks.TaskRollingBackOnAnyThrowingTestException;
+import org.apache.onami.persist.testframework.tasks.TaskRollingBackOnNoneThrowingNone;
+import org.apache.onami.persist.testframework.tasks.TaskRollingBackOnNoneThrowingRuntimeTestException;
+import org.apache.onami.persist.testframework.tasks.TaskRollingBackOnNoneThrowingTestException;
+import org.apache.onami.persist.testframework.tasks.TaskRollingBackOnRuntimeTestExceptionThrowingNone;
+import org.apache.onami.persist.testframework.tasks.TaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException;
+import org.apache.onami.persist.testframework.tasks.TaskRollingBackOnRuntimeTestExceptionThrowingTestException;
+import org.apache.onami.persist.testframework.tasks.TaskRollingBackOnTestExceptionThrowingNone;
+import org.apache.onami.persist.testframework.tasks.TaskRollingBackOnTestExceptionThrowingRuntimeTestException;
+import org.apache.onami.persist.testframework.tasks.TaskRollingBackOnTestExceptionThrowingTestException;
+
+/**
+ * Tests running a single non nested transaction.
+ * The test make us of the testframework. For every test a new Injector is created.
+ */
+public class SingleTransactionTest
+ extends TestCase
+{
+
+ private Injector injector;
+
+ @Override
+ public void setUp()
+ {
+ final PersistenceModule pm = new PersistenceModule();
+ pm.addApplicationManagedPersistenceUnit( "testUnit" );
+ injector = Guice.createInjector( pm );
+
+ //startup persistence
+ injector.getInstance( PersistenceService.class ).start();
+ }
+
+ @Override
+ public void tearDown()
+ {
+ injector.getInstance( PersistenceService.class ).stop();
+ injector = null;
+ }
+
+
+ public void testTaskRollingBackOnAnyThrowingNone()
+ {
+ // given
+ final TransactionalWorker worker = injector.getInstance( TransactionalWorker.class );
+ worker.scheduleTask( TaskRollingBackOnAnyThrowingNone.class );
+
+ // when
+ worker.doTasks();
+
+ // then
+ worker.assertAllEntitesHaveBeenPersisted();
+ }
+
+ public void testTaskRollingBackOnAnyThrowingRuntimeTestException()
+ {
+ // given
+ final TransactionalWorker worker = injector.getInstance( TransactionalWorker.class );
+ worker.scheduleTask( TaskRollingBackOnAnyThrowingRuntimeTestException.class );
+
+ // when
+ worker.doTasks();
+
+ // then
+ worker.assertNoEntityHasBeenPersisted();
+ }
+
+ public void testTaskRollingBackOnAnyThrowingTestException()
+ {
+ // given
+ final TransactionalWorker worker = injector.getInstance( TransactionalWorker.class );
+ worker.scheduleTask( TaskRollingBackOnAnyThrowingTestException.class );
+
+ // when
+ worker.doTasks();
+
+ // then
+ worker.assertNoEntityHasBeenPersisted();
+ }
+
+ public void testTaskRollingBackOnNoneThrowingNone()
+ {
+ // given
+ final TransactionalWorker worker = injector.getInstance( TransactionalWorker.class );
+ worker.scheduleTask( TaskRollingBackOnNoneThrowingNone.class );
+
+ // when
+ worker.doTasks();
+
+ // then
+ worker.assertAllEntitesHaveBeenPersisted();
+ }
+
+ public void testTaskRollingBackOnNoneThrowingRuntimeTestException()
+ {
+ // given
+ final TransactionalWorker worker = injector.getInstance( TransactionalWorker.class );
+ worker.scheduleTask( TaskRollingBackOnNoneThrowingRuntimeTestException.class );
+
+ // when
+ worker.doTasks();
+
+ // then
+ worker.assertAllEntitesHaveBeenPersisted();
+ }
+
+ public void testTaskRollingBackOnNoneThrowingTestException()
+ {
+ // given
+ final TransactionalWorker worker = injector.getInstance( TransactionalWorker.class );
+ worker.scheduleTask( TaskRollingBackOnNoneThrowingTestException.class );
+
+ // when
+ worker.doTasks();
+
+ // then
+ worker.assertAllEntitesHaveBeenPersisted();
+ }
+
+ public void testTaskRollingBackOnRuntimeTestExceptionThrowingNone()
+ {
+ // given
+ final TransactionalWorker worker = injector.getInstance( TransactionalWorker.class );
+ worker.scheduleTask( TaskRollingBackOnRuntimeTestExceptionThrowingNone.class );
+
+ // when
+ worker.doTasks();
+
+ // then
+ worker.assertAllEntitesHaveBeenPersisted();
+ }
+
+ public void testTaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException()
+ {
+ // given
+ final TransactionalWorker worker = injector.getInstance( TransactionalWorker.class );
+ worker.scheduleTask( TaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException.class );
+
+ // when
+ worker.doTasks();
+
+ // then
+ worker.assertNoEntityHasBeenPersisted();
+ }
+
+ public void testTaskRollingBackOnRuntimeTestExceptionThrowingTestException()
+ {
+ // given
+ final TransactionalWorker worker = injector.getInstance( TransactionalWorker.class );
+ worker.scheduleTask( TaskRollingBackOnRuntimeTestExceptionThrowingTestException.class );
+
+ // when
+ worker.doTasks();
+
+ // then
+ worker.assertAllEntitesHaveBeenPersisted();
+ }
+
+ public void testTaskRollingBackOnTestExceptionThrowingNone()
+ {
+ // given
+ final TransactionalWorker worker = injector.getInstance( TransactionalWorker.class );
+ worker.scheduleTask( TaskRollingBackOnTestExceptionThrowingNone.class );
+
+ // when
+ worker.doTasks();
+
+ // then
+ worker.assertAllEntitesHaveBeenPersisted();
+ }
+
+ public void testTaskRollingBackOnTestExceptionThrowingRuntimeTestException()
+ {
+ // given
+ final TransactionalWorker worker = injector.getInstance( TransactionalWorker.class );
+ worker.scheduleTask( TaskRollingBackOnTestExceptionThrowingRuntimeTestException.class );
+
+ // when
+ worker.doTasks();
+
+ // then
+ worker.assertAllEntitesHaveBeenPersisted();
+ }
+
+ public void testTaskRollingBackOnTestExceptionThrowingTestException()
+ {
+ // given
+ final TransactionalWorker worker = injector.getInstance( TransactionalWorker.class );
+ worker.scheduleTask( TaskRollingBackOnTestExceptionThrowingTestException.class );
+
+ // when
+ worker.doTasks();
+
+ // then
+ worker.assertNoEntityHasBeenPersisted();
+ }
+
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/SingleTransactionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/SingleTransactionTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/SingleTransactionTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionTestEntity.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionTestEntity.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionTestEntity.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionTestEntity.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,85 @@
+package org.apache.onami.persist.testframework;
+
+/*
+ * 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 javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import java.io.Serializable;
+import java.util.UUID;
+
+/**
+ * Entities which can be created during transaction tests.
+ * The ID will be unique in every run of a test.
+ */
+@Entity
+public final class TransactionTestEntity
+ implements Serializable
+{
+
+ private static final long serialVersionUID = 1L;
+
+ private UUID id = UUID.randomUUID();
+
+ private String text;
+
+ /**
+ * Default constructor.
+ */
+ public TransactionTestEntity()
+ {
+ // nop
+ }
+
+ /**
+ * Convenience constructor for directly setting the text.
+ *
+ * @param text will be stored in the column {@code text}.
+ */
+ public TransactionTestEntity( String text )
+ {
+ this.text = text;
+ }
+
+ @Id
+ public UUID getId()
+ {
+ return id;
+ }
+
+ @SuppressWarnings("unused")
+ // used by the persistence framework
+ private void setId( UUID id )
+ {
+ this.id = id;
+ }
+
+ @Column(length = 200)
+ public String getText()
+ {
+ return text;
+ }
+
+ public void setText( String text )
+ {
+ this.text = text;
+ }
+
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionTestEntity.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionTestEntity.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionTestEntity.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionalTask.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionalTask.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionalTask.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionalTask.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,95 @@
+package org.apache.onami.persist.testframework;
+
+/*
+ * 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.common.annotations.VisibleForTesting;
+import com.google.inject.Inject;
+import org.apache.onami.persist.EntityManagerProvider;
+import org.apache.onami.persist.testframework.exceptions.RuntimeTestException;
+import org.apache.onami.persist.testframework.exceptions.TestException;
+
+import java.util.ArrayList;
+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
+ * call {@link #doOtherTasks()} to allow the {@link TransactionalWorker} to call the other scheduled
+ * tasks.
+ */
+public abstract class TransactionalTask
+{
+
+ @Inject
+ private EntityManagerProvider emProvider;
+
+ private TransactionalWorker worker;
+
+ private final List<TransactionTestEntity> persistedEntities = new ArrayList<TransactionTestEntity>();
+
+ /**
+ * Should 'try to' create entities in the persistent storage (i.e. DB).
+ * Use {@link #storeEntity(TransactionTestEntity)} to persist entities.
+ *
+ * @throws TestException may be thrown to test rollback.
+ * @throws RuntimeTestException may be thrown to test rollback.
+ */
+ public abstract void doTransactional()
+ throws TestException, RuntimeTestException;
+
+ /**
+ * Does other tasks.
+ *
+ * @throws TestException may be thrown to test rollback.
+ * @throws RuntimeTestException may be thrown to test rollback.
+ */
+ protected final void doOtherTasks()
+ throws TestException, RuntimeTestException
+ {
+ worker.doNextTask();
+ }
+
+ /**
+ * Stores an entity.
+ *
+ * @param entity the entity to store.
+ */
+ protected final void storeEntity( TransactionTestEntity entity )
+ {
+ emProvider.get().persist( entity );
+ persistedEntities.add( entity );
+ }
+
+ @VisibleForTesting
+ void setWorker( TransactionalWorker transactionalWorker )
+ {
+ worker = transactionalWorker;
+ }
+
+ @VisibleForTesting
+ List<TransactionTestEntity> getPersistedEntities()
+ {
+ return persistedEntities;
+ }
+
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionalTask.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionalTask.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionalTask.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionalWorker.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionalWorker.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionalWorker.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionalWorker.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,232 @@
+package org.apache.onami.persist.testframework;
+
+/*
+ * 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.common.annotations.VisibleForTesting;
+import com.google.inject.Inject;
+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.testframework.exceptions.RuntimeTestException;
+import org.apache.onami.persist.testframework.exceptions.TestException;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+/**
+ * Worker for transactional tests. The worker instantiates the {@link TransactionalTask} and
+ * executes them.
+ */
+public class TransactionalWorker
+{
+
+ private static final String DO_TRANSACTIONAL = "doTransactional";
+
+ private final TransactionalTasks tasks = new TransactionalTasks();
+
+ private final List<TransactionTestEntity> storedEntities = new ArrayList<TransactionTestEntity>();
+
+ @Inject
+ private Injector injector;
+
+ @Inject
+ private UnitOfWork unitOfWork;
+
+ @Inject
+ private EntityManagerProvider emProvider;
+
+ /**
+ * Schedules a task for execution by this worker.
+ * If more than one task are scheduled they will be called in the order they have been
+ * scheduled.
+ *
+ * @param taskType the task to schedule for execution.
+ */
+ public void scheduleTask( Class<? extends TransactionalTask> taskType )
+ {
+ checkTransactionalAnnotation( taskType );
+ final TransactionalTask task = injector.getInstance( taskType );
+ task.setWorker( this );
+ tasks.add( task );
+ }
+
+ private void checkTransactionalAnnotation( Class<? extends TransactionalTask> taskType )
+ {
+ try
+ {
+ final Method method = taskType.getMethod( DO_TRANSACTIONAL );
+ final Transactional annotation = method.getAnnotation( Transactional.class );
+ checkNotNull( annotation, "@Transactional annotation missing on %s.%s", taskType.getSimpleName(),
+ DO_TRANSACTIONAL );
+ }
+ catch ( NoSuchMethodException e )
+ {
+ // should never occure.
+ throw new RuntimeException( e );
+ }
+ }
+
+ /**
+ * Executes the previously specified tasks. All entities which were stored using
+ * {@link TransactionalTask#storeEntity(TransactionTestEntity)} are collected by the worker.<p/>
+ */
+ public void doTasks()
+ {
+ checkState( tasks.hasTasks(), "no tasks have been added to the worker." );
+ checkState( tasks.hasNext(), "doTasks() has already been executed." );
+ checkState( !unitOfWork.isActive(), "Active UnitOfWork found." );
+
+ try
+ {
+ doNextTask();
+ }
+ catch ( TestException e )
+ {
+ // do nothing
+ }
+ catch ( RuntimeTestException e )
+ {
+ // do nothing
+ }
+
+ checkState( !tasks.hasNext(), "One of the tasks forgot to call doOtherTasks()." );
+ checkState( !unitOfWork.isActive(), "Active UnitOfWork after tasks found." );
+ }
+
+ /**
+ * Check all stored entities if they actually have been persisted in the DB.
+ */
+ @Transactional
+ public void assertAllEntitesHaveBeenPersisted()
+ {
+ checkState( !storedEntities.isEmpty(), "no entities to check" );
+ for ( TransactionTestEntity storedEntity : storedEntities )
+ {
+ assertNotNull( "At least one entity which should have been peristed was NOT found in the DB. " + tasks,
+ emProvider.get().find( TransactionTestEntity.class, storedEntity.getId() ) );
+ }
+ }
+
+ /**
+ * Check all stored entities if they actually have NOT been persisted in the DB.
+ */
+ @Transactional
+ public void assertNoEntityHasBeenPersisted()
+ {
+ checkState( !storedEntities.isEmpty(), "no entities to check" );
+ for ( TransactionTestEntity storedEntity : storedEntities )
+ {
+ assertNull( "At least one entity which should NOT have been peristed was found in the DB. " + tasks,
+ emProvider.get().find( TransactionTestEntity.class, storedEntity.getId() ) );
+ }
+ }
+
+ @VisibleForTesting
+ void doNextTask()
+ throws TestException
+ {
+ if ( tasks.hasNext() )
+ {
+ final TransactionalTask task = tasks.next();
+ try
+ {
+ task.doTransactional();
+ }
+ finally
+ {
+ storedEntities.addAll( task.getPersistedEntities() );
+ }
+ }
+ }
+
+
+ /**
+ * Class holding the tasks of a worker.
+ */
+ private static class TransactionalTasks
+ {
+
+ private final List<TransactionalTask> tasks = new ArrayList<TransactionalTask>();
+
+ private int pos = 0;
+
+ /**
+ * @return {@code true} if there have already been tasks added.
+ */
+ public boolean hasTasks()
+ {
+ return !tasks.isEmpty();
+ }
+
+ /**
+ * Add a task.
+ *
+ * @param task the task to add.
+ * @throws IllegalStateException if {@link #next()} has already been called on this instance.
+ */
+ public void add( TransactionalTask task )
+ {
+ checkState( pos == 0 );
+ tasks.add( task );
+ }
+
+ /**
+ * @return {@code true} if there are more tasks.
+ */
+ public boolean hasNext()
+ {
+ return pos < tasks.size();
+ }
+
+ /**
+ * @return the next task.
+ * @throws IndexOutOfBoundsException if there are no more tasks.
+ */
+ public TransactionalTask next()
+ {
+ final TransactionalTask result = tasks.get( pos );
+ pos++;
+ return result;
+ }
+
+ @Override
+ public String toString()
+ {
+ final StringBuilder sb = new StringBuilder( "Tasks[" );
+ String separator = "";
+ for ( TransactionalTask t : tasks )
+ {
+ sb.append( separator );
+ final String taskType = t.getClass().getSimpleName();
+ sb.append( taskType.replaceAll( "\\$\\$EnhancerByGuice\\$\\$.*", "" ) );
+ separator = ", ";
+ }
+ sb.append( "]" );
+ return sb.toString();
+ }
+ }
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionalWorker.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionalWorker.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/TransactionalWorker.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/exceptions/RuntimeTestException.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/exceptions/RuntimeTestException.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/exceptions/RuntimeTestException.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/exceptions/RuntimeTestException.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,58 @@
+package org.apache.onami.persist.testframework.exceptions;
+
+/*
+ * 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 org.apache.onami.persist.testframework.TransactionalTask;
+
+/**
+ * Exception which can be thrown by a {@link TransactionalTask}.
+ */
+public class RuntimeTestException
+ extends RuntimeException
+{
+
+ private static final long serialVersionUID = 1L;
+
+ private final String message;
+
+ /**
+ * Constructor.
+ */
+ public RuntimeTestException()
+ {
+ this.message = RuntimeTestException.class.getSimpleName();
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param message the message of the exception.
+ */
+ public RuntimeTestException( String message )
+ {
+ this.message = message;
+ }
+
+ @Override
+ public String getMessage()
+ {
+ return message;
+ }
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/exceptions/RuntimeTestException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/exceptions/RuntimeTestException.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/exceptions/RuntimeTestException.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/exceptions/TestException.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/exceptions/TestException.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/exceptions/TestException.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/exceptions/TestException.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,58 @@
+package org.apache.onami.persist.testframework.exceptions;
+
+/*
+ * 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 org.apache.onami.persist.testframework.TransactionalTask;
+
+/**
+ * Exception which can be thrown by a {@link TransactionalTask}.
+ */
+public class TestException
+ extends Exception
+{
+
+ private static final long serialVersionUID = 1L;
+
+ private final String message;
+
+ /**
+ * Constructor.
+ */
+ public TestException()
+ {
+ message = TestException.class.getSimpleName();
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param message the message of the exception.
+ */
+ public TestException( String message )
+ {
+ this.message = message;
+ }
+
+ @Override
+ public String getMessage()
+ {
+ return message;
+ }
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/exceptions/TestException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/exceptions/TestException.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/exceptions/TestException.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingNone.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingNone.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingNone.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingNone.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,49 @@
+package org.apache.onami.persist.testframework.tasks;
+
+/*
+ * 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 org.apache.onami.persist.Transactional;
+import org.apache.onami.persist.testframework.TransactionTestEntity;
+import org.apache.onami.persist.testframework.TransactionalTask;
+import org.apache.onami.persist.testframework.exceptions.RuntimeTestException;
+import org.apache.onami.persist.testframework.exceptions.TestException;
+
+/**
+ * Task which stores an entity and will:
+ * - roll back if any exception happened.
+ * - throw no new exception.
+ */
+public class TaskRollingBackOnAnyThrowingNone
+ extends TransactionalTask
+{
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @Transactional(rollbackOn = Exception.class)
+ public void doTransactional()
+ throws TestException, RuntimeTestException
+ {
+ storeEntity( new TransactionTestEntity() );
+ doOtherTasks();
+ }
+
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingNone.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingNone.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingNone.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingRuntimeTestException.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingRuntimeTestException.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingRuntimeTestException.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingRuntimeTestException.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,50 @@
+package org.apache.onami.persist.testframework.tasks;
+
+/*
+ * 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 org.apache.onami.persist.Transactional;
+import org.apache.onami.persist.testframework.TransactionTestEntity;
+import org.apache.onami.persist.testframework.TransactionalTask;
+import org.apache.onami.persist.testframework.exceptions.RuntimeTestException;
+import org.apache.onami.persist.testframework.exceptions.TestException;
+
+/**
+ * Task which stores an entity and will:
+ * - roll back if any exception happened.
+ * - throw a new {@link RuntimeTestException}.
+ */
+public class TaskRollingBackOnAnyThrowingRuntimeTestException
+ extends TransactionalTask
+{
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @Transactional(rollbackOn = Exception.class)
+ public void doTransactional()
+ throws TestException, RuntimeTestException
+ {
+ storeEntity( new TransactionTestEntity() );
+ doOtherTasks();
+ throw new RuntimeTestException( getClass().getSimpleName() );
+ }
+
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingRuntimeTestException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingRuntimeTestException.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingRuntimeTestException.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingTestException.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingTestException.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingTestException.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingTestException.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,50 @@
+package org.apache.onami.persist.testframework.tasks;
+
+/*
+ * 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 org.apache.onami.persist.Transactional;
+import org.apache.onami.persist.testframework.TransactionTestEntity;
+import org.apache.onami.persist.testframework.TransactionalTask;
+import org.apache.onami.persist.testframework.exceptions.RuntimeTestException;
+import org.apache.onami.persist.testframework.exceptions.TestException;
+
+/**
+ * Task which stores an entity and will:
+ * - roll backy if an exception happened.
+ * - throw a new {@link TestException}.
+ */
+public class TaskRollingBackOnAnyThrowingTestException
+ extends TransactionalTask
+{
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @Transactional(rollbackOn = Exception.class)
+ public void doTransactional()
+ throws TestException, RuntimeTestException
+ {
+ storeEntity( new TransactionTestEntity() );
+ doOtherTasks();
+ throw new TestException( getClass().getSimpleName() );
+ }
+
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingTestException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingTestException.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnAnyThrowingTestException.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingNone.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingNone.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingNone.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingNone.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,49 @@
+package org.apache.onami.persist.testframework.tasks;
+
+/*
+ * 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 org.apache.onami.persist.Transactional;
+import org.apache.onami.persist.testframework.TransactionTestEntity;
+import org.apache.onami.persist.testframework.TransactionalTask;
+import org.apache.onami.persist.testframework.exceptions.RuntimeTestException;
+import org.apache.onami.persist.testframework.exceptions.TestException;
+
+/**
+ * Task which stores an entity and will:
+ * - never roll back.
+ * - throw no new exception.
+ */
+public class TaskRollingBackOnNoneThrowingNone
+ extends TransactionalTask
+{
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @Transactional(ignore = Exception.class)
+ public void doTransactional()
+ throws TestException, RuntimeTestException
+ {
+ storeEntity( new TransactionTestEntity() );
+ doOtherTasks();
+ }
+
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingNone.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingNone.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingNone.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingRuntimeTestException.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingRuntimeTestException.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingRuntimeTestException.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingRuntimeTestException.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,50 @@
+package org.apache.onami.persist.testframework.tasks;
+
+/*
+ * 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 org.apache.onami.persist.Transactional;
+import org.apache.onami.persist.testframework.TransactionTestEntity;
+import org.apache.onami.persist.testframework.TransactionalTask;
+import org.apache.onami.persist.testframework.exceptions.RuntimeTestException;
+import org.apache.onami.persist.testframework.exceptions.TestException;
+
+/**
+ * Task which stores an entity and will:
+ * - never roll back.
+ * - throw a new {@link RuntimeTestException}.
+ */
+public class TaskRollingBackOnNoneThrowingRuntimeTestException
+ extends TransactionalTask
+{
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @Transactional(ignore = Exception.class)
+ public void doTransactional()
+ throws TestException, RuntimeTestException
+ {
+ storeEntity( new TransactionTestEntity() );
+ doOtherTasks();
+ throw new RuntimeTestException( getClass().getSimpleName() );
+ }
+
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingRuntimeTestException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingRuntimeTestException.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingRuntimeTestException.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingTestException.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingTestException.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingTestException.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingTestException.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,50 @@
+package org.apache.onami.persist.testframework.tasks;
+
+/*
+ * 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 org.apache.onami.persist.Transactional;
+import org.apache.onami.persist.testframework.TransactionTestEntity;
+import org.apache.onami.persist.testframework.TransactionalTask;
+import org.apache.onami.persist.testframework.exceptions.RuntimeTestException;
+import org.apache.onami.persist.testframework.exceptions.TestException;
+
+/**
+ * Task which stores an entity and will:
+ * - never roll back.
+ * - throw a new {@link TestException}.
+ */
+public class TaskRollingBackOnNoneThrowingTestException
+ extends TransactionalTask
+{
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @Transactional(ignore = Exception.class)
+ public void doTransactional()
+ throws TestException, RuntimeTestException
+ {
+ storeEntity( new TransactionTestEntity() );
+ doOtherTasks();
+ throw new TestException();
+ }
+
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingTestException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingTestException.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnNoneThrowingTestException.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingNone.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingNone.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingNone.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingNone.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,49 @@
+package org.apache.onami.persist.testframework.tasks;
+
+/*
+ * 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 org.apache.onami.persist.Transactional;
+import org.apache.onami.persist.testframework.TransactionTestEntity;
+import org.apache.onami.persist.testframework.TransactionalTask;
+import org.apache.onami.persist.testframework.exceptions.RuntimeTestException;
+import org.apache.onami.persist.testframework.exceptions.TestException;
+
+/**
+ * Task which stores an entity and will:
+ * - roll back on {@link RuntimeTestException}.
+ * - throw no new Exception
+ */
+public class TaskRollingBackOnRuntimeTestExceptionThrowingNone
+ extends TransactionalTask
+{
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @Transactional(rollbackOn = RuntimeTestException.class)
+ public void doTransactional()
+ throws TestException, RuntimeTestException
+ {
+ storeEntity( new TransactionTestEntity() );
+ doOtherTasks();
+ }
+
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingNone.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingNone.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingNone.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,50 @@
+package org.apache.onami.persist.testframework.tasks;
+
+/*
+ * 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 org.apache.onami.persist.Transactional;
+import org.apache.onami.persist.testframework.TransactionTestEntity;
+import org.apache.onami.persist.testframework.TransactionalTask;
+import org.apache.onami.persist.testframework.exceptions.RuntimeTestException;
+import org.apache.onami.persist.testframework.exceptions.TestException;
+
+/**
+ * Task which stores an entity and will:
+ * - roll back on {@link RuntimeTestException}.
+ * - throw a new {@link RuntimeTestException}.
+ */
+public class TaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException
+ extends TransactionalTask
+{
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @Transactional(rollbackOn = RuntimeTestException.class)
+ public void doTransactional()
+ throws TestException, RuntimeTestException
+ {
+ storeEntity( new TransactionTestEntity() );
+ doOtherTasks();
+ throw new RuntimeTestException( getClass().getSimpleName() );
+ }
+
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingRuntimeTestException.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingTestException.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingTestException.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingTestException.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingTestException.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,50 @@
+package org.apache.onami.persist.testframework.tasks;
+
+/*
+ * 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 org.apache.onami.persist.Transactional;
+import org.apache.onami.persist.testframework.TransactionTestEntity;
+import org.apache.onami.persist.testframework.TransactionalTask;
+import org.apache.onami.persist.testframework.exceptions.RuntimeTestException;
+import org.apache.onami.persist.testframework.exceptions.TestException;
+
+/**
+ * Task which stores an entity and will:
+ * - roll back on {@link RuntimeTestException}.
+ * - throw a new {@link TestException}.
+ */
+public class TaskRollingBackOnRuntimeTestExceptionThrowingTestException
+ extends TransactionalTask
+{
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @Transactional(rollbackOn = RuntimeTestException.class)
+ public void doTransactional()
+ throws TestException, RuntimeTestException
+ {
+ storeEntity( new TransactionTestEntity() );
+ doOtherTasks();
+ throw new TestException( getClass().getSimpleName() );
+ }
+
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingTestException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingTestException.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnRuntimeTestExceptionThrowingTestException.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingNone.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingNone.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingNone.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingNone.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,49 @@
+package org.apache.onami.persist.testframework.tasks;
+
+/*
+ * 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 org.apache.onami.persist.Transactional;
+import org.apache.onami.persist.testframework.TransactionTestEntity;
+import org.apache.onami.persist.testframework.TransactionalTask;
+import org.apache.onami.persist.testframework.exceptions.RuntimeTestException;
+import org.apache.onami.persist.testframework.exceptions.TestException;
+
+/**
+ * Task which stores an entity and will:
+ * - roll back on {@link TestException}.
+ * - throw no new Exception
+ */
+public class TaskRollingBackOnTestExceptionThrowingNone
+ extends TransactionalTask
+{
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @Transactional(rollbackOn = TestException.class)
+ public void doTransactional()
+ throws TestException, RuntimeTestException
+ {
+ storeEntity( new TransactionTestEntity() );
+ doOtherTasks();
+ }
+
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingNone.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingNone.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingNone.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingRuntimeTestException.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingRuntimeTestException.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingRuntimeTestException.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingRuntimeTestException.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,50 @@
+package org.apache.onami.persist.testframework.tasks;
+
+/*
+ * 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 org.apache.onami.persist.Transactional;
+import org.apache.onami.persist.testframework.TransactionTestEntity;
+import org.apache.onami.persist.testframework.TransactionalTask;
+import org.apache.onami.persist.testframework.exceptions.RuntimeTestException;
+import org.apache.onami.persist.testframework.exceptions.TestException;
+
+/**
+ * Task which stores an entity and will:
+ * - roll back on {@link TestException}.
+ * - throw a new {@link RuntimeTestException}.
+ */
+public class TaskRollingBackOnTestExceptionThrowingRuntimeTestException
+ extends TransactionalTask
+{
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @Transactional(rollbackOn = TestException.class)
+ public void doTransactional()
+ throws TestException, RuntimeTestException
+ {
+ storeEntity( new TransactionTestEntity() );
+ doOtherTasks();
+ throw new RuntimeTestException( getClass().getSimpleName() );
+ }
+
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingRuntimeTestException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingRuntimeTestException.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingRuntimeTestException.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingTestException.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingTestException.java?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingTestException.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingTestException.java Thu Nov 14 23:19:36 2013
@@ -0,0 +1,50 @@
+package org.apache.onami.persist.testframework.tasks;
+
+/*
+ * 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 org.apache.onami.persist.Transactional;
+import org.apache.onami.persist.testframework.TransactionTestEntity;
+import org.apache.onami.persist.testframework.TransactionalTask;
+import org.apache.onami.persist.testframework.exceptions.RuntimeTestException;
+import org.apache.onami.persist.testframework.exceptions.TestException;
+
+/**
+ * Task which stores an entity and will:
+ * - roll back on {@link TestException}.
+ * - throw a new {@link TestException}.
+ */
+public class TaskRollingBackOnTestExceptionThrowingTestException
+ extends TransactionalTask
+{
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @Transactional(rollbackOn = TestException.class)
+ public void doTransactional()
+ throws TestException, RuntimeTestException
+ {
+ storeEntity( new TransactionTestEntity() );
+ doOtherTasks();
+ throw new TestException( getClass().getSimpleName() );
+ }
+
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingTestException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingTestException.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/testframework/tasks/TaskRollingBackOnTestExceptionThrowingTestException.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: onami/sandbox/persist/src/test/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/resources/META-INF/persistence.xml?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/resources/META-INF/persistence.xml (added)
+++ onami/sandbox/persist/src/test/resources/META-INF/persistence.xml Thu Nov 14 23:19:36 2013
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
+ http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
+
+ <!-- JPA test "unit" -->
+ <persistence-unit name="testUnit" transaction-type="RESOURCE_LOCAL">
+ <provider>org.hibernate.ejb.HibernatePersistence</provider>
+
+ <class>org.apache.onami.persist.testframework.TransactionTestEntity</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:persistence"/>
+ <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="hiberante.cache_provider" value="org.hibernate.cache.NoCacheProvider"/>
+
+ <property name="hibernate.hbm2ddl.auto" value="create"/>
+ </properties>
+ </persistence-unit>
+
+</persistence>
+
Propchange: onami/sandbox/persist/src/test/resources/META-INF/persistence.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/resources/META-INF/persistence.xml
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: onami/sandbox/persist/src/test/resources/META-INF/persistence.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: onami/sandbox/persist/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/resources/log4j.properties?rev=1542116&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/resources/log4j.properties (added)
+++ onami/sandbox/persist/src/test/resources/log4j.properties Thu Nov 14 23:19:36 2013
@@ -0,0 +1,6 @@
+log4j.rootLogger=warn, console
+
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.Target=System.out
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern=%p [%c{1}] - %m %n
Propchange: onami/sandbox/persist/src/test/resources/log4j.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/resources/log4j.properties
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id