User: user57
Date: 02/02/12 20:26:38
Modified: src/main/org/jboss/mq/pm/rollinglogged
PersistenceManager.java
PersistenceManagerMBean.java
Log:
o These are all kinda related, so I am commiting them together
o This is the second half of the migration to using ObjectName OBJECT_NAME
o Not using jboss.system.* properties anywhere (one place in testsuite
which I am ignoring for now)
o StateManager will now read its config from a url (configURL), and only
attempt to write it back out if that is a file URL. Need to fix this
to not need to write back to a config file.
o Still setting jboss.home & jboss.system.home, but use ServerConfigMBean
to get the proper bits, will eventually abstract all file access out
o Added a simple locator to find a mbean server. This is trivial code,
but helps clean up client code and makes it obvious what it does.
Revision Changes Path
1.17 +34 -43
jbossmq/src/main/org/jboss/mq/pm/rollinglogged/PersistenceManager.java
Index: PersistenceManager.java
===================================================================
RCS file:
/cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/rollinglogged/PersistenceManager.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- PersistenceManager.java 3 Jan 2002 04:00:54 -0000 1.16
+++ PersistenceManager.java 13 Feb 2002 04:26:38 -0000 1.17
@@ -4,9 +4,8 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package org.jboss.mq.pm.rollinglogged;
-
+package org.jboss.mq.pm.rollinglogged;
import java.io.File;
import java.net.URL;
@@ -33,17 +32,19 @@
import org.jboss.system.ServiceMBeanSupport;
import org.jboss.mq.server.MessageReference;
import org.jboss.mq.server.MessageCache;
+import org.jboss.system.ServerConfigMBean;
/**
* This class manages all persistence related services.
*
* @author David Maplesden ([EMAIL PROTECTED])
* @author <a href="mailto:[EMAIL PROTECTED]">David Jencks</a>
- * @version $Revision: 1.16 $
+ * @version $Revision: 1.17 $
*/
-public class PersistenceManager extends ServiceMBeanSupport implements
org.jboss.mq.pm.PersistenceManager, PersistenceManagerMBean
+public class PersistenceManager
+ extends ServiceMBeanSupport
+ implements org.jboss.mq.pm.PersistenceManager, PersistenceManagerMBean
{
-
public final static int ROLL_OVER_SIZE = 1000;
public final static String TRANS_FILE_NAME = "transactions.dat";
public final static boolean DEBUG = false;
@@ -69,7 +70,7 @@
HashMap transToTxLogs = new HashMap();
// The directory where persistence data should be stored
- File dataDirFile;
+ File dataDir;
TxManager txManager;
private String dataDirectory;
@@ -134,16 +135,6 @@
/**
- * Gets the Name attribute of the PersistenceManager object
- *
- * @return The Name value
- */
- public String getName()
- {
- return "JBossMQ-PersistenceManager";
- }
-
- /**
* getTxManager method comment.
*
* @return The TxManager value
@@ -198,7 +189,7 @@
{
try
{
- SpyMessageLog log = new SpyMessageLog(new File(dataDirFile,
destName + ".dat" + numRollOvers));
+ SpyMessageLog log = new SpyMessageLog(new File(dataDir, destName
+ ".dat" + numRollOvers));
logInfo = new LogInfo(log, dest, currentTxLog);
logs.put(destName, logInfo);
}
@@ -286,33 +277,33 @@
}
-
/**
- * Describe <code>startService</code> method here.
- *
- * @exception Exception if an error occurs
+ * Setup the data directory, where messages will be stored, connects
+ * to the message cache and restores transactions.
*/
public void startService() throws Exception
{
log.debug("Using new rolling logged persistence manager.");
- log.warn("using jboss.system.home property");
- File jbossHome = new File(System.getProperty("jboss.system.home"));
- dataDirFile = new File(jbossHome, dataDirectory);
- dataDirFile.mkdirs();
- if( !dataDirFile.isDirectory() )
- throw new Exception("The data directory is not valid:
"+dataDirFile.getCanonicalPath());
-
- messageCache = (MessageCache)getServer().invoke(messageCacheName,
"getInstance", new Object[] {}, new String[] {});
+ // Get the system home directory (may want to use dataDir)
+ File systemHomeDir = (File)
+ server.getAttribute(ServerConfigMBean.OBJECT_NAME, "HomeDir");
+
+ dataDir = new File(systemHomeDir, dataDirectory);
+ if (log.isDebugEnabled()) {
+ log.debug("Using data directory: " + dataDir);
+ }
+
+ dataDir.mkdirs();
+ if (!dataDir.isDirectory())
+ throw new Exception("The data directory is not valid: " +
dataDir.getCanonicalPath());
+
+ messageCache = (MessageCache)
+ getServer().invoke(messageCacheName,
+ "getInstance",
+ new Object[0], new String[0]);
- //read the transaction logs so we can read the queues as they come online.
restoreTransactions();
- /*
- JMSServer server = (JMSServer)getServer().invoke(new
ObjectName(org.jboss.mq.server.JBossMQServiceMBean.OBJECT_NAME), "getJMSServer", new
Object[]{
- }, new String[]{
- });
- restore(server);
-*/
}
/**
@@ -481,7 +472,7 @@
{
TreeSet committedTxs = new TreeSet();
HashMap txLogs = new HashMap();
- java.io.File dir = dataDirFile;
+ java.io.File dir = dataDir;
java.io.File[] dataFiles = dir.listFiles();
for (int i = 0; i < dataFiles.length; ++i)
@@ -644,7 +635,7 @@
TreeSet committedTxs = new TreeSet();
HashMap txLogs = new HashMap();
- java.io.File dir = dataDirFile;
+ java.io.File dir = dataDir;
java.io.File[] dataFiles = dir.listFiles();
for (int i = 0; i < dataFiles.length; ++i)
@@ -731,7 +722,7 @@
try
{
- File txLogFile = new File(dataDirFile, TRANS_FILE_NAME + numRollOvers);
+ File txLogFile = new File(dataDir, TRANS_FILE_NAME + numRollOvers);
currentTxLog = new SpyTxLog(txLogFile);
messageLogs.put(currentTxLog, new HashMap());
@@ -739,7 +730,7 @@
{
SpyDestination dest = (SpyDestination)it.next();
String key = "" + dest;
- File logFile = new File(dataDirFile, dest.toString() + ".dat" +
numRollOvers);
+ File logFile = new File(dataDir, dest.toString() + ".dat" +
numRollOvers);
SpyMessageLog log = new SpyMessageLog(logFile);
synchronized (messageLogs)
@@ -869,13 +860,13 @@
{
HashMap logs = new HashMap();
++numRollOvers;
- SpyTxLog newTxLog = new SpyTxLog(new File(dataDirFile, TRANS_FILE_NAME +
numRollOvers));
+ SpyTxLog newTxLog = new SpyTxLog(new File(dataDir, TRANS_FILE_NAME +
numRollOvers));
for (Iterator it = queues.values().iterator(); it.hasNext(); )
{
SpyDestination spyDest = (SpyDestination)it.next();
//String destName = spyDest.toString();
- // SpyMessageLog log = new SpyMessageLog(new File(dataDirFile, destName
+ ".dat" + numRollOvers));
+ // SpyMessageLog log = new SpyMessageLog(new File(dataDir, destName +
".dat" + numRollOvers));
//LogInfo logInfo = new LogInfo(log, dest, newTxLog);
logs.put(spyDest.toString(), newQueueInfo(spyDest, newTxLog));
}
@@ -900,7 +891,7 @@
try
{
String destName = spyDest.toString();
- SpyMessageLog log = new SpyMessageLog(messageCache, new File(dataDirFile,
destName + ".dat" + numRollOvers));
+ SpyMessageLog log = new SpyMessageLog(messageCache, new File(dataDir,
destName + ".dat" + numRollOvers));
return new LogInfo(log, spyDest, txLog);
}
catch (Exception e)
1.6 +7 -9
jbossmq/src/main/org/jboss/mq/pm/rollinglogged/PersistenceManagerMBean.java
Index: PersistenceManagerMBean.java
===================================================================
RCS file:
/cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/rollinglogged/PersistenceManagerMBean.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- PersistenceManagerMBean.java 10 Nov 2001 21:38:05 -0000 1.5
+++ PersistenceManagerMBean.java 13 Feb 2002 04:26:38 -0000 1.6
@@ -4,34 +4,32 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
+
package org.jboss.mq.pm.rollinglogged;
-import javax.management.ObjectName;
import org.jboss.system.ServiceMBean;
/**
- * <description>MBean interface for the JBossMQ JMX service.
+ * MBean interface for the JBossMQ JMX service.
*
* @author Vincent Sheffer ([EMAIL PROTECTED])
- * @see <related>
- * @version $Revision: 1.5 $
+ * @version $Revision: 1.6 $
*/
public interface PersistenceManagerMBean
extends ServiceMBean, org.jboss.mq.pm.PersistenceManagerMBean
{
-
/**
- * Gets the DataDirectory attribute of the PersistenceManagerMBean object
+ * Gets the DataDirectory attribute of the PersistenceManagerMBean object
*
* @return The DataDirectory value
*/
- public java.lang.String getDataDirectory();
+ String getDataDirectory();
/**
- * Sets the DataDirectory attribute of the PersistenceManagerMBean object
+ * Sets the DataDirectory attribute of the PersistenceManagerMBean object
*
* @param newDataDirectory The new DataDirectory value
*/
- public void setDataDirectory(java.lang.String newDataDirectory);
+ void setDataDirectory(String newDataDirectory);
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development