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