[jboss-svn-commits] JBL Code SVN: r37555 - in labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed: server and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Oct 15 13:59:12 EDT 2011
Author: tomjenkinson
Date: 2011-10-15 13:59:11 -0400 (Sat, 15 Oct 2011)
New Revision: 37555
Added:
labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/LookupProvider.java
Modified:
labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/SimpleIsolatedServers.java
labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/IsolatableServersClassLoader.java
labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/LocalServer.java
labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/RemoteServer.java
labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxySynchronization.java
labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxyXAResource.java
labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxyXAResourceRecovery.java
labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ServerImpl.java
Log:
JBTM-916 updated to allow the test to be totally isolated with an optional package that can be used to define the interfaces to be shared between classloaders
Modified: labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/SimpleIsolatedServers.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/SimpleIsolatedServers.java 2011-10-15 12:11:10 UTC (rev 37554)
+++ labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/SimpleIsolatedServers.java 2011-10-15 17:59:11 UTC (rev 37555)
@@ -2,8 +2,6 @@
import java.io.File;
import java.io.IOException;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
@@ -26,33 +24,22 @@
import com.arjuna.ats.arjuna.common.CoreEnvironmentBeanException;
import com.arjuna.ats.jta.distributed.server.IsolatableServersClassLoader;
import com.arjuna.ats.jta.distributed.server.LocalServer;
+import com.arjuna.ats.jta.distributed.server.LookupProvider;
import com.arjuna.ats.jta.distributed.server.RemoteServer;
public class SimpleIsolatedServers {
+ private static LookupProvider lookupProvider = new MyLookupProvider();
private static LocalServer[] localServers = new LocalServer[3];
private static RemoteServer[] remoteServers = new RemoteServer[3];
@BeforeClass
public static void setup() throws SecurityException, NoSuchMethodException, InstantiationException, IllegalAccessException, ClassNotFoundException,
CoreEnvironmentBeanException, IOException {
-
- // Get the Server interface loaded, only way I found to do this was
- // instantiate one
- java.lang.reflect.Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), new Class[] { LocalServer.class, RemoteServer.class },
- new InvocationHandler() {
-
- @Override
- public Object invoke(Object arg0, Method arg1, Object[] arg2) throws Throwable {
- // TODO Auto-generated method stub
- return null;
- }
- });
-
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
for (int i = 0; i < localServers.length; i++) {
- IsolatableServersClassLoader classLoader = new IsolatableServersClassLoader(contextClassLoader);
+ IsolatableServersClassLoader classLoader = new IsolatableServersClassLoader("com.arjuna.ats.jta.distributed.server", contextClassLoader);
localServers[i] = (LocalServer) classLoader.loadClass("com.arjuna.ats.jta.distributed.server.impl.ServerImpl").newInstance();
- localServers[i].initialise((i + 1) * 1000);
+ localServers[i].initialise(lookupProvider, (i + 1) * 1000);
remoteServers[i] = localServers[i].connectTo();
}
}
@@ -90,9 +77,10 @@
boolean proxyRequired = recursivelyFlowTransaction(nodesToFlowTo, timeLeftBeforeTransactionTimeout, toMigrate);
originalServer.getTransactionManager().resume(suspendedTransaction);
if (proxyRequired) {
- XAResource proxyXAResource = originalServer.generateProxyXAResource(originalServer.getNodeName(), 2000);
+ XAResource proxyXAResource = originalServer.generateProxyXAResource(lookupProvider, originalServer.getNodeName(), 2000);
originalTransaction.enlistResource(proxyXAResource);
- originalTransaction.registerSynchronization(originalServer.generateProxySynchronization(originalServer.getNodeName(), 2000, toMigrate));
+ originalTransaction.registerSynchronization(originalServer.generateProxySynchronization(lookupProvider, originalServer.getNodeName(), 2000,
+ toMigrate));
}
Transaction transaction = transactionManager.getTransaction();
@@ -135,10 +123,10 @@
// RESUME THE TRANSACTION IN CASE THERE IS MORE WORK
currentServer.getTransactionManager().resume(suspendedTransaction);
if (proxyRequired) {
- XAResource proxyXAResource = currentServer.generateProxyXAResource(currentServer.getNodeName(), nextServerNodeName);
+ XAResource proxyXAResource = currentServer.generateProxyXAResource(lookupProvider, currentServer.getNodeName(), nextServerNodeName);
suspendedTransaction.enlistResource(proxyXAResource);
- suspendedTransaction.registerSynchronization(currentServer.generateProxySynchronization(currentServer.getNodeName(), nextServerNodeName,
- toMigrate));
+ suspendedTransaction.registerSynchronization(currentServer.generateProxySynchronization(lookupProvider, currentServer.getNodeName(),
+ nextServerNodeName, toMigrate));
}
}
// SUSPEND THE TRANSACTION WHEN YOU ARE READY TO RETURN TO YOUR CALLER
@@ -146,13 +134,18 @@
return requiresProxyAtPreviousServer;
}
- public static RemoteServer lookup(Integer jndiName) {
- int index = (jndiName / 1000) - 1;
- return remoteServers[index];
- }
-
private static LocalServer getLocalServer(Integer jndiName) {
int index = (jndiName / 1000) - 1;
return localServers[index];
}
+
+ private static class MyLookupProvider implements LookupProvider {
+
+ @Override
+ public RemoteServer lookup(Integer jndiName) {
+ int index = (jndiName / 1000) - 1;
+ return remoteServers[index];
+ }
+
+ }
}
Modified: labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/IsolatableServersClassLoader.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/IsolatableServersClassLoader.java 2011-10-15 12:11:10 UTC (rev 37554)
+++ labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/IsolatableServersClassLoader.java 2011-10-15 17:59:11 UTC (rev 37555)
@@ -1,26 +1,36 @@
package com.arjuna.ats.jta.distributed.server;
-import java.io.ByteArrayOutputStream;
-import java.io.FileNotFoundException;
import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
-import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
+import sun.misc.Resource;
+import sun.misc.URLClassPath;
+
public class IsolatableServersClassLoader extends ClassLoader {
private Map<String, Class<?>> clazzMap = new HashMap<String, Class<?>>();
- private Method m;
+ private URLClassPath ucp;
+ private String ignoredPackage;
- public IsolatableServersClassLoader(ClassLoader parent) throws SecurityException, NoSuchMethodException {
+ public IsolatableServersClassLoader(String ignoredPackage, ClassLoader parent) throws SecurityException, NoSuchMethodException, MalformedURLException {
super(parent);
- m = ClassLoader.class.getDeclaredMethod("findLoadedClass", new Class[] { String.class });
- m.setAccessible(true);
+ this.ignoredPackage = ignoredPackage;
+
+ String property = System.getProperty("java.class.path");
+ String[] split = property.split(":");
+ URL[] urls = new URL[1];
+ for (int i = 0; i < urls.length; i++) {
+ String url = split[0];
+ if (url.endsWith(".jar")) {
+ urls[0] = new URL("jar:file:" + url + "/");
+ } else {
+ urls[0] = new URL("file:" + url + "/");
+ }
+ }
+ this.ucp = new URLClassPath(urls);
}
@Override
@@ -37,53 +47,20 @@
clazz = clazzMap.get(name);
}
- try {
- ClassLoader parent2 = getParent();
- Object test1 = m.invoke(parent2, name);
- if (test1 != null) {
-
- if (!name.equals("")) {
- clazz = super.loadClass(name);
- }
- } else {
- try {
- String url = "file:" + System.getProperty("user.dir") + "/bin/" + name.replace('.', '/') + ".class";
- URL myUrl = new URL(url);
- try {
- URLConnection connection = myUrl.openConnection();
- InputStream input = connection.getInputStream();
- ByteArrayOutputStream buffer = new ByteArrayOutputStream();
- int data = input.read();
+ if (!name.startsWith("com.arjuna") || name.matches(ignoredPackage + ".[A-Za-z0-9]*") || name.contains("logging")) {
+ clazz = super.loadClass(name);
+ } else {
- while (data != -1) {
- buffer.write(data);
- data = input.read();
- }
-
- input.close();
-
- byte[] classData = buffer.toByteArray();
-
- clazz = defineClass(name, classData, 0, classData.length);
- clazzMap.put(name, clazz);
- } catch (FileNotFoundException fnfe) {
- return super.loadClass(name);
- }
- } catch (MalformedURLException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
+ String path = name.replace('.', '/').concat(".class");
+ Resource res = ucp.getResource(path, false);
+ try {
+ byte[] classData = res.getBytes();
+ clazz = defineClass(name, classData, 0, classData.length);
+ clazzMap.put(name, clazz);
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
}
- } catch (IllegalArgumentException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (IllegalAccessException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (InvocationTargetException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
}
return clazz;
Modified: labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/LocalServer.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/LocalServer.java 2011-10-15 12:11:10 UTC (rev 37554)
+++ labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/LocalServer.java 2011-10-15 17:59:11 UTC (rev 37555)
@@ -16,7 +16,7 @@
public interface LocalServer {
- public void initialise(Integer nodeName) throws CoreEnvironmentBeanException, IOException;
+ public void initialise(LookupProvider lookupProvider, Integer nodeName) throws CoreEnvironmentBeanException, IOException;
public Integer getNodeName();
@@ -35,8 +35,8 @@
public void setOffline(boolean offline);
- public XAResource generateProxyXAResource(Integer localServerName, Integer remoteServerName);
+ public XAResource generateProxyXAResource(LookupProvider lookupProvider, Integer localServerName, Integer remoteServerName);
- public Synchronization generateProxySynchronization(Integer localServerName, Integer remoteServerName, Xid toRegisterAgainst);
+ public Synchronization generateProxySynchronization(LookupProvider lookupProvider, Integer localServerName, Integer remoteServerName, Xid toRegisterAgainst);
}
Added: labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/LookupProvider.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/LookupProvider.java (rev 0)
+++ labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/LookupProvider.java 2011-10-15 17:59:11 UTC (rev 37555)
@@ -0,0 +1,5 @@
+package com.arjuna.ats.jta.distributed.server;
+
+public interface LookupProvider {
+ public RemoteServer lookup(Integer jndiName);
+}
Modified: labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/RemoteServer.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/RemoteServer.java 2011-10-15 12:11:10 UTC (rev 37554)
+++ labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/RemoteServer.java 2011-10-15 17:59:11 UTC (rev 37555)
@@ -1,6 +1,5 @@
package com.arjuna.ats.jta.distributed.server;
-import java.net.ConnectException;
import java.util.List;
import javax.transaction.HeuristicCommitException;
Modified: labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxySynchronization.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxySynchronization.java 2011-10-15 12:11:10 UTC (rev 37554)
+++ labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxySynchronization.java 2011-10-15 17:59:11 UTC (rev 37555)
@@ -5,16 +5,18 @@
import javax.transaction.xa.XAException;
import javax.transaction.xa.Xid;
-import com.arjuna.ats.jta.distributed.SimpleIsolatedServers;
import com.arjuna.ats.jta.distributed.server.DummyRemoteException;
+import com.arjuna.ats.jta.distributed.server.LookupProvider;
public class ProxySynchronization implements Synchronization {
private int localServerName;
private int remoteServerName;
private Xid toRegisterAgainst;
+ private LookupProvider lookupProvider;
- public ProxySynchronization(int localServerName, int remoteServerName, Xid toRegisterAgainst) {
+ public ProxySynchronization(LookupProvider lookupProvider, int localServerName, int remoteServerName, Xid toRegisterAgainst) {
+ this.lookupProvider = lookupProvider;
this.localServerName = localServerName;
this.remoteServerName = remoteServerName;
this.toRegisterAgainst = toRegisterAgainst;
@@ -24,7 +26,7 @@
public void beforeCompletion() {
System.out.println("ProxySynchronization (" + localServerName + ":" + remoteServerName + ") beforeCompletion");
try {
- SimpleIsolatedServers.lookup(remoteServerName).propagateBeforeCompletion(toRegisterAgainst);
+ lookupProvider.lookup(remoteServerName).propagateBeforeCompletion(toRegisterAgainst);
} catch (XAException e) {
e.printStackTrace();
} catch (SystemException e) {
Modified: labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxyXAResource.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxyXAResource.java 2011-10-15 12:11:10 UTC (rev 37554)
+++ labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxyXAResource.java 2011-10-15 17:59:11 UTC (rev 37555)
@@ -20,8 +20,8 @@
import org.jboss.tm.XAResourceWrapper;
import com.arjuna.ats.arjuna.common.Uid;
-import com.arjuna.ats.jta.distributed.SimpleIsolatedServers;
import com.arjuna.ats.jta.distributed.server.DummyRemoteException;
+import com.arjuna.ats.jta.distributed.server.LookupProvider;
public class ProxyXAResource implements XAResource, XAResourceWrapper {
@@ -33,12 +33,16 @@
private File file;
private Integer localServerName;
- public ProxyXAResource(Integer localServerName, Integer remoteServerName) {
+ private LookupProvider lookupProvider;
+
+ public ProxyXAResource(LookupProvider lookupProvider, Integer localServerName, Integer remoteServerName) {
+ this.lookupProvider = lookupProvider;
this.localServerName = localServerName;
this.remoteServerName = remoteServerName;
}
- public ProxyXAResource(Integer localServerName, File file) throws IOException {
+ public ProxyXAResource(LookupProvider lookupProvider, Integer localServerName, File file) throws IOException {
+ this.lookupProvider = lookupProvider;
this.localServerName = localServerName;
this.file = file;
DataInputStream fis = new DataInputStream(new FileInputStream(file));
@@ -151,7 +155,7 @@
}
try {
- int propagatePrepare = SimpleIsolatedServers.lookup(remoteServerName).propagatePrepare(xid);
+ int propagatePrepare = lookupProvider.lookup(remoteServerName).propagatePrepare(xid);
System.out.println(" ProxyXAResource (" + localServerName + ":" + remoteServerName + ") XA_PREPARED");
return propagatePrepare;
} catch (DummyRemoteException ce) {
@@ -164,7 +168,7 @@
System.out.println(" ProxyXAResource (" + localServerName + ":" + remoteServerName + ") XA_COMMIT [" + xid + "]");
try {
- SimpleIsolatedServers.lookup(remoteServerName).propagateCommit(xid, onePhase);
+ lookupProvider.lookup(remoteServerName).propagateCommit(xid, onePhase);
System.out.println(" ProxyXAResource (" + localServerName + ":" + remoteServerName + ") XA_COMMITED");
} catch (IllegalStateException e) {
throw new XAException(XAException.XAER_INVAL);
@@ -189,7 +193,7 @@
public synchronized void rollback(Xid xid) throws XAException {
System.out.println(" ProxyXAResource (" + localServerName + ":" + remoteServerName + ") XA_ROLLBACK[" + xid + "]");
try {
- SimpleIsolatedServers.lookup(remoteServerName).propagateRollback(xid);
+ lookupProvider.lookup(remoteServerName).propagateRollback(xid);
System.out.println(" ProxyXAResource (" + localServerName + ":" + remoteServerName + ") XA_ROLLBACKED");
} catch (IllegalStateException e) {
throw new XAException(XAException.XAER_INVAL);
@@ -229,7 +233,7 @@
// Make sure that the remote server has recovered all
// transactions
try {
- SimpleIsolatedServers.lookup(remoteServerName).propagateRecover(startScanned, flag);
+ lookupProvider.lookup(remoteServerName).propagateRecover(startScanned, flag);
} catch (DummyRemoteException ce) {
throw new XAException(XAException.XA_RETRY);
} finally {
@@ -247,7 +251,7 @@
if (!startScanned.contains(remoteServerName)) {
try {
- SimpleIsolatedServers.lookup(remoteServerName).propagateRecover(startScanned, flag);
+ lookupProvider.lookup(remoteServerName).propagateRecover(startScanned, flag);
} catch (DummyRemoteException ce) {
throw new XAException(XAException.XA_RETRY);
} finally {
@@ -266,7 +270,7 @@
public void forget(Xid xid) throws XAException {
System.out.println(" ProxyXAResource (" + localServerName + ":" + remoteServerName + ") XA_FORGET [" + xid + "]");
try {
- SimpleIsolatedServers.lookup(remoteServerName).propagateForget(xid);
+ lookupProvider.lookup(remoteServerName).propagateForget(xid);
System.out.println(" ProxyXAResource (" + localServerName + ":" + remoteServerName + ") XA_FORGETED[" + xid + "]");
} catch (DummyRemoteException ce) {
throw new XAException(XAException.XA_RETRY);
Modified: labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxyXAResourceRecovery.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxyXAResourceRecovery.java 2011-10-15 12:11:10 UTC (rev 37554)
+++ labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxyXAResourceRecovery.java 2011-10-15 17:59:11 UTC (rev 37555)
@@ -9,18 +9,19 @@
import org.jboss.tm.XAResourceRecovery;
+import com.arjuna.ats.jta.distributed.server.LookupProvider;
public class ProxyXAResourceRecovery implements XAResourceRecovery {
private List<ProxyXAResource> resources = new ArrayList<ProxyXAResource>();
- public ProxyXAResourceRecovery(int id) throws IOException {
+ public ProxyXAResourceRecovery(LookupProvider lookupProvider, int id) throws IOException {
File file = new File(System.getProperty("user.dir") + "/tmp/ProxyXAResource/" + id + "/");
if (file.exists() && file.isDirectory()) {
File[] listFiles = file.listFiles();
for (int i = 0; i < listFiles.length; i++) {
File currentFile = listFiles[i];
- resources.add(new ProxyXAResource(id, currentFile));
+ resources.add(new ProxyXAResource(lookupProvider, id, currentFile));
}
}
}
Modified: labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ServerImpl.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ServerImpl.java 2011-10-15 12:11:10 UTC (rev 37554)
+++ labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ServerImpl.java 2011-10-15 17:59:11 UTC (rev 37555)
@@ -39,6 +39,7 @@
import com.arjuna.ats.jta.distributed.TestResourceRecovery;
import com.arjuna.ats.jta.distributed.server.DummyRemoteException;
import com.arjuna.ats.jta.distributed.server.LocalServer;
+import com.arjuna.ats.jta.distributed.server.LookupProvider;
import com.arjuna.ats.jta.distributed.server.RemoteServer;
public class ServerImpl implements LocalServer, RemoteServer {
@@ -47,8 +48,10 @@
private RecoveryManagerService recoveryManagerService;
private TransactionManagerService transactionManagerService;
private boolean offline;
+ private LookupProvider lookupProvider;
- public void initialise(Integer serverName) throws CoreEnvironmentBeanException, IOException {
+ public void initialise(LookupProvider lookupProvider, Integer serverName) throws CoreEnvironmentBeanException, IOException {
+ this.lookupProvider = lookupProvider;
this.nodeName = serverName;
RecoveryEnvironmentBean recoveryEnvironmentBean = com.arjuna.ats.arjuna.common.recoveryPropertyManager.getRecoveryEnvironmentBean();
@@ -117,7 +120,7 @@
recoveryManagerService = new RecoveryManagerService();
recoveryManagerService.create();
- recoveryManagerService.addXAResourceRecovery(new ProxyXAResourceRecovery(serverName));
+ recoveryManagerService.addXAResourceRecovery(new ProxyXAResourceRecovery(lookupProvider, serverName));
recoveryManagerService.addXAResourceRecovery(new TestResourceRecovery(serverName));
// recoveryManagerService.start();
RecoveryManager.manager().initialize();
@@ -171,13 +174,13 @@
}
@Override
- public XAResource generateProxyXAResource(Integer localServerName, Integer remoteServerName) {
- return new ProxyXAResource(localServerName, remoteServerName);
+ public XAResource generateProxyXAResource(LookupProvider lookupProvider, Integer localServerName, Integer remoteServerName) {
+ return new ProxyXAResource(lookupProvider, localServerName, remoteServerName);
}
@Override
- public Synchronization generateProxySynchronization(Integer localServerName, Integer remoteServerName, Xid toRegisterAgainst) {
- return new ProxySynchronization(localServerName, remoteServerName, toRegisterAgainst);
+ public Synchronization generateProxySynchronization(LookupProvider lookupProvider, Integer localServerName, Integer remoteServerName, Xid toRegisterAgainst) {
+ return new ProxySynchronization(lookupProvider, localServerName, remoteServerName, toRegisterAgainst);
}
@Override
More information about the jboss-svn-commits
mailing list