You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/12/09 10:03:18 UTC
ignite git commit: IGNITE-1864: Transaction manager factory instead
of Transaction manager Lookup
Repository: ignite
Updated Branches:
refs/heads/ignite-1.5 0adee3ae0 -> 5ea19a454
IGNITE-1864: Transaction manager factory instead of Transaction manager Lookup
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5ea19a45
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5ea19a45
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5ea19a45
Branch: refs/heads/ignite-1.5
Commit: 5ea19a4549eb9df619bad9e8a86b844a5db2ca1f
Parents: 0adee3a
Author: ashutak <as...@gridgain.com>
Authored: Wed Dec 9 12:02:57 2015 +0300
Committer: ashutak <as...@gridgain.com>
Committed: Wed Dec 9 12:02:57 2015 +0300
----------------------------------------------------------------------
.../configuration/CacheConfiguration.java | 4 +-
.../configuration/TransactionConfiguration.java | 47 +++-
.../cache/jta/CacheJtaManagerAdapter.java | 4 +-
.../HibernateTransactionalDataRegion.java | 18 +-
.../HibernateL2CacheTransactionalSelfTest.java | 23 +-
modules/jta/pom.xml | 9 +-
.../cache/jta/jndi/CacheJndiTmFactory.java | 132 +++++++++++
.../processors/cache/jta/CacheJtaManager.java | 41 +++-
.../cache/AbstarctCacheJtaSelfTest.java | 183 +++++++++++++++
.../cache/CacheJndiTmFactorySelfTest.java | 166 ++++++++++++++
...CacheJtaConfigurationValidationSelfTest.java | 4 +-
...CacheJtaFactoryConfigValidationSelfTest.java | 142 ++++++++++++
.../processors/cache/GridCacheJtaSelfTest.java | 221 -------------------
.../cache/GridCacheReplicatedJtaSelfTest.java | 32 ---
.../cache/GridJtaLifecycleAwareSelfTest.java | 191 ++++++++++++++++
.../GridPartitionedCacheJtaFactorySelfTest.java | 41 ++++
...titionedCacheJtaLookupClassNameSelfTest.java | 83 +++++++
.../GridReplicatedCacheJtaFactorySelfTest.java | 32 +++
...plicatedCacheJtaLookupClassNameSelfTest.java | 32 +++
.../GridTmLookupLifecycleAwareSelfTest.java | 122 ----------
.../ignite/testsuites/IgniteJtaTestSuite.java | 26 ++-
21 files changed, 1150 insertions(+), 403 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
index 67f7b2e..d73ff58 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
@@ -1112,7 +1112,7 @@ public class CacheConfiguration<K, V> extends MutableConfiguration<K, V> {
* Gets class name of transaction manager finder for integration for JEE app servers.
*
* @return Transaction manager finder.
- * @deprecated Use {@link TransactionConfiguration#getTxManagerLookupClassName()} instead.
+ * @deprecated Use {@link TransactionConfiguration#getTxManagerFactory()} instead.
*/
@Deprecated
public String getTransactionManagerLookupClassName() {
@@ -1125,7 +1125,7 @@ public class CacheConfiguration<K, V> extends MutableConfiguration<K, V> {
* @param tmLookupClsName Name of class implementing GridCacheTmLookup interface that is used to
* receive JTA transaction manager.
* @return {@code this} for chaining.
- * @deprecated Use {@link TransactionConfiguration#setTxManagerLookupClassName(String)} instead.
+ * @deprecated Use {@link TransactionConfiguration#setTxManagerFactory(Factory)} instead.
*/
@Deprecated
public CacheConfiguration<K, V> setTransactionManagerLookupClassName(String tmLookupClsName) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
index fc2a6cb..b3d294d 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
@@ -18,6 +18,7 @@
package org.apache.ignite.configuration;
import java.io.Serializable;
+import javax.cache.configuration.Factory;
import org.apache.ignite.transactions.Transaction;
import org.apache.ignite.transactions.TransactionConcurrency;
import org.apache.ignite.transactions.TransactionIsolation;
@@ -65,6 +66,9 @@ public class TransactionConfiguration implements Serializable {
/** Name of class implementing GridCacheTmLookup. */
private String tmLookupClsName;
+ /** {@code javax.transaction.TransactionManager} factory. */
+ private Factory txManagerFactory;
+
/**
* Empty constructor.
*/
@@ -83,6 +87,7 @@ public class TransactionConfiguration implements Serializable {
pessimisticTxLogSize = cfg.getPessimisticTxLogSize();
txSerEnabled = cfg.isTxSerializableEnabled();
tmLookupClsName = cfg.getTxManagerLookupClassName();
+ txManagerFactory = cfg.getTxManagerFactory();
}
/**
@@ -214,7 +219,9 @@ public class TransactionConfiguration implements Serializable {
* Gets class name of transaction manager finder for integration for JEE app servers.
*
* @return Transaction manager finder.
+ * @deprecated Use {@link #getTxManagerFactory()} instead.
*/
+ @Deprecated
public String getTxManagerLookupClassName() {
return tmLookupClsName;
}
@@ -224,8 +231,46 @@ public class TransactionConfiguration implements Serializable {
*
* @param tmLookupClsName Name of class implementing GridCacheTmLookup interface that is used to
* receive JTA transaction manager.
+ * @deprecated Use {@link #setTxManagerFactory(Factory)} instead.
*/
+ @Deprecated
public void setTxManagerLookupClassName(String tmLookupClsName) {
this.tmLookupClsName = tmLookupClsName;
}
-}
\ No newline at end of file
+
+ /**
+ * Gets transaction manager factory for integration with JEE app servers.
+ *
+ * @param <T> Instance of {@code javax.transaction.TransactionManager}.
+ * @return Transaction manager factory.
+ */
+ @SuppressWarnings("unchecked")
+ public <T> Factory<T> getTxManagerFactory() {
+ return txManagerFactory;
+ }
+
+ /**
+ * Sets transaction manager factory for available {@code javax.transaction.TransactionManager} implementation,
+ * if any.
+ * <p>
+ * It allows to use different transactional systems. Implement factory that produce native
+ * {@code javax.transaction.TransactionManager} within your environment.
+ * <p>
+ * The following implementations are provided out of the box (jta module must be enabled):
+ * <ul>
+ * <li>
+ * {@code org.apache.ignite.cache.jta.jndi.CacheJndiTmFactory} utilizes configured JNDI names to look up
+ * a transaction manager.
+ * </li>
+ * </ul>
+ *
+ * Ignite will throw IgniteCheckedException if {@link Factory#create()} method throws any exception,
+ * returns {@code null}-value or returns non-{@code TransactionManager} instance.
+ *
+ * @param factory Transaction manager factory.
+ * @param <T> Instance of {@code javax.transaction.TransactionManager}.
+ */
+ public <T> void setTxManagerFactory(Factory<T> factory) {
+ txManagerFactory = factory;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/jta/CacheJtaManagerAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/jta/CacheJtaManagerAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/jta/CacheJtaManagerAdapter.java
index 7b45e73..0fd97eb 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/jta/CacheJtaManagerAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/jta/CacheJtaManagerAdapter.java
@@ -44,7 +44,9 @@ public abstract class CacheJtaManagerAdapter extends GridCacheSharedManagerAdapt
/**
* Gets transaction manager finder. Returns Object to avoid dependency on JTA library.
*
+ * Used only in test purposes.
+ *
* @return Transaction manager finder.
*/
@Nullable public abstract Object tmLookup();
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateTransactionalDataRegion.java
----------------------------------------------------------------------
diff --git a/modules/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateTransactionalDataRegion.java b/modules/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateTransactionalDataRegion.java
index d89911c..ed2ee01 100644
--- a/modules/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateTransactionalDataRegion.java
+++ b/modules/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateTransactionalDataRegion.java
@@ -88,13 +88,15 @@ public class HibernateTransactionalDataRegion extends HibernateRegion implements
throw new CacheException("Hibernate TRANSACTIONAL access strategy must have Ignite cache with " +
"'TRANSACTIONAL' atomicity mode: " + cache.name());
- if (cache.configuration().getTransactionManagerLookupClassName() == null) {
- TransactionConfiguration txCfg = ignite.configuration().getTransactionConfiguration();
-
- if (txCfg == null || txCfg.getTxManagerLookupClassName() == null)
- throw new CacheException("Hibernate TRANSACTIONAL access strategy must have Ignite with " +
- "TransactionManagerLookup configured (see IgniteConfiguration." +
- "getTransactionConfiguration().getTxManagerLookupClassName()): " + cache.name());
+ TransactionConfiguration txCfg = ignite.configuration().getTransactionConfiguration();
+
+ if (txCfg == null ||
+ (txCfg.getTxManagerFactory() == null
+ && txCfg.getTxManagerLookupClassName() == null
+ && cache.configuration().getTransactionManagerLookupClassName() == null)) {
+ throw new CacheException("Hibernate TRANSACTIONAL access strategy must have Ignite with " +
+ "Factory<TransactionManager> configured (see IgniteConfiguration." +
+ "getTransactionConfiguration().setTxManagerFactory()): " + cache.name());
}
return new HibernateTransactionalAccessStrategy(ignite, cache);
@@ -103,4 +105,4 @@ public class HibernateTransactionalDataRegion extends HibernateRegion implements
throw new IllegalArgumentException("Unknown Hibernate access type: " + accessType);
}
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheTransactionalSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheTransactionalSelfTest.java b/modules/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheTransactionalSelfTest.java
index 99be869..9141be2 100644
--- a/modules/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheTransactionalSelfTest.java
+++ b/modules/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheTransactionalSelfTest.java
@@ -18,11 +18,12 @@
package org.apache.ignite.cache.hibernate;
import java.util.Collections;
+import javax.cache.configuration.Factory;
import javax.transaction.TransactionManager;
import javax.transaction.UserTransaction;
import org.apache.commons.dbcp.managed.BasicManagedDataSource;
-import org.apache.ignite.cache.jta.CacheTmLookup;
import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
import org.h2.jdbcx.JdbcDataSource;
import org.hibernate.cache.spi.access.AccessType;
import org.hibernate.engine.transaction.internal.jta.JtaTransactionFactory;
@@ -61,9 +62,12 @@ public class HibernateL2CacheTransactionalSelfTest extends HibernateL2CacheSelfT
/**
*/
@SuppressWarnings("PublicInnerClass")
- public static class TestTmLookup implements CacheTmLookup {
+ public static class TestTmFactory implements Factory<TransactionManager> {
+ /** */
+ private static final long serialVersionUID = 0;
+
/** {@inheritDoc} */
- @Override public TransactionManager getTm() {
+ @Override public TransactionManager create() {
return jotm.getTransactionManager();
}
}
@@ -86,11 +90,18 @@ public class HibernateL2CacheTransactionalSelfTest extends HibernateL2CacheSelfT
}
/** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ cfg.getTransactionConfiguration().setTxManagerFactory(new TestTmFactory());
+
+ return cfg;
+ }
+
+ /** {@inheritDoc} */
@Override protected CacheConfiguration transactionalRegionConfiguration(String regionName) {
CacheConfiguration cfg = super.transactionalRegionConfiguration(regionName);
- cfg.setTransactionManagerLookupClassName(TestTmLookup.class.getName());
-
cfg.setNearConfiguration(null);
return cfg;
@@ -131,4 +142,4 @@ public class HibernateL2CacheTransactionalSelfTest extends HibernateL2CacheSelfT
@Override protected AccessType[] accessTypes() {
return new AccessType[]{AccessType.TRANSACTIONAL};
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/pom.xml
----------------------------------------------------------------------
diff --git a/modules/jta/pom.xml b/modules/jta/pom.xml
index e296940..c69b6cc 100644
--- a/modules/jta/pom.xml
+++ b/modules/jta/pom.xml
@@ -82,6 +82,13 @@
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.tomcat</groupId>
+ <artifactId>catalina</artifactId>
+ <version>6.0.43</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
@@ -99,5 +106,5 @@
</plugin>
</plugins>
</build>
-
+
</project>
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/src/main/java/org/apache/ignite/cache/jta/jndi/CacheJndiTmFactory.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/main/java/org/apache/ignite/cache/jta/jndi/CacheJndiTmFactory.java b/modules/jta/src/main/java/org/apache/ignite/cache/jta/jndi/CacheJndiTmFactory.java
new file mode 100644
index 0000000..f39e50e
--- /dev/null
+++ b/modules/jta/src/main/java/org/apache/ignite/cache/jta/jndi/CacheJndiTmFactory.java
@@ -0,0 +1,132 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.cache.jta.jndi;
+
+import java.util.Arrays;
+import java.util.Hashtable;
+import java.util.Map;
+import javax.cache.configuration.Factory;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.transaction.TransactionManager;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+/**
+ * Implementation of {@code Factory<TransactionManager>} interface that is using JNDI names to find TM.
+ * <p>
+ * Note that {@link #create()} method iterates by JNDI names and returns the first found
+ * {@link TransactionManager} instance at context.
+ */
+public class CacheJndiTmFactory implements Factory<TransactionManager> {
+ /** */
+ private static final long serialVersionUID = 0;
+
+ /** */
+ private String[] jndiNames;
+
+ /** */
+ private Map<?, ?> environment;
+
+ /**
+ * Creates uninitialized jndi TM lookup.
+ */
+ public CacheJndiTmFactory() {
+ /* No-op. */
+ }
+
+ /**
+ * Creates generic TM lookup with given jndi names.
+ *
+ * @param jndiNames JNDI names that is used to find TM.
+ */
+ public CacheJndiTmFactory(String... jndiNames) {
+ this.jndiNames = jndiNames;
+ }
+
+ /**
+ * Gets a list of JNDI names.
+ *
+ * @return List of JNDI names that is used to find TM.
+ */
+ public String[] getJndiNames() {
+ return jndiNames;
+ }
+
+ /**
+ * Sets JNDI names used by this TM factory.
+ *
+ * @param jndiNames JNDI names that is used to find TM.
+ */
+ public void setJndiNames(String... jndiNames) {
+ this.jndiNames = jndiNames;
+ }
+
+ /**
+ * Gets initial context environment map.
+ *
+ * @return Initial context environment map.
+ */
+ public Map<?, ?> getInitialContextEnvironment() {
+ return environment;
+ }
+
+ /**
+ * Sets initial context environment map that will be used
+ * in {@link InitialContext#InitialContext(Hashtable)} constructor.
+ *
+ * @param environment Initial context environment map.
+ */
+ public void setInitialContextEnvironment(Map<?, ?> environment) {
+ this.environment = environment;
+ }
+
+ /** {@inheritDoc} */
+ @SuppressWarnings("UseOfObsoleteCollectionType")
+ @Override public TransactionManager create() {
+ assert jndiNames != null;
+ assert jndiNames.length != 0;
+
+ InitialContext ctx;
+
+ try {
+ ctx = new InitialContext(environment == null ? null : new Hashtable<>(environment));
+ }
+ catch (NamingException e) {
+ throw new IgniteException("Failed to instantiate InitialContext: " + environment, e);
+ }
+
+ for (String s : jndiNames) {
+ Object obj;
+
+ try {
+ obj = ctx.lookup(s);
+ }
+ catch (NamingException e) {
+ U.warn(null, "Failed to lookup resourse: " + e);
+
+ continue;
+ }
+
+ if (obj != null && obj instanceof TransactionManager)
+ return (TransactionManager) obj;
+ }
+
+ throw new IgniteException("Failed to lookup TM by: " + Arrays.toString(jndiNames));
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/src/main/java/org/apache/ignite/internal/processors/cache/jta/CacheJtaManager.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/main/java/org/apache/ignite/internal/processors/cache/jta/CacheJtaManager.java b/modules/jta/src/main/java/org/apache/ignite/internal/processors/cache/jta/CacheJtaManager.java
index 28e2791..a65a4f8 100644
--- a/modules/jta/src/main/java/org/apache/ignite/internal/processors/cache/jta/CacheJtaManager.java
+++ b/modules/jta/src/main/java/org/apache/ignite/internal/processors/cache/jta/CacheJtaManager.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.processors.cache.jta;
import java.util.concurrent.atomic.AtomicReference;
+import javax.cache.configuration.Factory;
import javax.transaction.RollbackException;
import javax.transaction.SystemException;
import javax.transaction.Transaction;
@@ -43,11 +44,46 @@ public class CacheJtaManager extends CacheJtaManagerAdapter {
/** */
private final AtomicReference<CacheTmLookup> tmLookupRef = new AtomicReference<>();
+ /** */
+ private Factory<TransactionManager> tmFactory;
+
/** {@inheritDoc} */
@Override protected void start0() throws IgniteCheckedException {
super.start0();
if (cctx.txConfig() != null) {
+ tmFactory = cctx.txConfig().getTxManagerFactory();
+
+ if (tmFactory != null) {
+ cctx.kernalContext().resource().injectGeneric(tmFactory);
+
+ if (tmFactory instanceof LifecycleAware)
+ ((LifecycleAware)tmFactory).start();
+
+ Object txMgr;
+
+ try {
+ txMgr = tmFactory.create();
+ }
+ catch (Exception e) {
+ throw new IgniteCheckedException("Failed to create transaction manager [tmFactory="
+ + tmFactory + "]", e);
+ }
+
+ if (txMgr == null)
+ throw new IgniteCheckedException("Failed to create transaction manager (transaction manager " +
+ "factory created null-value transaction manager) [tmFactory=" + tmFactory + "]");
+
+ if (!(txMgr instanceof TransactionManager))
+ throw new IgniteCheckedException("Failed to create transaction manager (transaction manager " +
+ "factory created object that is not an instance of TransactionManager) [tmFactory="
+ + tmFactory + ", txMgr=" + txMgr + "]");
+
+ jtaTm = (TransactionManager)txMgr;
+
+ return;
+ }
+
String txLookupClsName = cctx.txConfig().getTxManagerLookupClassName();
if (txLookupClsName != null)
@@ -61,6 +97,9 @@ public class CacheJtaManager extends CacheJtaManagerAdapter {
if (tmLookup instanceof LifecycleAware)
((LifecycleAware)tmLookup).stop();
+
+ if (tmFactory instanceof LifecycleAware)
+ ((LifecycleAware)tmFactory).stop();
}
/**
@@ -172,4 +211,4 @@ public class CacheJtaManager extends CacheJtaManagerAdapter {
@Nullable @Override public Object tmLookup() {
return tmLookupRef.get();
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/AbstarctCacheJtaSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/AbstarctCacheJtaSelfTest.java b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/AbstarctCacheJtaSelfTest.java
new file mode 100644
index 0000000..41c4565
--- /dev/null
+++ b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/AbstarctCacheJtaSelfTest.java
@@ -0,0 +1,183 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import javax.transaction.Status;
+import javax.transaction.UserTransaction;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.cache.CacheMode;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.transactions.Transaction;
+import org.objectweb.jotm.Jotm;
+
+import static org.apache.ignite.cache.CacheMode.PARTITIONED;
+import static org.apache.ignite.transactions.TransactionState.ACTIVE;
+
+/**
+ * Abstract class for cache tests.
+ */
+public abstract class AbstarctCacheJtaSelfTest extends GridCacheAbstractSelfTest {
+ /** */
+ private static final int GRID_CNT = 1;
+
+ /** Java Open Transaction Manager facade. */
+ protected static Jotm jotm;
+
+ /** {@inheritDoc} */
+ @Override protected void beforeTestsStarted() throws Exception {
+ jotm = new Jotm(true, false);
+
+ super.beforeTestsStarted();
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTestsStopped() throws Exception {
+ super.afterTestsStopped();
+
+ jotm.stop();
+ }
+
+ /** {@inheritDoc} */
+ @Override protected int gridCount() {
+ return GRID_CNT;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected CacheMode cacheMode() {
+ return PARTITIONED;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ configureJta(cfg);
+
+ CacheConfiguration cfg1 = cacheConfiguration(gridName);
+
+ CacheConfiguration cfg2 = cacheConfiguration(gridName);
+
+ cfg2.setName("cache-2");
+
+ cfg.setCacheConfiguration(cfg1, cfg2);
+
+ return cfg;
+ }
+
+ /**
+ * @param cfg Ignite Configuration.
+ */
+ protected abstract void configureJta(IgniteConfiguration cfg);
+
+ /**
+ * JUnit.
+ *
+ * @throws Exception If failed.
+ */
+ public void testJta() throws Exception {
+ UserTransaction jtaTx = jotm.getUserTransaction();
+
+ IgniteCache<String, Integer> cache = jcache();
+
+ assert ignite(0).transactions().tx() == null;
+
+ jtaTx.begin();
+
+ try {
+ assert ignite(0).transactions().tx() == null;
+
+ assert cache.getAndPut("key", 1) == null;
+
+ Transaction tx = ignite(0).transactions().tx();
+
+ assert tx != null;
+ assert tx.state() == ACTIVE;
+
+ Integer one = 1;
+
+ assertEquals(one, cache.get("key"));
+
+ tx = ignite(0).transactions().tx();
+
+ assert tx != null;
+ assert tx.state() == ACTIVE;
+
+ jtaTx.commit();
+
+ assert ignite(0).transactions().tx() == null;
+ }
+ finally {
+ if (jtaTx.getStatus() == Status.STATUS_ACTIVE)
+ jtaTx.rollback();
+ }
+
+ assertEquals((Integer)1, cache.get("key"));
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ @SuppressWarnings("ConstantConditions")
+ public void testJtaTwoCaches() throws Exception {
+ UserTransaction jtaTx = jotm.getUserTransaction();
+
+ IgniteEx ignite = grid(0);
+
+ IgniteCache<String, Integer> cache1 = jcache();
+
+ IgniteCache<Object, Object> cache2 = ignite.cache("cache-2");
+
+ assertNull(ignite.transactions().tx());
+
+ jtaTx.begin();
+
+ try {
+ cache1.put("key", 0);
+ cache2.put("key", 0);
+ cache1.put("key1", 1);
+ cache2.put("key2", 2);
+
+ assertEquals(0, (int)cache1.get("key"));
+ assertEquals(0, (int)cache1.get("key"));
+ assertEquals(1, (int)cache1.get("key1"));
+ assertEquals(2, (int)cache2.get("key2"));
+
+ assertEquals(ignite.transactions().tx().state(), ACTIVE);
+
+ jtaTx.commit();
+
+ assertNull(ignite.transactions().tx());
+
+ assertEquals(0, (int)cache1.get("key"));
+ assertEquals(0, (int)cache2.get("key"));
+ assertEquals(1, (int)cache1.get("key1"));
+ assertEquals(2, (int)cache2.get("key2"));
+ }
+ finally {
+ if (jtaTx.getStatus() == Status.STATUS_ACTIVE)
+ jtaTx.rollback();
+ }
+
+ assertEquals(0, (int)cache1.get("key"));
+ assertEquals(0, (int)cache2.get("key"));
+ assertEquals(1, (int)cache1.get("key1"));
+ assertEquals(2, (int)cache2.get("key2"));
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/CacheJndiTmFactorySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/CacheJndiTmFactorySelfTest.java b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/CacheJndiTmFactorySelfTest.java
new file mode 100644
index 0000000..0dee4be
--- /dev/null
+++ b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/CacheJndiTmFactorySelfTest.java
@@ -0,0 +1,166 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import java.util.concurrent.Callable;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.transaction.HeuristicMixedException;
+import javax.transaction.HeuristicRollbackException;
+import javax.transaction.InvalidTransactionException;
+import javax.transaction.NotSupportedException;
+import javax.transaction.RollbackException;
+import javax.transaction.SystemException;
+import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.cache.jta.jndi.CacheJndiTmFactory;
+import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+
+/**
+ *
+ */
+public class CacheJndiTmFactorySelfTest extends GridCommonAbstractTest {
+ /** */
+ private static final String TM_JNDI_NAME = "java:/comp/env/tm/testtm1";
+
+ /** */
+ private static final String TM_JNDI_NAME2 = "java:/comp/env/tm/testtm2";
+
+ /** */
+ private static final String NOT_TM_JNDI_NAME = "java:/comp/env/tm/wrongClass";
+
+ /** */
+ private String initCtxFactoryBackup;
+
+ /** */
+ private String urlPkgPrefixesBackup;
+
+ /** {@inheritDoc} */
+ @Override protected void beforeTestsStarted() throws Exception {
+ super.beforeTestsStarted();
+
+ initCtxFactoryBackup = System.getProperty(Context.INITIAL_CONTEXT_FACTORY);
+ urlPkgPrefixesBackup = System.getProperty(Context.URL_PKG_PREFIXES);
+
+ // Create initial context
+ System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.naming.java.javaURLContextFactory");
+ System.setProperty(Context.URL_PKG_PREFIXES, "org.apache.naming");
+
+ InitialContext ic = new InitialContext();
+
+ ic.createSubcontext("java:");
+ ic.createSubcontext("java:/comp");
+ ic.createSubcontext("java:/comp/env");
+ ic.createSubcontext("java:/comp/env/tm");
+
+ ic.bind(TM_JNDI_NAME, new TestTransactionManager());
+ ic.bind(TM_JNDI_NAME2, new TestTransactionManager2());
+ ic.bind(NOT_TM_JNDI_NAME, 1);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTestsStopped() throws Exception {
+ if (initCtxFactoryBackup != null)
+ System.setProperty(Context.INITIAL_CONTEXT_FACTORY, initCtxFactoryBackup);
+
+ if (urlPkgPrefixesBackup != null)
+ System.setProperty(Context.URL_PKG_PREFIXES, urlPkgPrefixesBackup);
+
+ super.afterTestsStopped();
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testFactory() throws Exception {
+ CacheJndiTmFactory f = new CacheJndiTmFactory("wrongJndiName", NOT_TM_JNDI_NAME, TM_JNDI_NAME2, TM_JNDI_NAME);
+
+ TransactionManager mgr = f.create();
+
+ assertNotNull(mgr);
+
+ assertTrue("Mgr: " + mgr, mgr instanceof TestTransactionManager2);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testFactoryException() throws Exception {
+ final CacheJndiTmFactory f = new CacheJndiTmFactory("wrongJndiName", NOT_TM_JNDI_NAME, "wrongJndiName2");
+
+ GridTestUtils.assertThrows(log, new Callable<TransactionManager>() {
+ @Override public TransactionManager call() throws Exception {
+ return f.create();
+ }
+ }, IgniteException.class, "Failed to lookup TM by");
+ }
+
+ /**
+ *
+ */
+ public static class TestTransactionManager implements TransactionManager {
+ /** {@inheritDoc} */
+ @Override public void begin() throws NotSupportedException, SystemException {
+ }
+
+ /** {@inheritDoc} */
+ @Override public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException,
+ SecurityException, IllegalStateException, SystemException {
+ }
+
+ /** {@inheritDoc} */
+ @Override public int getStatus() throws SystemException {
+ return 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override public Transaction getTransaction() throws SystemException {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void resume(Transaction tobj) throws InvalidTransactionException, IllegalStateException,
+ SystemException {
+ }
+
+ /** {@inheritDoc} */
+ @Override public void rollback() throws IllegalStateException, SecurityException, SystemException {
+ }
+
+ /** {@inheritDoc} */
+ @Override public void setRollbackOnly() throws IllegalStateException, SystemException {
+ }
+
+ /** {@inheritDoc} */
+ @Override public void setTransactionTimeout(int seconds) throws SystemException {
+ }
+
+ /** {@inheritDoc} */
+ @Override public Transaction suspend() throws SystemException {
+ return null;
+ }
+ }
+
+ /**
+ *
+ */
+ public static class TestTransactionManager2 extends TestTransactionManager{
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheJtaConfigurationValidationSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheJtaConfigurationValidationSelfTest.java b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheJtaConfigurationValidationSelfTest.java
index 8935b91..83127d1 100644
--- a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheJtaConfigurationValidationSelfTest.java
+++ b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheJtaConfigurationValidationSelfTest.java
@@ -49,6 +49,8 @@ public class GridCacheJtaConfigurationValidationSelfTest extends GridCommonAbstr
}
/**
+ * Tests that a user did not set 'transactionManagerLookupClassName' property for atomic cache.
+ *
* @throws Exception If failed.
*/
public void testAtomicWithTmLookup() throws Exception {
@@ -71,4 +73,4 @@ public class GridCacheJtaConfigurationValidationSelfTest extends GridCommonAbstr
return null;
}
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheJtaFactoryConfigValidationSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheJtaFactoryConfigValidationSelfTest.java b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheJtaFactoryConfigValidationSelfTest.java
new file mode 100644
index 0000000..2208b6c
--- /dev/null
+++ b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheJtaFactoryConfigValidationSelfTest.java
@@ -0,0 +1,142 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import java.util.concurrent.Callable;
+import javax.cache.configuration.Factory;
+import javax.transaction.TransactionManager;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
+
+/**
+ * Configuration validation test.
+ */
+public class GridCacheJtaFactoryConfigValidationSelfTest extends GridCommonAbstractTest {
+ /** */
+ private Factory factory;
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ cfg.getTransactionConfiguration().setTxManagerFactory(factory);
+
+ CacheConfiguration ccfg = new CacheConfiguration();
+
+ ccfg.setAtomicityMode(ATOMIC);
+
+ cfg.setCacheConfiguration(ccfg);
+
+ return cfg;
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testNullFactory() throws Exception {
+ factory = new NullTxFactory();
+
+ Throwable e = GridTestUtils.assertThrows(log, new Callable<Void>() {
+ @Override public Void call() throws Exception {
+ startGrid(0);
+
+ return null;
+ }
+ }, IgniteCheckedException.class, null);
+
+ e.getCause().getMessage().startsWith("Failed to create transaction manager");
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testWrongTypeFactory() throws Exception {
+ factory = new IntegerTxFactory();
+
+ Throwable e = GridTestUtils.assertThrows(log, new Callable<Void>() {
+ @Override public Void call() throws Exception {
+ startGrid(0);
+
+ return null;
+ }
+ }, IgniteCheckedException.class, null);
+
+ e.getCause().getMessage().startsWith("Failed to create transaction manager");
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testExceptionFactory() throws Exception {
+ factory = new ExceptionTxFactory();
+
+ Throwable e = GridTestUtils.assertThrows(log, new Callable<Void>() {
+ @Override public Void call() throws Exception {
+ startGrid(0);
+
+ return null;
+ }
+ }, IgniteCheckedException.class, null);
+
+ e.getCause().getMessage().startsWith("Failed to create transaction manager");
+ }
+
+ /**
+ *
+ */
+ public static class NullTxFactory implements Factory<TransactionManager> {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** {@inheritDoc} */
+ @Override public TransactionManager create() {
+ return null;
+ }
+ }
+
+ /**
+ *
+ */
+ public static class IntegerTxFactory implements Factory<Integer> {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** {@inheritDoc} */
+ @Override public Integer create() {
+ return 1;
+ }
+ }
+
+ /**
+ *
+ */
+ public static class ExceptionTxFactory implements Factory {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** {@inheritDoc} */
+ @Override public Object create() {
+ throw new UnsupportedOperationException();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheJtaSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheJtaSelfTest.java b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheJtaSelfTest.java
deleted file mode 100644
index e8a7a48..0000000
--- a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheJtaSelfTest.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.cache;
-
-import java.util.concurrent.Callable;
-import javax.transaction.Status;
-import javax.transaction.TransactionManager;
-import javax.transaction.UserTransaction;
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.cache.CacheAtomicityMode;
-import org.apache.ignite.cache.CacheMode;
-import org.apache.ignite.cache.jta.CacheTmLookup;
-import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.testframework.GridTestUtils;
-import org.apache.ignite.transactions.Transaction;
-import org.objectweb.jotm.Jotm;
-
-import static org.apache.ignite.cache.CacheMode.PARTITIONED;
-import static org.apache.ignite.transactions.TransactionState.ACTIVE;
-
-/**
- * Abstract class for cache tests.
- */
-public class GridCacheJtaSelfTest extends GridCacheAbstractSelfTest {
- /** */
- private static final int GRID_CNT = 1;
-
- /** Java Open Transaction Manager facade. */
- private static Jotm jotm;
-
- /** {@inheritDoc} */
- @Override protected void beforeTestsStarted() throws Exception {
- super.beforeTestsStarted();
-
- jotm = new Jotm(true, false);
- }
-
- /** {@inheritDoc} */
- @Override protected void afterTestsStopped() throws Exception {
- super.afterTestsStopped();
-
- jotm.stop();
- }
-
- /** {@inheritDoc} */
- @Override protected int gridCount() {
- return GRID_CNT;
- }
-
- /** {@inheritDoc} */
- @Override protected CacheMode cacheMode() {
- return PARTITIONED;
- }
-
- /** {@inheritDoc} */
- @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
- IgniteConfiguration cfg = super.getConfiguration(gridName);
-
- cfg.getTransactionConfiguration().setTxManagerLookupClassName(TestTmLookup.class.getName());
-
- CacheConfiguration cfg1 = cacheConfiguration(gridName);
-
- CacheConfiguration cfg2 = cacheConfiguration(gridName);
-
- cfg2.setName("cache-2");
-
- cfg.setCacheConfiguration(cfg1, cfg2);
-
- return cfg;
- }
-
- /**
- *
- */
- @SuppressWarnings("PublicInnerClass")
- public static class TestTmLookup implements CacheTmLookup {
- /** {@inheritDoc} */
- @Override public TransactionManager getTm() {
- return jotm.getTransactionManager();
- }
- }
-
- /**
- *
- */
- @SuppressWarnings("PublicInnerClass")
- public static class TestTmLookup2 implements CacheTmLookup {
- /** {@inheritDoc} */
- @Override public TransactionManager getTm() {
- return null;
- }
- }
-
- /**
- * JUnit.
- *
- * @throws Exception If failed.
- */
- public void testJta() throws Exception {
- UserTransaction jtaTx = jotm.getUserTransaction();
-
- IgniteCache<String, Integer> cache = jcache();
-
- assert ignite(0).transactions().tx() == null;
-
- jtaTx.begin();
-
- try {
- assert ignite(0).transactions().tx() == null;
-
- assert cache.getAndPut("key", 1) == null;
-
- Transaction tx = ignite(0).transactions().tx();
-
- assert tx != null;
- assert tx.state() == ACTIVE;
-
- Integer one = 1;
-
- assertEquals(one, cache.get("key"));
-
- tx = ignite(0).transactions().tx();
-
- assert tx != null;
- assert tx.state() == ACTIVE;
-
- jtaTx.commit();
-
- assert ignite(0).transactions().tx() == null;
- }
- finally {
- if (jtaTx.getStatus() == Status.STATUS_ACTIVE)
- jtaTx.rollback();
- }
-
- assertEquals((Integer)1, cache.get("key"));
- }
-
- /**
- * @throws Exception If failed.
- */
- @SuppressWarnings("ConstantConditions")
- public void testJtaTwoCaches() throws Exception {
- UserTransaction jtaTx = jotm.getUserTransaction();
-
- IgniteEx ignite = grid(0);
-
- IgniteCache<String, Integer> cache1 = jcache();
-
- IgniteCache<Object, Object> cache2 = ignite.cache("cache-2");
-
- assertNull(ignite.transactions().tx());
-
- jtaTx.begin();
-
- try {
- cache1.put("key", 1);
- cache2.put("key", 1);
-
- assertEquals(1, (int)cache1.get("key"));
- assertEquals(1, (int)cache2.get("key"));
-
- assertEquals(ignite.transactions().tx().state(), ACTIVE);
-
- jtaTx.commit();
-
- assertNull(ignite.transactions().tx());
-
- assertEquals(1, (int)cache1.get("key"));
- assertEquals(1, (int)cache2.get("key"));
- }
- finally {
- if (jtaTx.getStatus() == Status.STATUS_ACTIVE)
- jtaTx.rollback();
- }
-
- assertEquals(1, (int)cache1.get("key"));
- assertEquals(1, (int)cache2.get("key"));
- }
-
- /**
- *
- */
- public void testUncompatibleTmLookup() {
- fail("https://issues.apache.org/jira/browse/IGNITE-1094");
-
- final IgniteEx ignite = grid(0);
-
- final CacheConfiguration cacheCfg = new CacheConfiguration();
-
- cacheCfg.setName("Foo");
- cacheCfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
- cacheCfg.setTransactionManagerLookupClassName(TestTmLookup2.class.getName());
-
- GridTestUtils.assertThrows(log, new Callable<Object>() {
- @Override public Object call() throws IgniteException {
- ignite.createCache(cacheCfg);
-
- return null;
- }
- }, IgniteException.class, null);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheReplicatedJtaSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheReplicatedJtaSelfTest.java b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheReplicatedJtaSelfTest.java
deleted file mode 100644
index 1f8dc81..0000000
--- a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheReplicatedJtaSelfTest.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.cache;
-
-import org.apache.ignite.cache.CacheMode;
-
-import static org.apache.ignite.cache.CacheMode.REPLICATED;
-
-/**
- * JTA integration test using REPLICATED cache.
- */
-public class GridCacheReplicatedJtaSelfTest extends GridCacheJtaSelfTest {
- /** {@inheritDoc} */
- @Override protected CacheMode cacheMode() {
- return REPLICATED;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridJtaLifecycleAwareSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridJtaLifecycleAwareSelfTest.java b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridJtaLifecycleAwareSelfTest.java
new file mode 100644
index 0000000..8582b8e
--- /dev/null
+++ b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridJtaLifecycleAwareSelfTest.java
@@ -0,0 +1,191 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import javax.cache.configuration.Factory;
+import javax.transaction.TransactionManager;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.cache.CacheMode;
+import org.apache.ignite.cache.jta.CacheTmLookup;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.internal.IgniteKernal;
+import org.apache.ignite.lifecycle.LifecycleAware;
+import org.apache.ignite.resources.IgniteInstanceResource;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.testframework.junits.common.GridAbstractLifecycleAwareSelfTest;
+import org.jetbrains.annotations.Nullable;
+
+import static org.apache.ignite.cache.CacheMode.PARTITIONED;
+
+/**
+ * Test for {@link LifecycleAware} support for {@link CacheTmLookup}.
+ */
+public class GridJtaLifecycleAwareSelfTest extends GridAbstractLifecycleAwareSelfTest {
+ /** */
+ private static final String CACHE_NAME = "cache";
+
+ /** */
+ private boolean near;
+
+ /** */
+ private TmConfigurationType tmConfigurationType;
+
+ /**
+ */
+ @SuppressWarnings("PublicInnerClass")
+ public static class TestTxLookup extends GridAbstractLifecycleAwareSelfTest.TestLifecycleAware
+ implements CacheTmLookup {
+ /** */
+ @IgniteInstanceResource
+ private Ignite ignite;
+
+ /** {@inheritDoc} */
+ @Override public void start() {
+ super.start();
+
+ assertNotNull(ignite);
+ }
+
+ /** {@inheritDoc} */
+ @Nullable @Override public TransactionManager getTm() {
+ return null;
+ }
+ }
+
+ /**
+ *
+ */
+ public static class TestTxFactory extends GridAbstractLifecycleAwareSelfTest.TestLifecycleAware
+ implements Factory<TransactionManager> {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** */
+ @IgniteInstanceResource
+ private Ignite ignite;
+
+ /** {@inheritDoc} */
+ @Override public void start() {
+ super.start();
+
+ assertNotNull(ignite);
+ }
+
+ /** {@inheritDoc} */
+ @Override public TransactionManager create() {
+ return null;
+ }
+ }
+
+ /** {@inheritDoc} */
+ @SuppressWarnings("unchecked")
+ @Override protected final IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ cfg.setDiscoverySpi(new TcpDiscoverySpi());
+
+ CacheConfiguration ccfg = defaultCacheConfiguration();
+
+ ccfg.setCacheMode(PARTITIONED);
+
+ ccfg.setNearConfiguration(near ? new NearCacheConfiguration() : null);
+
+ ccfg.setCacheMode(CacheMode.PARTITIONED);
+
+ ccfg.setName(CACHE_NAME);
+
+ switch (tmConfigurationType){
+ case CACHE_LOOKUP:
+ ccfg.setTransactionManagerLookupClassName(TestTxLookup.class.getName());
+ break;
+ case GLOBAL_LOOKUP:
+ cfg.getTransactionConfiguration().setTxManagerLookupClassName(TestTxLookup.class.getName());
+ break;
+ case FACTORY:
+ cfg.getTransactionConfiguration().setTxManagerFactory(new TestTxFactory());
+ break;
+ }
+
+ cfg.setCacheConfiguration(ccfg);
+
+ return cfg;
+ }
+
+ /** {@inheritDoc} */
+ @SuppressWarnings("OverlyStrongTypeCast")
+ @Override protected void afterGridStart(Ignite ignite) {
+ TestTxLookup tmLookup =
+ (TestTxLookup)((IgniteKernal) ignite).context().cache().internalCache(CACHE_NAME).context().jta().tmLookup();
+
+ assertNotNull(tmLookup);
+
+ lifecycleAwares.add(tmLookup);
+ }
+
+ /** {@inheritDoc} */
+ @Override public void testLifecycleAware() throws Exception {
+ // No-op, see anothre tests.
+ }
+
+ /** {@inheritDoc} */
+ public void testCacheLookupLifecycleAware() throws Exception {
+ tmConfigurationType = TmConfigurationType.CACHE_LOOKUP;
+
+ checkLifecycleAware();
+ }
+
+ /** {@inheritDoc} */
+ public void testGlobalLookupLifecycleAware() throws Exception {
+ tmConfigurationType = TmConfigurationType.GLOBAL_LOOKUP;
+
+ checkLifecycleAware();
+ }
+
+ /** {@inheritDoc} */
+ public void testFactoryLifecycleAware() throws Exception {
+ tmConfigurationType = TmConfigurationType.FACTORY;
+
+ checkLifecycleAware();
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ private void checkLifecycleAware() throws Exception {
+ for (boolean nearEnabled : new boolean[] {true, false}) {
+ near = nearEnabled;
+
+ testLifecycleAware();
+ }
+ }
+
+ /**
+ *
+ */
+ private enum TmConfigurationType {
+ /** */
+ CACHE_LOOKUP,
+
+ /** */
+ GLOBAL_LOOKUP,
+
+ /** */
+ FACTORY}
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridPartitionedCacheJtaFactorySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridPartitionedCacheJtaFactorySelfTest.java b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridPartitionedCacheJtaFactorySelfTest.java
new file mode 100644
index 0000000..8d53d7f
--- /dev/null
+++ b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridPartitionedCacheJtaFactorySelfTest.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import javax.cache.configuration.Factory;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.configuration.TransactionConfiguration;
+import org.objectweb.transaction.jta.TransactionManager;
+
+/**
+ * Factory JTA integration test using PARTITIONED cache.
+ */
+public class GridPartitionedCacheJtaFactorySelfTest extends AbstarctCacheJtaSelfTest {
+ /** {@inheritDoc} */
+ @Override protected void configureJta(IgniteConfiguration cfg) {
+ TransactionConfiguration txCfg = cfg.getTransactionConfiguration();
+
+ txCfg.setTxManagerFactory(new Factory<TransactionManager>() {
+ private static final long serialVersionUID = 0L;
+
+ @Override public TransactionManager create() {
+ return jotm.getTransactionManager();
+ }
+ });
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridPartitionedCacheJtaLookupClassNameSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridPartitionedCacheJtaLookupClassNameSelfTest.java b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridPartitionedCacheJtaLookupClassNameSelfTest.java
new file mode 100644
index 0000000..ccebb9f
--- /dev/null
+++ b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridPartitionedCacheJtaLookupClassNameSelfTest.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import java.util.concurrent.Callable;
+import javax.transaction.TransactionManager;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.cache.jta.CacheTmLookup;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.testframework.GridTestUtils;
+
+/**
+ * Lookup class name based JTA integration test using PARTITIONED cache.
+ */
+public class GridPartitionedCacheJtaLookupClassNameSelfTest extends AbstarctCacheJtaSelfTest {
+ /** {@inheritDoc} */
+ @Override protected void configureJta(IgniteConfiguration cfg) {
+ cfg.getTransactionConfiguration().setTxManagerLookupClassName(TestTmLookup.class.getName());
+ }
+
+ /**
+ *
+ */
+ public void testUncompatibleTmLookup() {
+ fail("https://issues.apache.org/jira/browse/IGNITE-1094");
+
+ final IgniteEx ignite = grid(0);
+
+ final CacheConfiguration cacheCfg = new CacheConfiguration();
+
+ cacheCfg.setName("Foo");
+ cacheCfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
+ cacheCfg.setTransactionManagerLookupClassName(TestTmLookup2.class.getName());
+
+ GridTestUtils.assertThrows(log, new Callable<Object>() {
+ @Override public Object call() throws IgniteException {
+ ignite.createCache(cacheCfg);
+
+ return null;
+ }
+ }, IgniteException.class, null);
+ }
+
+ /**
+ *
+ */
+ @SuppressWarnings("PublicInnerClass")
+ public static class TestTmLookup implements CacheTmLookup {
+ /** {@inheritDoc} */
+ @Override public TransactionManager getTm() {
+ return jotm.getTransactionManager();
+ }
+ }
+
+ /**
+ *
+ */
+ @SuppressWarnings("PublicInnerClass")
+ public static class TestTmLookup2 implements CacheTmLookup {
+ /** {@inheritDoc} */
+ @Override public TransactionManager getTm() {
+ return null;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridReplicatedCacheJtaFactorySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridReplicatedCacheJtaFactorySelfTest.java b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridReplicatedCacheJtaFactorySelfTest.java
new file mode 100644
index 0000000..3885447
--- /dev/null
+++ b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridReplicatedCacheJtaFactorySelfTest.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.cache.CacheMode;
+
+import static org.apache.ignite.cache.CacheMode.REPLICATED;
+
+/**
+ * Factory JTA integration test using REPLICATED cache.
+ */
+public class GridReplicatedCacheJtaFactorySelfTest extends GridPartitionedCacheJtaFactorySelfTest {
+ /** {@inheritDoc} */
+ @Override protected CacheMode cacheMode() {
+ return REPLICATED;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridReplicatedCacheJtaLookupClassNameSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridReplicatedCacheJtaLookupClassNameSelfTest.java b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridReplicatedCacheJtaLookupClassNameSelfTest.java
new file mode 100644
index 0000000..2b89ba1
--- /dev/null
+++ b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridReplicatedCacheJtaLookupClassNameSelfTest.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.cache.CacheMode;
+
+import static org.apache.ignite.cache.CacheMode.REPLICATED;
+
+/**
+ * Lookup class name based JTA integration test using REPLICATED cache.
+ */
+public class GridReplicatedCacheJtaLookupClassNameSelfTest extends GridPartitionedCacheJtaLookupClassNameSelfTest {
+ /** {@inheritDoc} */
+ @Override protected CacheMode cacheMode() {
+ return REPLICATED;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridTmLookupLifecycleAwareSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridTmLookupLifecycleAwareSelfTest.java b/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridTmLookupLifecycleAwareSelfTest.java
deleted file mode 100644
index de02e3c..0000000
--- a/modules/jta/src/test/java/org/apache/ignite/internal/processors/cache/GridTmLookupLifecycleAwareSelfTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.cache;
-
-import javax.transaction.TransactionManager;
-import org.apache.ignite.Ignite;
-import org.apache.ignite.cache.CacheMode;
-import org.apache.ignite.cache.jta.CacheTmLookup;
-import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.configuration.NearCacheConfiguration;
-import org.apache.ignite.internal.IgniteKernal;
-import org.apache.ignite.lifecycle.LifecycleAware;
-import org.apache.ignite.resources.IgniteInstanceResource;
-import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
-import org.apache.ignite.testframework.junits.common.GridAbstractLifecycleAwareSelfTest;
-import org.jetbrains.annotations.Nullable;
-
-import static org.apache.ignite.cache.CacheMode.PARTITIONED;
-
-/**
- * Test for {@link LifecycleAware} support for {@link CacheTmLookup}.
- */
-public class GridTmLookupLifecycleAwareSelfTest extends GridAbstractLifecycleAwareSelfTest {
- /** */
- private static final String CACHE_NAME = "cache";
-
- /** */
- private boolean near;
-
- /** */
- private boolean configureGlobalTmLookup;
-
- /**
- */
- @SuppressWarnings("PublicInnerClass")
- public static class TestTxLookup extends GridAbstractLifecycleAwareSelfTest.TestLifecycleAware
- implements CacheTmLookup {
- /** */
- @IgniteInstanceResource
- Ignite ignite;
-
- /** {@inheritDoc} */
- @Override public void start() {
- super.start();
-
- assertNotNull(ignite);
- }
-
- /** {@inheritDoc} */
- @Nullable @Override public TransactionManager getTm() {
- return null;
- }
- }
-
- /** {@inheritDoc} */
- @Override protected final IgniteConfiguration getConfiguration(String gridName) throws Exception {
- IgniteConfiguration cfg = super.getConfiguration(gridName);
-
- cfg.setDiscoverySpi(new TcpDiscoverySpi());
-
- CacheConfiguration ccfg = defaultCacheConfiguration();
-
- ccfg.setCacheMode(PARTITIONED);
-
- ccfg.setNearConfiguration(near ? new NearCacheConfiguration() : null);
-
- ccfg.setCacheMode(CacheMode.PARTITIONED);
-
- ccfg.setName(CACHE_NAME);
-
- if (configureGlobalTmLookup)
- cfg.getTransactionConfiguration().setTxManagerLookupClassName(TestTxLookup.class.getName());
- else
- ccfg.setTransactionManagerLookupClassName(TestTxLookup.class.getName());
-
- cfg.setCacheConfiguration(ccfg);
-
- return cfg;
- }
-
- /** {@inheritDoc} */
- @Override protected void afterGridStart(Ignite ignite) {
- TestTxLookup tmLookup =
- (TestTxLookup)((IgniteKernal) ignite).context().cache().internalCache(CACHE_NAME).context().jta().tmLookup();
-
- assertNotNull(tmLookup);
-
- lifecycleAwares.add(tmLookup);
- }
-
- /** {@inheritDoc} */
- @Override public void testLifecycleAware() throws Exception {
- for (boolean nearEnabled : new boolean[] {true, false}) {
- near = nearEnabled;
-
- super.testLifecycleAware();
- }
- }
-
- /** {@inheritDoc} */
- public void testLifecycleAwareGlobal() throws Exception {
- configureGlobalTmLookup = true;
-
- super.testLifecycleAware();
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/5ea19a45/modules/jta/src/test/java/org/apache/ignite/testsuites/IgniteJtaTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/test/java/org/apache/ignite/testsuites/IgniteJtaTestSuite.java b/modules/jta/src/test/java/org/apache/ignite/testsuites/IgniteJtaTestSuite.java
index 657ee10..6e0c096 100644
--- a/modules/jta/src/test/java/org/apache/ignite/testsuites/IgniteJtaTestSuite.java
+++ b/modules/jta/src/test/java/org/apache/ignite/testsuites/IgniteJtaTestSuite.java
@@ -18,10 +18,14 @@
package org.apache.ignite.testsuites;
import junit.framework.TestSuite;
+import org.apache.ignite.internal.processors.cache.CacheJndiTmFactorySelfTest;
import org.apache.ignite.internal.processors.cache.GridCacheJtaConfigurationValidationSelfTest;
-import org.apache.ignite.internal.processors.cache.GridCacheJtaSelfTest;
-import org.apache.ignite.internal.processors.cache.GridCacheReplicatedJtaSelfTest;
-import org.apache.ignite.internal.processors.cache.GridTmLookupLifecycleAwareSelfTest;
+import org.apache.ignite.internal.processors.cache.GridCacheJtaFactoryConfigValidationSelfTest;
+import org.apache.ignite.internal.processors.cache.GridPartitionedCacheJtaFactorySelfTest;
+import org.apache.ignite.internal.processors.cache.GridPartitionedCacheJtaLookupClassNameSelfTest;
+import org.apache.ignite.internal.processors.cache.GridReplicatedCacheJtaFactorySelfTest;
+import org.apache.ignite.internal.processors.cache.GridReplicatedCacheJtaLookupClassNameSelfTest;
+import org.apache.ignite.internal.processors.cache.GridJtaLifecycleAwareSelfTest;
/**
* JTA integration tests.
@@ -34,11 +38,19 @@ public class IgniteJtaTestSuite extends TestSuite {
public static TestSuite suite() throws Exception {
TestSuite suite = new TestSuite("JTA Integration Test Suite");
- suite.addTestSuite(GridCacheJtaSelfTest.class);
- suite.addTestSuite(GridCacheReplicatedJtaSelfTest.class);
- suite.addTestSuite(GridTmLookupLifecycleAwareSelfTest.class);
+ suite.addTestSuite(GridPartitionedCacheJtaFactorySelfTest.class);
+ suite.addTestSuite(GridReplicatedCacheJtaFactorySelfTest.class);
+
+ suite.addTestSuite(GridPartitionedCacheJtaLookupClassNameSelfTest.class);
+ suite.addTestSuite(GridReplicatedCacheJtaLookupClassNameSelfTest.class);
+
+ suite.addTestSuite(GridJtaLifecycleAwareSelfTest.class);
suite.addTestSuite(GridCacheJtaConfigurationValidationSelfTest.class);
+ suite.addTestSuite(GridCacheJtaFactoryConfigValidationSelfTest.class);
+
+ // Factory
+ suite.addTestSuite(CacheJndiTmFactorySelfTest.class);
return suite;
}
-}
\ No newline at end of file
+}