You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2010/11/05 16:41:32 UTC
svn commit: r1031632 -
/activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/ConfigStore.scala
Author: chirino
Date: Fri Nov 5 15:41:32 2010
New Revision: 1031632
URL: http://svn.apache.org/viewvc?rev=1031632&view=rev
Log:
load changes to the config file made between restarts.
Modified:
activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/ConfigStore.scala
Modified: activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/ConfigStore.scala
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/ConfigStore.scala?rev=1031632&r1=1031631&r2=1031632&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/ConfigStore.scala (original)
+++ activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/ConfigStore.scala Fri Nov 5 15:41:32 2010
@@ -89,7 +89,6 @@ class FileConfigStore extends ConfigStor
var file:File = new File("activemq.xml")
@volatile
var latest:StoredBrokerModel = null
- var readOnly = false
val dispatchQueue = createQueue("config store")
@@ -131,23 +130,23 @@ class FileConfigStore extends ConfigStor
revs = revs.sortWith((x,y)=> x < y)
val last = revs.lastOption.map{ rev=>
- read(rev, fileRev(rev))
- } match {
- case None =>
- if( !file.exists ) {
- if( readOnly ) {
- throw new Exception("file does not exsit: "+file)
- } else {
- write(StoredBrokerModel(defaultConfig(1)))
- }
+ val r = read(rev, fileRev(rev))
+ if( !file.exists ) {
+ write(r)
+ } else {
+ val x = read(rev, file)
+ if ( !Arrays.equals(r.data, x.data) ) {
+ write(StoredBrokerModel(x.id, x.rev+1, x.data, x.lastModified))
} else {
- if( readOnly ) {
- read(1, file)
- } else {
- write(read(1, file))
- }
+ x
}
- case Some(x)=> x
+ }
+ } getOrElse {
+ if( file.exists ) {
+ write(read(1, file))
+ } else {
+ write(StoredBrokerModel(defaultConfig(1)))
+ }
}
dispatchQueue {