[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