[jboss-svn-commits] JBL Code SVN: r30253 - in labs/jbosstm/trunk: ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser and 17 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Nov 19 15:27:57 EST 2009
Author: mmusgrov
Date: 2009-11-19 15:27:56 -0500 (Thu, 19 Nov 2009)
New Revision: 30253
Modified:
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/IToolInitializer.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/ObjectStoreBrowserPlugin.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/ObjectStoreCellRenderer.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/PluginClassloader.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/panels/ListViewEntry.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/panels/ObjectStoreViewEntry.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/rootprovider/providers/DefaultRootProvider.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/StateViewerInterface.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/StateViewersRepository.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/ArjunaTransactionWrapper.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/BasicActionInfo.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/TxInfoNode.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/TxInfoViewEntry.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/UidInfo.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/XAResourceListNode.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/XAResourceViewEntry.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/AtomicActionViewer.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/AtomicActionWrapper.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/icons/AtomicTransactionViewEntry.java
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/treenodes/ListEntryNode.java
labs/jbosstm/trunk/ArjunaCore/tsmx/build.xml
labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/ToolInitializer.java
labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/abstractrecord/AbstractRecordViewer.java
labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/ArjunaTransactionViewer.java
labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/FailedListNode.java
labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/HeuristicListNode.java
labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/PendingListNode.java
labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/PreparedListNode.java
labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/ReadOnlyListNode.java
labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/LiveAtomicActionWrapper.java
labs/jbosstm/trunk/ArjunaJTS/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/abstractrecord/ExtendedResourceRecordViewer.java
labs/jbosstm/trunk/ArjunaJTS/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/abstractrecord/ResourceRecordViewer.java
labs/jbosstm/trunk/qa/tests/scripts/README.txt
labs/jbosstm/trunk/qa/tests/scripts/as-tests.xml
labs/jbosstm/trunk/qa/tests/scripts/imports/test-config.xml
labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/astests/ASCrashRecovery01/Test03.java
labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/astests/taskdefs/TransactionLog.java
Log:
Make sure the correct viewers are loaded according to which JTA version is installed.
JBTM-658
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/IToolInitializer.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/IToolInitializer.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/IToolInitializer.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -28,4 +28,5 @@
public interface IToolInitializer
{
void initialize(ToolPlugin plugin);
+ boolean isJTS();
}
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/ObjectStoreBrowserPlugin.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/ObjectStoreBrowserPlugin.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/ObjectStoreBrowserPlugin.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -65,6 +65,7 @@
private BrowserFrame _browser = null;
private JMenuItem _menuItem = null;
+ private boolean _isJTS;
/**
* Initialise the plugin, many activities should be performed during this method:-
@@ -110,7 +111,7 @@
throw new ToolPluginException("Cannot locate plugin initializer for plugin " + getClass().getName());
/** Initialise the state viewers repository **/
- StateViewersRepository.initialiseRepository(new File(getToolsFramework().getToolsDir().getFile(), PLUGINS_DIRECTORY));
+ StateViewersRepository.initialiseRepository(_isJTS, new File(getToolsFramework().getToolsDir().getFile(), PLUGINS_DIRECTORY));
EntityViewerRepository.initialiseRepository(props);
StateViewersRepository.setDefaultStateViewer(new DefaultStateViewer());
@@ -124,7 +125,9 @@
{
try
{
- ((IToolInitializer)Class.forName(cName).newInstance()).initialize(this);
+ IToolInitializer toolInitializer = (IToolInitializer)Class.forName(cName).newInstance();
+ toolInitializer.initialize(this);
+ _isJTS = toolInitializer.isJTS();
return true;
}
catch (Exception e)
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/ObjectStoreCellRenderer.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/ObjectStoreCellRenderer.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/ObjectStoreCellRenderer.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -30,18 +30,12 @@
*/
package com.arjuna.ats.tools.objectstorebrowser;
-import com.arjuna.ats.tools.objectstorebrowser.frames.BrowserFrame;
import com.arjuna.ats.tools.objectstorebrowser.treenodes.ListNode;
import com.arjuna.ats.tools.objectstorebrowser.treenodes.ObjectStoreBrowserNode;
import com.arjuna.ats.tools.toolsframework.images.ImageCommon;
-import com.arjuna.ats.arjuna.objectstore.ObjectStore;
-import com.arjuna.ats.arjuna.state.InputObjectState;
-import com.arjuna.ats.arjuna.common.Uid;
-
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.TreePath;
-import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.*;
import java.awt.*;
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/PluginClassloader.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/PluginClassloader.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/PluginClassloader.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -33,6 +33,7 @@
import java.io.File;
import java.io.FilenameFilter;
+import java.io.IOException;
import java.util.jar.JarFile;
import java.util.jar.Attributes;
import java.util.jar.Manifest;
@@ -68,37 +69,37 @@
ArrayList urls = new ArrayList();
ArrayList<String> plugins = new ArrayList<String> ();
- for (int count=0;count<files.length;count++)
+ for (File file : files)
{
try
{
- JarFile jarFile = new JarFile(files[count]);
+ JarFile jarFile = new JarFile(file);
Manifest jarManifest = jarFile.getManifest();
- if ( jarManifest != null )
+ if (jarManifest != null)
{
Attributes jarAttrs = jarManifest.getAttributes(manifestSectionName);
- if ( jarAttrs != null )
+ if (jarAttrs != null)
{
int index = 1;
String classname;
/** Get property.1, property.2, property.x .... **/
- while ( ( classname = jarAttrs.getValue(JAR_MANIFEST_PROPERTY_NAME + (index++)) ) != null )
+ while ((classname = jarAttrs.getValue(JAR_MANIFEST_PROPERTY_NAME + (index++))) != null)
{
/** Add the URL of the file to urls list **/
- urls.add(files[count].toURL());
+ urls.add(file.toURL());
/** Add the classname to the list - which will later be replaced with the actual class **/
plugins.add(classname);
}
}
}
}
- catch (java.io.IOException e)
+ catch (IOException e)
{
- System.err.println("An error occurred while trying to load plugin: "+files[count]);
+ System.err.println("An error occurred while trying to load plugin: " + file);
e.printStackTrace(System.err);
}
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/panels/ListViewEntry.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/panels/ListViewEntry.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/panels/ListViewEntry.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -30,7 +30,6 @@
*/
package com.arjuna.ats.tools.objectstorebrowser.panels;
-import com.arjuna.ats.tools.toolsframework.iconpanel.IconPanelEntry;
import com.arjuna.ats.tools.objectstorebrowser.treenodes.*;
public class ListViewEntry extends SubTreeViewEntry
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/panels/ObjectStoreViewEntry.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/panels/ObjectStoreViewEntry.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/panels/ObjectStoreViewEntry.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -30,7 +30,6 @@
*/
package com.arjuna.ats.tools.objectstorebrowser.panels;
-import com.arjuna.ats.tools.toolsframework.iconpanel.IconPanelEntry;
import com.arjuna.ats.tools.objectstorebrowser.treenodes.*;
public class ObjectStoreViewEntry extends SubTreeViewEntry
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/rootprovider/providers/DefaultRootProvider.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/rootprovider/providers/DefaultRootProvider.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/rootprovider/providers/DefaultRootProvider.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -48,11 +48,11 @@
if ( files != null )
{
- for (int count=0;count<files.length;count++)
+ for (File file : files)
{
- if ( files[count].isDirectory() )
+ if (file.isDirectory())
{
- roots.add(files[count].getName());
+ roots.add(file.getName());
}
}
}
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/StateViewerInterface.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/StateViewerInterface.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/StateViewerInterface.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -31,11 +31,9 @@
package com.arjuna.ats.tools.objectstorebrowser.stateviewers;
import com.arjuna.ats.tools.objectstorebrowser.*;
-import com.arjuna.ats.tools.objectstorebrowser.panels.ObjectStoreViewEntry;
import com.arjuna.ats.tools.objectstorebrowser.panels.StatePanel;
import com.arjuna.ats.arjuna.objectstore.ObjectStore;
import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
-import com.arjuna.ats.arjuna.common.Uid;
import com.arjuna.ats.tools.objectstorebrowser.treenodes.*;
/**
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/StateViewersRepository.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/StateViewersRepository.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/StateViewersRepository.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -32,7 +32,6 @@
import com.arjuna.ats.tools.objectstorebrowser.PluginClassloader;
-import java.util.Hashtable;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ConcurrentHashMap;
import java.io.File;
@@ -46,7 +45,8 @@
public class StateViewersRepository
{
private final static String STATE_VIEWER_JAR_PREFIX = "osbv-";
- private final static String JAR_MANIFEST_SECTION_NAME = "arjuna-tools-objectstorebrowser";
+ private final static String JTA_JAR_MANIFEST_SECTION_NAME = "arjuna-tools-objectstorebrowser-jta";
+ private final static String JTS_JAR_MANIFEST_SECTION_NAME = "arjuna-tools-objectstorebrowser-jts";
private final static String DEFAULT_ABSTRACT_RECORD_VIEWER = "com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.abstractrecord.AbstractRecordViewer";
/** Store objectTypeName to stateViewer mappings **/
@@ -120,42 +120,47 @@
return svi;
}
- public static void initialiseRepository(File pluginDir)
+ public static void initialiseRepository(String mananifestSection, File pluginDir)
{
- try
- {
- PluginClassloader classloader = new PluginClassloader(STATE_VIEWER_JAR_PREFIX, null, JAR_MANIFEST_SECTION_NAME, pluginDir);
+ PluginClassloader classloader = new PluginClassloader(STATE_VIEWER_JAR_PREFIX, null, mananifestSection, pluginDir);
Object[] plugins = classloader.getPlugins();
-
- for (int count=0;count<plugins.length;count++)
- {
- if ( plugins[count] instanceof StateViewerInterface )
+
+ for (Object plugin : plugins)
+ {
+ try
+ {
+ if (plugin instanceof StateViewerInterface)
{
- StateViewerInterface viewer = ((StateViewerInterface)plugins[count]);
+ StateViewerInterface viewer = ((StateViewerInterface) plugin);
/** Get the type name and ensure the delimiters and the correct ones **/
String type = viewer.getType();
- StateViewersRepository.registerStateViewer( type, viewer );
+ StateViewersRepository.registerStateViewer(type, viewer);
}
- else
- if ( plugins[count] instanceof AbstractRecordStateViewerInterface )
- {
- AbstractRecordStateViewerInterface viewer = ((AbstractRecordStateViewerInterface)plugins[count]);
+ else if (plugin instanceof AbstractRecordStateViewerInterface)
+ {
+ AbstractRecordStateViewerInterface viewer = ((AbstractRecordStateViewerInterface) plugin);
- /** Get the type name and ensure the delimiters and the correct ones **/
- String type = viewer.getType();
+ /** Get the type name and ensure the delimiters and the correct ones **/
+ String type = viewer.getType();
- StateViewersRepository.registerAbstractRecordStateViewer( type, viewer );
- }
- }
+ StateViewersRepository.registerAbstractRecordStateViewer(type, viewer);
+ }
+ }
+ catch (ViewerAlreadyRegisteredException e)
+ {
+ // ignore
+ }
+ }
}
- catch (Exception e)
- {
- e.printStackTrace();
-
- throw new ExceptionInInitializerError("Failed to initiate object state viewers: "+e);
- }
+
+ public static void initialiseRepository(boolean isJTS, File pluginDir)
+ {
+ initialiseRepository(JTA_JAR_MANIFEST_SECTION_NAME, pluginDir);
+
+ if (isJTS)
+ initialiseRepository(JTS_JAR_MANIFEST_SECTION_NAME, pluginDir);
}
public static void disposeRepository()
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/ArjunaTransactionWrapper.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/ArjunaTransactionWrapper.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/ArjunaTransactionWrapper.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -24,6 +24,7 @@
import com.arjuna.ats.arjuna.coordinator.RecordList;
import com.arjuna.ats.arjuna.common.Uid;
import com.arjuna.ats.arjuna.ObjectType;
+import com.arjuna.ats.arjuna.objectstore.ObjectStore;
import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
import java.util.Collection;
@@ -32,13 +33,37 @@
public class ArjunaTransactionWrapper extends BasicAction implements BasicActionInfo
{
private String type;
+ private UidInfo uidInfo;
+ private ObjectStore os;
public ArjunaTransactionWrapper(Uid objUid, String type)
{
+ this(null, type, objUid);
+ }
+
+ public ArjunaTransactionWrapper(ObjectStore os, String type, Uid objUid)
+ {
super(objUid, ObjectType.ANDPERSISTENT);
this.type = type;
+ this.os = os;
+ uidInfo = new UidInfo(get_uid(), getClass().getName() + "@" + Integer.toHexString(hashCode()));
+
+ try
+ {
+ uidInfo.setCommitted(os.read_committed(objUid, type));
+// uidInfo.setUncommitted(os.read_uncommitted(objUid, type));
+ }
+ catch (ObjectStoreException e)
+ {
+ System.out.println("Error reading tx log record state: " + e.getMessage());
+ }
}
+ public ObjectStore getStore()
+ {
+ return os;
+ }
+
/**
* Overloads StateManager.type()
*/
@@ -74,7 +99,7 @@
public UidInfo getUidInfo()
{
- return new UidInfo(get_uid(), getClass().getName() + "@" + Integer.toHexString(hashCode()));
+ return uidInfo;
}
public int getTxTimeout()
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/BasicActionInfo.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/BasicActionInfo.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/BasicActionInfo.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -23,6 +23,7 @@
import com.arjuna.ats.arjuna.coordinator.RecordList;
import com.arjuna.ats.arjuna.common.Uid;
import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
+import com.arjuna.ats.arjuna.objectstore.ObjectStore;
import java.util.Collection;
@@ -48,4 +49,5 @@
String type();
void remove() throws ObjectStoreException;
boolean isLive();
+ ObjectStore getStore();
}
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/TxInfoNode.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/TxInfoNode.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/TxInfoNode.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -32,6 +32,7 @@
import javax.swing.*;
import javax.swing.tree.TreePath;
+import javax.swing.tree.TreeNode;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
@@ -106,12 +107,13 @@
{
try
{
+ TreeNode parent = getParent().getParent();
getAction().remove();
// the node should no longer exist so collapse the tree up to its parent.
- if (getParent().getParent() != null)
+ if (parent != null)
{
- TreePath path = new TreePath(BrowserFrame.getTreeModel().getPathToRoot(getParent().getParent()));
+ TreePath path = new TreePath(BrowserFrame.getTreeModel().getPathToRoot(parent));
BrowserFrame.getTree().collapsePath(path);
BrowserFrame.getTree().setSelectionPath(path);
BrowserFrame.getTree().scrollPathToVisible(path);
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/TxInfoViewEntry.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/TxInfoViewEntry.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/TxInfoViewEntry.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -21,7 +21,6 @@
package com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers;
import com.arjuna.ats.tools.objectstorebrowser.panels.ListViewEntry;
-import com.arjuna.ats.tools.objectstorebrowser.panels.StatePanel;
import com.arjuna.ats.tools.objectstorebrowser.treenodes.ObjectStoreBrowserNode;
import com.arjuna.ats.tools.objectstorebrowser.frames.BrowserFrame;
import com.arjuna.ats.tools.toolsframework.iconpanel.IconSelectionListener;
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/UidInfo.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/UidInfo.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/UidInfo.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -21,9 +21,7 @@
package com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers;
import com.arjuna.ats.arjuna.common.Uid;
-import com.arjuna.ats.arjuna.state.OutputBuffer;
-import com.arjuna.ats.arjuna.state.InputBuffer;
-import com.arjuna.ats.internal.arjuna.common.UidHelper;
+import com.arjuna.ats.arjuna.state.InputObjectState;
import com.arjuna.ats.tools.objectstorebrowser.UidConverter;
import javax.transaction.xa.Xid;
@@ -37,99 +35,101 @@
*/
public class UidInfo
{
- private static DateFormat formatter = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss Z");
- private static UidConverter uidConverter;
+ private static DateFormat formatter = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss Z");
+ private static UidConverter uidConverter;
- public static void setUidConverter(UidConverter uidConverter)
- {
- UidInfo.uidConverter = uidConverter;
- }
+ public static void setUidConverter(UidConverter uidConverter)
+ {
+ UidInfo.uidConverter = uidConverter;
+ }
- private Uid uid;
- private String instanceName;
- private Long creationTime;
+ private Uid uid;
+ private String instanceName;
+ private HeaderInfo header;
- public UidInfo(Uid uid, String instanceName)
- {
- this.uid = uid;
- this.instanceName = instanceName;
- }
+ public UidInfo(Uid uid, String instanceName)
+ {
+ this.uid = uid;
+ this.instanceName = instanceName;
+ }
- public Uid getUid()
- {
- return uid;
- }
+ public Uid getUid()
+ {
+ return uid;
+ }
- public String getInstanceName()
- {
- return instanceName;
- }
+ public String getInstanceName()
+ {
+ return instanceName;
+ }
public long getCreationTime()
- {
- if (creationTime == null)
- creationTime = getCreationTime(uid);
+ {
+ return header != null ? header.birthDate : -1;
+ }
- return creationTime;
- }
+ public long getAge()
+ {
+ return (getCreationTime() < 0 ? -1 : (System.currentTimeMillis() / 1000) - getCreationTime());
+ }
- public long getAge()
- {
- return (getCreationTime() < 0 ? -1 : (System.currentTimeMillis() / 1000) - getCreationTime());
- }
+ // static utility methods
+ public static String formatTime(long seconds)
+ {
+ return seconds < 0 ? "" : formatter.format(new Date(seconds * 1000L));
+ }
- // static utility methods
- public static String formatTime(long seconds)
- {
- return seconds < 0 ? "" : formatter.format(new Date(seconds * 1000L));
- }
+ public static Uid toUid(Xid xid)
+ {
+ return uidConverter.toUid(xid);
+ }
- public static Uid toUid(Xid xid)
- {
- return uidConverter.toUid(xid);
- }
+ private static String inet4AddressToString(int ip)
+ {
+ StringBuffer sb = new StringBuffer(15);
- public static long getCreationTime(Xid xid)
- {
- return getCreationTime(toUid(xid));
- }
+ for (int shift=24; shift > 0; shift -= 8)
+ {
+ sb.append( Integer.toString((ip >>> shift) & 0xff)).append('.');
+ }
- public static long getCreationTime(Uid uid)
- {
- if (uid != null)
- {
- try
- {
- OutputBuffer outBuf = new OutputBuffer();
- InputBuffer inBuf;
+ return sb.append( Integer.toString(ip & 0xff)).toString();
+ }
- UidHelper.packInto(uid, outBuf);
- inBuf = new InputBuffer(outBuf.buffer());
+ public void setCommitted(InputObjectState os)
+ {
+ try {
+ header = new HeaderInfo(os);
+ } catch (IOException e) {
+ }
+ }
- //host = inet4AddressToString(inBuf.unpackInt());
- inBuf.unpackInt();
- inBuf.unpackInt(); // process
+ private class HeaderInfo
+ {
+ String state;
+ Uid txId = Uid.nullUid();
+ Uid processUid = Uid.nullUid();
+ long birthDate = -1;
- return inBuf.unpackInt();
-// int other = inBuf.unpackInt();
- }
- catch (IOException e)
- {
- }
- }
+ HeaderInfo(InputObjectState os) throws IOException {
+ unpackHeader(os);
+ }
- return -1;
- }
+ void unpackHeader(InputObjectState os) throws IOException {
+ if (os != null) {
+ state = os.unpackString();
+ byte[] txIdBytes = os.unpackBytes();
+ txId = new Uid(txIdBytes);
- private static String inet4AddressToString(int ip)
- {
- StringBuffer sb = new StringBuffer(15);
+ if (state.equals("#ARJUNA#")) {
+ if (!txId.equals(Uid.nullUid())) {
+ byte[] pUidBytes = os.unpackBytes();
+ processUid = new Uid(pUidBytes);
+ }
- for (int shift=24; shift > 0; shift -= 8)
- {
- sb.append( Integer.toString((ip >>> shift) & 0xff)).append('.');
- }
-
- return sb.append( Integer.toString(ip & 0xff)).toString();
- }
+ birthDate = os.unpackLong() / 1000L;
+ }
+ }
+ }
+ }
}
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/XAResourceListNode.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/XAResourceListNode.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/XAResourceListNode.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -23,13 +23,11 @@
import com.arjuna.ats.tools.objectstorebrowser.treenodes.ListNode;
import com.arjuna.ats.tools.objectstorebrowser.treenodes.ListNodeListener;
import com.arjuna.ats.tools.objectstorebrowser.treenodes.ListEntryNode;
-import com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.atomicaction.nodes.AtomicActionListNode;
import com.arjuna.ats.tools.objectstorebrowser.panels.ObjectStoreViewEntry;
import com.arjuna.ats.tools.objectstorebrowser.panels.StatePanel;
import com.arjuna.ats.tools.objectstorebrowser.frames.BrowserFrame;
import com.arjuna.ats.tools.toolsframework.iconpanel.IconSelectionListener;
import com.arjuna.ats.tools.toolsframework.iconpanel.IconPanelEntry;
-import com.arjuna.ats.arjuna.coordinator.RecordList;
import java.util.Collection;
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/XAResourceViewEntry.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/XAResourceViewEntry.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/XAResourceViewEntry.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -20,12 +20,10 @@
*/
package com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers;
-import com.arjuna.ats.tools.objectstorebrowser.panels.ListViewEntry;
import com.arjuna.ats.tools.objectstorebrowser.panels.StatePanel;
import com.arjuna.ats.tools.objectstorebrowser.treenodes.ObjectStoreBrowserNode;
import com.arjuna.ats.tools.objectstorebrowser.frames.BrowserFrame;
import com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.atomicaction.icons.AtomicTransactionViewEntry;
-import com.arjuna.ats.tools.toolsframework.iconpanel.IconSelectionListener;
import com.arjuna.ats.tools.toolsframework.iconpanel.IconPanelEntry;
import java.util.Collection;
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/AtomicActionViewer.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/AtomicActionViewer.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/AtomicActionViewer.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -37,7 +37,6 @@
import com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.atomicaction.icons.*;
import com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.TxInfoNode;
import com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.TxInfoViewEntry;
-import com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.ArjunaTransactionWrapper;
import com.arjuna.ats.tools.objectstorebrowser.panels.*;
import com.arjuna.ats.arjuna.objectstore.ObjectStore;
@@ -45,10 +44,8 @@
import com.arjuna.ats.arjuna.common.Uid;
import com.arjuna.ats.arjuna.coordinator.RecordList;
import com.arjuna.ats.arjuna.coordinator.BasicAction;
-import com.arjuna.ats.arjuna.ObjectType;
import javax.swing.tree.*;
-import javax.swing.*;
public class AtomicActionViewer implements StateViewerInterface
{
@@ -67,7 +64,7 @@
StatePanel infoPanel) throws ObjectStoreException
{
Uid theUid = uidNode.getUid();
- AtomicActionWrapper aaw = new AtomicActionWrapper(theUid);
+ AtomicActionWrapper aaw = new AtomicActionWrapper(os, type, theUid);
if (!activate(aaw))
infoPanel.reportStatus("Unable to activate " + theUid);
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/AtomicActionWrapper.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/AtomicActionWrapper.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/AtomicActionWrapper.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -22,6 +22,7 @@
import com.arjuna.ats.arjuna.coordinator.RecordList;
import com.arjuna.ats.arjuna.AtomicAction;
+import com.arjuna.ats.arjuna.objectstore.ObjectStore;
import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
import com.arjuna.ats.arjuna.common.Uid;
import com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.XAResourceInfo;
@@ -45,11 +46,30 @@
public class AtomicActionWrapper extends AtomicAction implements BasicActionInfo
{
- public AtomicActionWrapper(Uid objUid)
+ private UidInfo uidInfo;
+ private ObjectStore os;
+
+ public AtomicActionWrapper(ObjectStore os, String type, Uid objUid)
{
super(objUid);
+ this.os = os;
+ uidInfo = new UidInfo(get_uid(), getClass().getName() + "@" + Integer.toHexString(hashCode()));
+
+ try
+ {
+ uidInfo.setCommitted(os.read_committed(objUid, type));
+// uidInfo.setUncommitted(os.read_uncommitted(objUid, type));
+ }
+ catch (ObjectStoreException e)
+ {
+ }
}
+ public ObjectStore getStore()
+ {
+ return os;
+ }
+
public RecordList getFailedList()
{
return failedList;
@@ -77,7 +97,7 @@
public UidInfo getUidInfo()
{
- return new UidInfo(get_uid(), getClass().getName() + "@" + Integer.toHexString(hashCode()));
+ return uidInfo;
}
public int getTxTimeout()
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/icons/AtomicTransactionViewEntry.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/icons/AtomicTransactionViewEntry.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/icons/AtomicTransactionViewEntry.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -53,11 +53,11 @@
panel.clear();
panel.setType(getTypeName());
- panel.setInfo(list.size()+" entries");
+ panel.setInfo(list == null ? "0 entries" : list.size() + " entries");
updatePanelData(panel, ba);
- if (list.size() != 0)
+ if (list != null && list.size() != 0)
enableDetailsButton(panel, node);
panel.repaint();
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/treenodes/ListEntryNode.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/treenodes/ListEntryNode.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/treenodes/ListEntryNode.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -20,8 +20,6 @@
*/
package com.arjuna.ats.tools.objectstorebrowser.treenodes;
-import com.arjuna.ats.arjuna.coordinator.AbstractRecord;
-
/*
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
*
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/build.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/build.xml 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/build.xml 2009-11-19 20:27:56 UTC (rev 30253)
@@ -86,14 +86,16 @@
includes="com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/**/*.class"
excludes="com/arjuna/ats/tools/toolsframework/**"/>
<manifest>
- <section name="arjuna-tools-objectstorebrowser">
+ <section name="arjuna-tools-objectstorebrowser-jta">
<attribute name="plugin-classname-1" value="com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.atomicaction.AtomicActionViewer"/>
- <attribute name="plugin-classname-3" value="com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.arjunatransaction.ArjunaTransactionViewer"/>
+ <attribute name="plugin-classname-2" value="com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.abstractrecord.XAResourceRecordViewer"/>
+ <attribute name="plugin-classname-3" value="com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.abstractrecord.AbstractRecordViewer"/>
+ <attribute name="plugin-classname-4" value="com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.InFlightTransactionViewer"/>
+ </section>
+ <section name="arjuna-tools-objectstorebrowser-jts">
+ <attribute name="plugin-classname-1" value="com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.arjunatransaction.ArjunaTransactionViewer"/>
<attribute name="plugin-classname-2" value="com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.abstractrecord.ResourceRecordViewer"/>
- <attribute name="plugin-classname-4" value="com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.abstractrecord.XAResourceRecordViewer"/>
- <attribute name="plugin-classname-5" value="com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.abstractrecord.AbstractRecordViewer"/>
- <attribute name="plugin-classname-6" value="com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.abstractrecord.ExtendedResourceRecordViewer"/>
- <attribute name="plugin-classname-7" value="com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.InFlightTransactionViewer"/>
+ <attribute name="plugin-classname-3" value="com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.abstractrecord.ExtendedResourceRecordViewer"/>
</section>
</manifest>
</jar>
@@ -123,4 +125,4 @@
</target>
-</project>
\ No newline at end of file
+</project>
Modified: labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/ToolInitializer.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/ToolInitializer.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/ToolInitializer.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -14,16 +14,27 @@
public class ToolInitializer implements IToolInitializer
{
- static String JTS_TM = "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple";
+ static String JTS_TM_CLASSNAME_STANDALONE =
+ "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple";
+ static String JTS_TM_CLASSNAME_ATS =
+ "com.arjuna.ats.jbossatx.jts.TransactionManagerDelegate";
+ private boolean isJTS;
+
+ public boolean isJTS() {
+ return isJTS;
+ }
+
public void initialize(ToolPlugin plugin)
{
String tmClassName = jtaPropertyManager.getJTAEnvironmentBean().getJtaTMImplementation();
+ isJTS = (JTS_TM_CLASSNAME_STANDALONE.equals(tmClassName)
+ || JTS_TM_CLASSNAME_ATS.equals(tmClassName));
com.arjuna.ats.internal.jta.Implementations.initialise(); // needed for XAResourceRecord
/* test whether we are using the JTS */
- if (JTS_TM.equals(tmClassName))
+ if (isJTS)
{
try
{
Modified: labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/abstractrecord/AbstractRecordViewer.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/abstractrecord/AbstractRecordViewer.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/abstractrecord/AbstractRecordViewer.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -57,11 +57,10 @@
protected void updateTableData(AbstractRecord record, StatePanel statePanel)
{
- UidInfo uidInfo = new UidInfo(record.order(), record.getClass().getName() + "@" + Integer.toHexString(record.hashCode()));
+ // abstract records do not store their creation time so use the transaction creation date
+ statePanel.setData("Creation Time", UidInfo.formatTime(actionInfo.getUidInfo().getCreationTime()));
+ statePanel.setData("Age (seconds)", String.valueOf(actionInfo.getUidInfo().getAge()));
- statePanel.setData("Creation Time", UidInfo.formatTime(uidInfo.getCreationTime()));
- statePanel.setData("Age (seconds)", String.valueOf(uidInfo.getAge()));
-
statePanel.setData("Record Type", record.getClass().getName());
statePanel.setData("Type", record.type());
statePanel.setData("Uid", record.order().toString());
@@ -75,10 +74,10 @@
final ObjectStoreViewEntry entry,
final StatePanel statePanel) throws ObjectStoreException
{
+ initRecord(action, record, entry);
+
updateTableData(record, statePanel);
- initRecord(action, record, entry);
-
statePanel.enableButton(StatePanel.FORGET_BUTTON_TEXT, new ActionListener() {
public void actionPerformed(ActionEvent ae)
{
Modified: labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/ArjunaTransactionViewer.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/ArjunaTransactionViewer.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/ArjunaTransactionViewer.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -67,7 +67,7 @@
StatePanel infoPanel) throws ObjectStoreException
{
Uid theUid = uidNode.getUid();
- ArjunaTransactionWrapper ba = new ArjunaTransactionWrapper(theUid, type);
+ ArjunaTransactionWrapper ba = new ArjunaTransactionWrapper(os, type, theUid);
ListNode node;
SubTreeViewEntry entry;
Modified: labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/FailedListNode.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/FailedListNode.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/FailedListNode.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -44,6 +44,6 @@
public RecordList getList()
{
- return getAction().getFailedList();
+ return getAction().getFailedList() == null ? new RecordList() : getAction().getFailedList();
}
}
Modified: labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/HeuristicListNode.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/HeuristicListNode.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/HeuristicListNode.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -56,6 +56,6 @@
public RecordList getList()
{
- return getAction().getHeuristicList();
+ return getAction().getHeuristicList() == null ? new RecordList() : getAction().getHeuristicList();
}
}
Modified: labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/PendingListNode.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/PendingListNode.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/PendingListNode.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -44,6 +44,6 @@
public RecordList getList()
{
- return getAction().getPendingList();
+ return getAction().getPendingList() == null ? new RecordList() : getAction().getPendingList();
}
}
Modified: labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/PreparedListNode.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/PreparedListNode.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/PreparedListNode.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -44,6 +44,6 @@
public RecordList getList()
{
- return getAction().getPreparedList();
+ return getAction().getPreparedList() == null ? new RecordList() : getAction().getPreparedList();
}
}
Modified: labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/ReadOnlyListNode.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/ReadOnlyListNode.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/arjunatransaction/nodes/ReadOnlyListNode.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -44,6 +44,6 @@
public RecordList getList()
{
- return getAction().getReadOnlyList();
+ return getAction().getReadOnlyList() == null ? new RecordList() : getAction().getReadOnlyList();
}
}
Modified: labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/LiveAtomicActionWrapper.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/LiveAtomicActionWrapper.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/atomicaction/LiveAtomicActionWrapper.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -44,7 +44,7 @@
public LiveAtomicActionWrapper(Transaction delegate, Uid objUid, String type)
{
- super(objUid, type); //XXX
+ super(objUid, type);
uidInfo = new UidInfo(objUid, getClass().getName() + "@" + Integer.toHexString(hashCode()));
this.delegate = delegate;
}
Modified: labs/jbosstm/trunk/ArjunaJTS/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/abstractrecord/ExtendedResourceRecordViewer.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/abstractrecord/ExtendedResourceRecordViewer.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaJTS/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/abstractrecord/ExtendedResourceRecordViewer.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -29,6 +29,11 @@
public class ExtendedResourceRecordViewer extends ResourceRecordViewer //AbstractRecordViewer
{
+ public ExtendedResourceRecordViewer() throws Exception
+ {
+ super();
+ }
+
protected void updateTableData(AbstractRecord record, StatePanel statePanel)
{
super.updateTableData(record, statePanel);
Modified: labs/jbosstm/trunk/ArjunaJTS/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/abstractrecord/ResourceRecordViewer.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/abstractrecord/ResourceRecordViewer.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/ArjunaJTS/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/abstractrecord/ResourceRecordViewer.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -66,8 +66,9 @@
/**
* When this viewer is created we need to ensure that the ORB is initialised.
+ * @throws Exception e
*/
- public ResourceRecordViewer()
+ public ResourceRecordViewer() throws Exception
{
try
{
@@ -85,7 +86,7 @@
catch (Exception e)
{
/** The ORB has failed to initialise don't allow this plugin to be used **/
- _orb = null;
+ throw e;
}
}
Modified: labs/jbosstm/trunk/qa/tests/scripts/README.txt
===================================================================
--- labs/jbosstm/trunk/qa/tests/scripts/README.txt 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/qa/tests/scripts/README.txt 2009-11-19 20:27:56 UTC (rev 30253)
@@ -1,6 +1,8 @@
This directory contains ant build scripts for running TS tests with an AS under
the DTF framework.
+It is currently broken (wrong class loader)
+
To add new tests you may either add new targets to an existing script or write
a new script. For an example of how to run a target under DTF please refer to
the test selection jbossts-qa-as-crashrecovery01-testdefs.xml located in
@@ -10,8 +12,7 @@
standalone mode you will need define a security policy and override the ant
property product.dir (which controls where the tests will search for product
resources) as follows:
- export ANT_OPTS="-Djava.security.policy=../src/org/jboss/jbossts/qa/astests/resources/java.policy
--Dproduct.dir=../../build/"
+ export ANT_OPTS="-Djava.security.policy=../src/org/jboss/jbossts/qa/astests/resources/java.policy -Dproduct.dir=../../.."
If the target product directory does not contain a directory called 'as'
containing a JBOSS installation then the environment variable JBOSS_HOME will
Modified: labs/jbosstm/trunk/qa/tests/scripts/as-tests.xml
===================================================================
--- labs/jbosstm/trunk/qa/tests/scripts/as-tests.xml 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/qa/tests/scripts/as-tests.xml 2009-11-19 20:27:56 UTC (rev 30253)
@@ -5,31 +5,21 @@
<property environment="env"/>
<property name="jboss.home" value="${env.JBOSS_HOME}"/>
- <property name="jboss.server.config" value="default"/>
- <property name="product.dir" value="${env.DTF_HOME}/JBossTS-JTA-QA/"/>
+ <property name="xxproduct.dir" value="${env.DTF_HOME}/JBossTS-JTA-QA/"/>
+ <property name="product.dir" value="../../.."/>
+ <property name="astest.jar" value="qa/tests/build/astest.jar"/>
- <property name="jbossts.common.jar.dir" value="${product.dir}/lib/ext"/>
- <property name="astest.jar.dir" value="${product.dir}/qa/lib"/>
- <property name="astest.jar.deploy.dir" value="qa/lib/"/>
- <property name="jboss.server.manager.jar.dir" value="${product.dir}/qa/lib"/>
- <property name="jboss.server.manager.jar.name" value="jboss-server-manager-0.1.1.GA.jar"/>
-
<path id="astest.taskdef.classpath">
+ <pathelement location="${jboss.home}/client/jboss-remoting.jar"/>
<pathelement location="${jboss.home}/client/jbossall-client.jar"/>
<pathelement location="${jboss.home}/client/log4j.jar" />
<pathelement location="${jboss.home}/client/jboss-logging-spi.jar" />
<pathelement location="${jboss.home}/lib/trove.jar"/>
+ <pathelement location="."/>
- <pathelement location="${jbossts.common.jar.dir}/jbossts-common.jar"/>
- <pathelement location="${astest.jar.dir}/astest.jar"/>
- <pathelement location="${jboss.server.manager.jar.dir}/${jboss.server.manager.jar.name}"/>
-
- <!-- FIXME Does DTF need this fileset? If not it is needless. -->
- <fileset dir="${product.dir}">
- <include name="lib/*.jar"/>
- <include name="lib/ext/*.jar"/>
- <include name="qa/lib/*.jar"/>
- </fileset>
+ <fileset dir="${product.dir}/install/lib" includes="**/*" />
+ <fileset dir="${product.dir}/qa/tests/build" includes="**/*" />
+ <fileset dir="${product.dir}/qa/ext" includes="**/*" />
</path>
<property name="node0" value="localhost" />
@@ -41,7 +31,7 @@
standalone mode you will need define a security policy and override the ant
property product.dir (which controls where the tests will search for product
resources) as follows:${line.separator}
- export ANT_OPTS="-Djava.security.policy=../src/org/jboss/jbossts/qa/astests/resources/java.policy -Dproduct.dir=../../build/"
+ export ANT_OPTS="-Djava.security.policy=../src/org/jboss/jbossts/qa/astests/resources/java.policy -Dproduct.dir=../build/"
${line.separator}
If the target product directory does not contain a directory called 'as'
containing a JBOSS installation then the environment variable JBOSS_HOME will be used.
@@ -58,13 +48,27 @@
-->
<import file="imports/test-config.xml"/>
+ <target name="testhalt">
+ <astest:server method="deploy" serverName="jts" waitFor="10000">
+ <deploy from="${astest.jar}" to="deploy/astest.jar" />
+ </astest:server>
+ <astest:action abortOnFail="false" impl="org.jboss.jbossts.qa.astests.ASCrashRecovery01.Test03">
+ <param key="name" value="testhalt" />
+ <param key="specs" value="none,commit_halt" />
+ <param key="serverName" value="jts" />
+ </astest:action>
+ <astest:server method="undeploy" serverName="jts" >
+ <undeploy from="deploy/astest.jar" />
+ </astest:server>
+ </target>
+
<target name="test4">
<!--
start a server identified by the name default (specified in the imported config file)
and deploy one artifact
-->
<astest:server method="start" serverName="default" >
- <deploy from="${astest.jar.deploy.dir}astest.jar" to="deploy/astest.jar" />
+ <deploy from="${astest.jar}" to="deploy/astest.jar" />
</astest:server>
<!--
wait 10000 ms and then execute an action (TODO implement a method of detecting when the
@@ -85,7 +89,7 @@
<target name="test5">
<astest:server method="start" serverName="default" >
- <deploy from="${astest.jar.deploy.dir}astest.jar" to="deploy/astest.jar" />
+ <deploy from="${astest.jar}" to="deploy/astest.jar" />
</astest:server>
<astest:action waitFor="10000" impl="org.jboss.jbossts.qa.astests.ASCrashRecovery01.Test03">
<param key="name" value="test05" />
@@ -101,7 +105,7 @@
<target name="test6">
<astest:server method="start" serverName="default" >
- <deploy from="${astest.jar.deploy.dir}astest.jar" to="deploy/astest.jar" />
+ <deploy from="${astest.jar}" to="deploy/astest.jar" />
</astest:server>
<astest:action waitFor="10000" impl="org.jboss.jbossts.qa.astests.ASCrashRecovery01.Test03">
<param key="name" value="test06" />
@@ -127,7 +131,7 @@
-->
<target name="testjta">
<astest:server method="deploy" serverName="jta" waitFor="10000">
- <deploy from="${astest.jar.deploy.dir}astest.jar" to="deploy/astest.jar" />
+ <deploy from="${astest.jar}" to="deploy/astest.jar" />
</astest:server>
<parallel>
<astest:action abortOnFail="false" impl="org.jboss.jbossts.qa.astests.ASCrashRecovery01.Test03">
@@ -149,11 +153,16 @@
<target name="testjts">
<astest:server method="deploy" serverName="jts" waitFor="10000">
- <deploy from="${astest.jar.deploy.dir}astest.jar" to="deploy/astest.jar" />
+ <deploy from="${astest.jar}" to="deploy/astest.jar" />
</astest:server>
<parallel>
<astest:action abortOnFail="false" impl="org.jboss.jbossts.qa.astests.ASCrashRecovery01.Test03">
<param key="name" value="testjts" />
+ <param key="specs" value="none,commit_halt" />
+ <param key="serverName" value="jts" />
+ </astest:action>
+ <astest:action abortOnFail="false" impl="org.jboss.jbossts.qa.astests.ASCrashRecovery01.Test03">
+ <param key="name" value="testjts" />
<param key="specs" value="none,none,none,commit_ex,commit_ex" />
<param key="serverName" value="jts" />
</astest:action>
@@ -181,7 +190,7 @@
<target name="as-tests-jta">
<astest:server method="start" serverName="crashrecovery-jta" >
- <deploy from="${astest.jar.deploy.dir}astest.jar" to="deploy/astest.jar" />
+ <deploy from="${astest.jar}" to="deploy/astest.jar" />
</astest:server>
<parallel>
<astest:action abortOnFail="false" impl="org.jboss.jbossts.qa.astests.ASCrashRecovery01.Test03">
@@ -203,7 +212,7 @@
<target name="as-tests-jts">
<astest:server method="start" serverName="crashrecovery-jts" >
- <deploy from="${astest.jar.deploy.dir}astest.jar" to="deploy/astest.jar" />
+ <deploy from="${astest.jar}" to="deploy/astest.jar" />
</astest:server>
<parallel>
<astest:action abortOnFail="false" impl="org.jboss.jbossts.qa.astests.ASCrashRecovery01.Test03">
Modified: labs/jbosstm/trunk/qa/tests/scripts/imports/test-config.xml
===================================================================
--- labs/jbosstm/trunk/qa/tests/scripts/imports/test-config.xml 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/qa/tests/scripts/imports/test-config.xml 2009-11-19 20:27:56 UTC (rev 30253)
@@ -1,5 +1,11 @@
<project name="as-tests-server-config" default="help"
xmlns:astest="http://jboss.org/ns/test/ant/astest">
+<!--
+ <taskdef name="astest:loader" classname="org.jboss.jbossts.qa.astests.taskdefs.ASTestClassLoader"/>
+ <astest:loader ref="astest.loader">
+ <classpath refid="astest.taskdef.classpath"/>
+ </astest:loader>
+ -->
<taskdef name="config" classname="org.jboss.jbossts.qa.astests.taskdefs.ASTestConfig"
uri="http://jboss.org/ns/test/ant/astest" loaderref="astest.loader">
@@ -11,6 +17,7 @@
-->
<taskdef name="server" classname="org.jboss.jbossts.qa.astests.taskdefs.ServerTask"
uri="http://jboss.org/ns/test/ant/astest" loaderref="astest.loader">
+ <classpath refid="astest.taskdef.classpath"/>
</taskdef>
<!--
@@ -19,6 +26,7 @@
-->
<taskdef name="action" classname="org.jboss.jbossts.qa.astests.taskdefs.ASClientTask"
uri="http://jboss.org/ns/test/ant/astest" loaderref="astest.loader">
+ <classpath refid="astest.taskdef.classpath"/>
</taskdef>
<!--
@@ -26,6 +34,7 @@
-->
<typedef name="spec" classname="org.jboss.jbossts.qa.astests.recovery.ASFailureSpec"
uri="http://jboss.org/ns/test/ant/astest" loaderref="astest.loader">
+ <classpath refid="astest.taskdef.classpath"/>
</typedef>
<!--
Modified: labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/astests/ASCrashRecovery01/Test03.java
===================================================================
--- labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/astests/ASCrashRecovery01/Test03.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/astests/ASCrashRecovery01/Test03.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -38,294 +38,295 @@
public class Test03 implements ClientAction
{
- // the longest time to wait in millis before declaring a test a failed (overridable)
- private static final int MAX_TEST_TIME = 180000;
+ // the longest time to wait in millis before declaring a test a failed (overridable)
+ private static final int MAX_TEST_TIME = 180000;
- private ASTestConfig config;
- private boolean isCMT = false;
- private boolean clientTx = false;
- private boolean isDebug = false;
- private boolean expectFailure = false;
- private int maxTestTime = MAX_TEST_TIME;
+ private ASTestConfig config;
+ private boolean isCMT = false;
+ private boolean clientTx = false;
+ private boolean isDebug = false;
+ private boolean expectFailure = false;
+ private int maxTestTime = MAX_TEST_TIME;
- private String storeDir = null;
- private String storeImple = "HashedActionStore";
- private String storeType = null; //"StateManager/BasicAction/TwoPhaseCoordinator/AtomicAction";
- private TransactionLog store;
- private int existingUids;
+ private String storeDir = null;
+// private String storeImple = "HashedActionStore";
+ private String storeImple = "com.arjuna.ats.internal.arjuna.objectstore.HashedActionStore";
+ private String storeType = null; //"StateManager/BasicAction/TwoPhaseCoordinator/AtomicAction";
+ private TransactionLog store;
+ private int existingUids;
- private String name = "Test";
- private String serverName = "default";
+ private String name = "Test";
+ private String serverName = "default";
- public boolean execute(ASTestConfig config, Map<String, String> params)
- {
- StringBuilder sb = new StringBuilder();
- ASFailureSpec[] fspecs = null;
+ public boolean execute(ASTestConfig config, Map<String, String> params)
+ {
+ StringBuilder sb = new StringBuilder();
+ ASFailureSpec[] fspecs = null;
- this.config = config;
+ this.config = config;
- for (Map.Entry<String, String> me : params.entrySet())
- {
- String key = me.getKey().trim();
- String val = me.getValue().trim();
+ for (Map.Entry<String, String> me : params.entrySet())
+ {
+ String key = me.getKey().trim();
+ String val = me.getValue().trim();
- if ("name".equals(key))
- name = val;
- else if ("cmt".equals(key))
- isCMT = val.equalsIgnoreCase("true");
- else if ("debug".equals(key))
- isDebug = val.equalsIgnoreCase("true");
- else if ("serverName".equals(key))
- serverName = val;
- else if ("storeType".equals(key))
- storeType = val;
- else if ("storeDir".equals(key))
- storeDir = val;
- else if ("clientTx".equals(key))
- clientTx = val.equalsIgnoreCase("true");
- else if ("storeImple".equals(key))
- storeImple = val;
- else if ("testTime".equals(key))
- maxTestTime = parseInt(val, "parameter testTime should represent a number of seconds: ");
- else if ("specs".equals(key))
- fspecs = parseSpecs(val, sb);
- else if ("wait".equals(key))
- suspendFor(Integer.parseInt(val));
- }
+ if ("name".equals(key))
+ name = val;
+ else if ("cmt".equals(key))
+ isCMT = val.equalsIgnoreCase("true");
+ else if ("debug".equals(key))
+ isDebug = val.equalsIgnoreCase("true");
+ else if ("serverName".equals(key))
+ serverName = val;
+ else if ("storeType".equals(key))
+ storeType = val;
+ else if ("storeDir".equals(key))
+ storeDir = val;
+ else if ("clientTx".equals(key))
+ clientTx = val.equalsIgnoreCase("true");
+ else if ("storeImple".equals(key))
+ storeImple = val;
+ else if ("testTime".equals(key))
+ maxTestTime = parseInt(val, "parameter testTime should represent a number of seconds: ");
+ else if ("specs".equals(key))
+ fspecs = parseSpecs(val, sb);
+ else if ("wait".equals(key))
+ suspendFor(Integer.parseInt(val));
+ }
- sb.insert(0, ":\n").insert(0, name).insert(0, "Executing test ");
+ sb.insert(0, ":\n").insert(0, name).insert(0, "Executing test ");
- System.out.println(sb);
+ System.out.println(sb);
- ClassLoader loader1 = Thread.currentThread().getContextClassLoader();
- ClassLoader loader2 = this.getClass().getClassLoader();
+ ClassLoader loader1 = Thread.currentThread().getContextClassLoader();
+ ClassLoader loader2 = this.getClass().getClassLoader();
- try
- {
- String serverPath = config.getServerPath(serverName);
+ try
+ {
+ String serverPath = config.getServerPath(serverName);
- // switch class loaders since a custom ant task runs with a different loader from the loader
- // that loader that loaded the class
- Thread.currentThread().setContextClassLoader(loader2);
+ // switch class loaders since a custom ant task runs with a different loader from the loader
+ // that loader that loaded the class
+// Thread.currentThread().setContextClassLoader(loader2);
- // get a handle to the transaction logs
- if (storeDir == null)
- storeDir = serverPath + "data/tx-object-store";
- else
- storeDir = serverPath + storeDir;
+ // get a handle to the transaction logs
+ if (storeDir == null)
+ storeDir = serverPath + "data/tx-object-store";
+ else
+ storeDir = serverPath + storeDir;
- store = new TransactionLog(storeDir, storeImple);
+ store = new TransactionLog(storeDir, storeImple);
- if (expectFailure)
- {
- // this test may halt the VM so make sure the transaction log is empty
- // before starting the test - then the pass/fail check is simply to
- // test whether or not the log is empty (see recoverUids() below).
- try
- {
- store.clearXids(storeType);
- }
- catch (Exception ignore)
- {
- }
+ if (expectFailure)
+ {
+ // this test may halt the VM so make sure the transaction log is empty
+ // before starting the test - then the pass/fail check is simply to
+ // test whether or not the log is empty (see recoverUids() below).
+ try
+ {
+ store.clearXids(storeType);
+ }
+ catch (Exception ignore)
+ {
+ }
- existingUids = getPendingUids();
- }
+ existingUids = getPendingUids();
+ }
- // run the crash test
- return crashTest(fspecs);
- }
- catch (Exception e)
- {
- if (isDebug)
- e.printStackTrace();
+ // run the crash test
+ return crashTest(fspecs);
+ }
+ catch (Exception e)
+ {
+ if (isDebug)
+ e.printStackTrace();
- throw new BuildException(e);
- }
- finally
- {
- Thread.currentThread().setContextClassLoader(loader1);
- }
- }
+ throw new BuildException(e);
+ }
+ finally
+ {
+// Thread.currentThread().setContextClassLoader(loader1);
+ }
+ }
- public boolean cancel() throws UnsupportedOperationException
- {
- throw new UnsupportedOperationException("TODO");
- }
+ public boolean cancel() throws UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException("TODO");
+ }
- private ASFailureSpec[] parseSpecs(String specArg, StringBuilder sb)
- {
- ASFailureSpec[] fspecs = config.parseSpecs(specArg);
+ private ASFailureSpec[] parseSpecs(String specArg, StringBuilder sb)
+ {
+ ASFailureSpec[] fspecs = config.parseSpecs(specArg);
- for (ASFailureSpec spec : fspecs)
- {
- String name = (spec == null ? "INVALID" : spec.getName());
+ for (ASFailureSpec spec : fspecs)
+ {
+ String name = (spec == null ? "INVALID" : spec.getName());
- if (spec != null && spec.willTerminateVM())
- expectFailure = true;
+ if (spec != null && spec.willTerminateVM())
+ expectFailure = true;
- sb.append("\t").append(name).append('\n');
- }
+ sb.append("\t").append(name).append('\n');
+ }
- return fspecs;
- }
+ return fspecs;
+ }
- private int parseInt(String intValue, String errorMessage) throws IllegalArgumentException
- {
- try
- {
- return Integer.parseInt(intValue);
- }
- catch (NumberFormatException e)
- {
- System.out.println(errorMessage + e.getMessage());
+ private int parseInt(String intValue, String errorMessage) throws IllegalArgumentException
+ {
+ try
+ {
+ return Integer.parseInt(intValue);
+ }
+ catch (NumberFormatException e)
+ {
+ System.out.println(errorMessage + e.getMessage());
- throw new IllegalArgumentException(e);
- }
- }
+ throw new IllegalArgumentException(e);
+ }
+ }
- // count how many pending transaction branches there are in the transaction log
- private int getPendingUids()
- {
- try
- {
- return store.getIds(storeType).size();
- }
- catch (Exception e)
- {
- e.printStackTrace();
+ // count how many pending transaction branches there are in the transaction log
+ private int getPendingUids()
+ {
+ try
+ {
+ return store.getIds(storeType).size();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
- return -1;
- }
- }
+ return -1;
+ }
+ }
- private CrashRem lookup(String name) throws Exception
- {
- Object o = config.getNamingContext(serverName).lookup(name);
- CrashRemHome home = (CrashRemHome) PortableRemoteObject.narrow(o, CrashRemHome.class);
+ private CrashRem lookup(String name) throws Exception
+ {
+ Object o = config.getNamingContext(serverName).lookup(name);
+ CrashRemHome home = (CrashRemHome) PortableRemoteObject.narrow(o, CrashRemHome.class);
- return home.create();
- }
+ return home.create();
+ }
- private UserTransaction startTx() throws NamingException, SystemException, NotSupportedException
- {
- UserTransaction tx = (UserTransaction) config.getNamingContext(serverName).lookup("UserTransaction");
+ private UserTransaction startTx() throws NamingException, SystemException, NotSupportedException
+ {
+ UserTransaction tx = (UserTransaction) config.getNamingContext(serverName).lookup("UserTransaction");
- tx.begin();
+ tx.begin();
- return tx;
- }
+ return tx;
+ }
- private boolean crashTest(ASFailureSpec[] sa) throws Exception
- {
- UserTransaction tx = null;
+ private boolean crashTest(ASFailureSpec[] sa) throws Exception
+ {
+ UserTransaction tx = null;
- try
- {
- CrashRem cr = lookup(isCMT ? CrashRem.CMT_JNDI_NAME : CrashRem.BMT_JNDI_NAME);
+ try
+ {
+ CrashRem cr = lookup(isCMT ? CrashRem.CMT_JNDI_NAME : CrashRem.BMT_JNDI_NAME);
- if (clientTx)
- tx = startTx();
+ if (clientTx)
+ tx = startTx();
- String res = cr.testXA(sa);
+ String res = cr.testXA(sa);
- return "Passed".equalsIgnoreCase(res);
- }
- catch (CannotConnectException e)
- {
- if (expectFailure)
- {
- print("Failure was expected: " + e.getMessage());
+ return "Passed".equalsIgnoreCase(res);
+ }
+ catch (CannotConnectException e)
+ {
+ if (expectFailure)
+ {
+ print("Failure was expected: " + e.getMessage());
- return recoverUids();
- }
- else
- {
- System.err.println("XACrashTest:crashTest: Caught " + e);
+ return recoverUids();
+ }
+ else
+ {
+ System.err.println("XACrashTest:crashTest: Caught " + e);
- e.printStackTrace();
- }
- }
- catch (Throwable t)
- {
- t.printStackTrace();
- System.err.println("XACrashTest:crashTest: Caught " + t);
- }
- finally {
- if (clientTx)
- try
- {
- tx.commit();
- }
- catch (Throwable e)
- {
- System.out.println("User tx commit failure: " + e.getMessage());
- }
- }
+ e.printStackTrace();
+ }
+ }
+ catch (Throwable t)
+ {
+ t.printStackTrace();
+ System.err.println("XACrashTest:crashTest: Caught " + t);
+ }
+ finally {
+ if (clientTx)
+ try
+ {
+ tx.commit();
+ }
+ catch (Throwable e)
+ {
+ System.out.println("User tx commit failure: " + e.getMessage());
+ }
+ }
- return false;
- }
+ return false;
+ }
- /**
- * Wait for any pending transactions to recover by restaring the AS.
- * @return true if all pending branches have been recovered
- * @throws IOException if the server cannot be started
- */
- private boolean recoverUids() throws IOException
- {
- int retryPeriod = 30000;
- int maxWait = maxTestTime;
- int pendingUids;
+ /**
+ * Wait for any pending transactions to recover by restaring the AS.
+ * @return true if all pending branches have been recovered
+ * @throws IOException if the server cannot be started
+ */
+ private boolean recoverUids() throws IOException
+ {
+ int retryPeriod = 30000;
+ int maxWait = maxTestTime;
+ int pendingUids;
- do
- {
- pendingUids = getPendingUids();
+ do
+ {
+ pendingUids = getPendingUids();
- if (pendingUids == -1)
- return false; // object store error
+ if (pendingUids == -1)
+ return false; // object store error
- if (pendingUids <= existingUids)
- return true; // all uids recovered
+ if (pendingUids <= existingUids)
+ return true; // all uids recovered
- pendingUids -= existingUids;
+ pendingUids -= existingUids;
- print("waiting for " + pendingUids + " branches");
+ print("waiting for " + pendingUids + " branches");
- // wait for the server to start up the first time through
- if (maxWait == maxTestTime)
- config.startServer(serverName);
+ // wait for the server to start up the first time through
+ if (maxWait == maxTestTime)
+ config.startServer(serverName);
- suspendFor(retryPeriod);
- maxWait -= retryPeriod;
- } while (maxWait > 0);
+ suspendFor(retryPeriod);
+ maxWait -= retryPeriod;
+ } while (maxWait > 0);
- // the test failed to recover some uids - clear them out ready for the next test
- try
- {
- store.clearXids(storeType);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
+ // the test failed to recover some uids - clear them out ready for the next test
+ try
+ {
+ store.clearXids(storeType);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
- return false;
- }
+ return false;
+ }
- private void suspendFor(int millis)
- {
- try
- {
- Thread.sleep(millis);
- }
- catch (InterruptedException e)
- {
- System.out.println("Test " + name + " interupted");
- }
- }
+ private void suspendFor(int millis)
+ {
+ try
+ {
+ Thread.sleep(millis);
+ }
+ catch (InterruptedException e)
+ {
+ System.out.println("Test " + name + " interupted");
+ }
+ }
- static void print(String msg)
- {
- System.out.println(msg);
- }
+ static void print(String msg)
+ {
+ System.out.println(msg);
+ }
}
Modified: labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/astests/taskdefs/TransactionLog.java
===================================================================
--- labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/astests/taskdefs/TransactionLog.java 2009-11-19 13:59:04 UTC (rev 30252)
+++ labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/astests/taskdefs/TransactionLog.java 2009-11-19 20:27:56 UTC (rev 30253)
@@ -20,6 +20,7 @@
*/
package org.jboss.jbossts.qa.astests.taskdefs;
+import com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean;
import com.arjuna.ats.arjuna.objectstore.ObjectStore;
import com.arjuna.ats.arjuna.common.Uid;
import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
@@ -27,6 +28,7 @@
import com.arjuna.ats.arjuna.AtomicAction;
import com.arjuna.ats.arjuna.coordinator.TxControl;
import com.arjuna.ats.internal.arjuna.common.UidHelper;
+import com.arjuna.ats.arjuna.common.arjPropertyManager;
import java.util.ArrayList;
import java.util.Collection;
@@ -50,7 +52,8 @@
private void init(String storeDir, String impleType)
{
- System.setProperty("com.arjuna.ats.arjuna.objectstore.objectStoreDir", storeDir);
+ ObjectStoreEnvironmentBean objectStoreEnvironmentBean = arjPropertyManager.getObjectStoreEnvironmentBean();
+ objectStoreEnvironmentBean.setObjectStoreDir(storeDir);
if (impleType != null)
{
More information about the jboss-svn-commits
mailing list