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/07/07 05:56:10 UTC
svn commit: r961101 - in /activemq/sandbox/activemq-apollo-actor: ./
activemq-broker/ activemq-broker/src/main/resources/
activemq-broker/src/main/resources/META-INF/services/org/apache/activemq/apollo/broker/
activemq-broker/src/main/scala/org/apache/...
Author: chirino
Date: Wed Jul 7 03:56:09 2010
New Revision: 961101
URL: http://svn.apache.org/viewvc?rev=961101&view=rev
Log:
refactored the jaxb beans to be pure DTOs. This way they can reused by clients, broker config stuff, web app bits etc. also added in json serialization support.
Added:
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/resources/META-INF/services/org/apache/activemq/apollo/broker/xml
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/META-INF/services/org/apache/activemq/apollo/broker/jaxb
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/resources/non-persistent-activemq.xml
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/non-persistent-activemq.xml
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/resources/persistent-activemq.xml
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/persistent-activemq.xml
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/jaxb/
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/jaxb/PropertiesReader.java
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/PropertiesReader.java
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/jaxb/XmlBrokerFactory.scala
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/XmlBrokerFactory.scala
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/FunSuiteSupport.scala
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/FunSuiteSupport.scala
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/XMLBrokerFactoryTest.scala
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/testSimpleConfig.xml
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/resources/org/apache/activemq/apollo/jaxb/testSimpleConfig.xml
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/testUris.xml
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/resources/org/apache/activemq/apollo/jaxb/testUris.xml
activemq/sandbox/activemq-apollo-actor/activemq-dto/
activemq/sandbox/activemq-apollo-actor/activemq-dto/pom.xml
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/pom.xml
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/resources/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/resources/org/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/resources/org/apache/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/resources/org/apache/activemq/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/resources/org/apache/activemq/apollo/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/resources/org/apache/activemq/apollo/dto/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/resources/org/apache/activemq/apollo/dto/jaxb.index
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/org/apache/activemq/apollo/jaxb/jaxb.index
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/BrokerDTO.java
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/BrokerConfig.java
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/ConnectorDTO.java
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/VirtualHostConfig.java
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/HawtDBStoreDTO.java
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/KahaDBStoreConfig.java
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/MemoryStoreDTO.java
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/MemoryStoreConfig.java
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/StoreDTO.java
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/StoreXml.java
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/VirtualHostDTO.java
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/VirtualHostConfig.java
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/package-info.java
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/package-info.java
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/ide-resources/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/ide-resources/log4j.properties
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/ide-resources/log4j.properties
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/resources/
activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/resources/log4j.properties
- copied, changed from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/resources/log4j.properties
Removed:
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/FunSuiteSupport.scala
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/pom.xml
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/META-INF/services/org/apache/activemq/apollo/broker/jaxb
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/non-persistent-activemq.xml
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/org/apache/activemq/apollo/jaxb/jaxb.index
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/persistent-activemq.xml
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/AsciiBufferAdapter.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/BrokerConfig.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/KahaDBStoreConfig.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/MemoryStoreConfig.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/PropertiesReader.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/StoreXml.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/VirtualHostConfig.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/XmlBrokerFactory.scala
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/package-info.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/ide-resources/log4j.properties
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/resources/log4j.properties
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/resources/org/apache/activemq/apollo/jaxb/testSimpleConfig.xml
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/resources/org/apache/activemq/apollo/jaxb/testUris.xml
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/scala/org/apache/activemq/apollo/jaxb/JAXBConfigTest.java
Modified:
activemq/sandbox/activemq-apollo-actor/activemq-broker/pom.xml
activemq/sandbox/activemq-apollo-actor/activemq-stomp/pom.xml
activemq/sandbox/activemq-apollo-actor/activemq-web/pom.xml
activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/ConfigStore.scala
activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/Root.scala
activemq/sandbox/activemq-apollo-actor/activemq-web/src/test/scala/org/apache/activemq/apollo/FileConfigStoreTest.scala
activemq/sandbox/activemq-apollo-actor/pom.xml
Modified: activemq/sandbox/activemq-apollo-actor/activemq-broker/pom.xml
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/pom.xml?rev=961101&r1=961100&r2=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-broker/pom.xml (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-broker/pom.xml Wed Jul 7 03:56:09 2010
@@ -53,6 +53,11 @@
<artifactId>activemq-hawtdb</artifactId>
<version>6.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.activemq</groupId>
+ <artifactId>activemq-dto</artifactId>
+ <version>6.0-SNAPSHOT</version>
+ </dependency>
<dependency>
Copied: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/resources/META-INF/services/org/apache/activemq/apollo/broker/xml (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/META-INF/services/org/apache/activemq/apollo/broker/jaxb)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/resources/META-INF/services/org/apache/activemq/apollo/broker/xml?p2=activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/resources/META-INF/services/org/apache/activemq/apollo/broker/xml&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/META-INF/services/org/apache/activemq/apollo/broker/jaxb&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/META-INF/services/org/apache/activemq/apollo/broker/jaxb (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/resources/META-INF/services/org/apache/activemq/apollo/broker/xml Wed Jul 7 03:56:09 2010
@@ -14,4 +14,4 @@
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------
-class=org.apache.activemq.apollo.jaxb.JAXBBrokerFactory
\ No newline at end of file
+class=org.apache.activemq.apollo.jaxb.XmlBrokerFactory
\ No newline at end of file
Copied: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/resources/non-persistent-activemq.xml (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/non-persistent-activemq.xml)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/resources/non-persistent-activemq.xml?p2=activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/resources/non-persistent-activemq.xml&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/non-persistent-activemq.xml&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
(empty)
Copied: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/resources/persistent-activemq.xml (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/persistent-activemq.xml)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/resources/persistent-activemq.xml?p2=activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/resources/persistent-activemq.xml&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/persistent-activemq.xml&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
(empty)
Copied: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/jaxb/PropertiesReader.java (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/PropertiesReader.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/jaxb/PropertiesReader.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/jaxb/PropertiesReader.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/PropertiesReader.java&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/PropertiesReader.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/jaxb/PropertiesReader.java Wed Jul 7 03:56:09 2010
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.activemq.apollo.jaxb;
+package org.apache.activemq.apollo.broker.jaxb;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
Copied: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/jaxb/XmlBrokerFactory.scala (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/XmlBrokerFactory.scala)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/jaxb/XmlBrokerFactory.scala?p2=activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/jaxb/XmlBrokerFactory.scala&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/XmlBrokerFactory.scala&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/XmlBrokerFactory.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/jaxb/XmlBrokerFactory.scala Wed Jul 7 03:56:09 2010
@@ -19,21 +19,20 @@ package org.apache.activemq.apollo.jaxb
import java.io.IOException
import javax.xml.bind.JAXBContext
import javax.xml.stream.XMLInputFactory
-import org.apache.activemq.apollo.broker.Broker
-import org.apache.activemq.apollo.broker.BrokerDatabase
-import org.apache.activemq.apollo.broker.BrokerFactory
-import org.apache.activemq.apollo.broker.VirtualHost
-import org.apache.activemq.transport.TransportFactory
import org.apache.activemq.util.URISupport
import java.net.{URL, URI}
import collection.JavaConversions._
+import org.apache.activemq.apollo.broker._
+import jaxb.PropertiesReader
+import org.apache.activemq.apollo.dto._
+import org.apache.activemq.transport.TransportFactory
class XmlBrokerFactory extends BrokerFactory.Handler {
def createBroker(value: String): Broker = {
try {
var brokerURI = new URI(value)
- val context = JAXBContext.newInstance("org.apache.activemq.apollo.jaxb")
+ val context = JAXBContext.newInstance("org.apache.activemq.apollo.dto")
val unmarshaller = context.createUnmarshaller()
var configURL: URL = null
@@ -53,7 +52,7 @@ class XmlBrokerFactory extends BrokerFac
val factory = XMLInputFactory.newInstance()
val reader = factory.createXMLStreamReader(configURL.openStream())
val properties = new PropertiesReader(reader)
- val xml = unmarshaller.unmarshal(properties).asInstanceOf[BrokerConfig]
+ val xml = unmarshaller.unmarshal(properties).asInstanceOf[BrokerDTO]
return createMessageBroker(xml)
} catch {
case e: Exception =>
@@ -61,31 +60,31 @@ class XmlBrokerFactory extends BrokerFac
}
}
- def createMessageBroker(brokerConfig: BrokerConfig): Broker = {
+ def createMessageBroker(brokerModel: BrokerDTO): Broker = {
val rc = new Broker()
- for (virtualHostConfig <- brokerConfig.virtualHosts) {
- rc.addVirtualHost(createVirtualHost(virtualHostConfig))
+ for (virtualHostModel <- brokerModel.virtualHosts) {
+ rc.addVirtualHost(createVirtualHost(virtualHostModel))
}
- for (element <- brokerConfig.transportServers) {
+ for (connector <- brokerModel.connectors) {
try {
- val server = TransportFactory.bind(element)
+ val server = TransportFactory.bind(connector.transport)
rc.transportServers.add(server)
} catch {
case e:Exception=>
- throw new Exception("Unable to bind transport server '" + element + " due to: " + e.getMessage(), e)
+ throw new Exception("Unable to bind transport server '" + connector + " due to: " + e.getMessage(), e)
}
}
- for (element <- brokerConfig.connectUris) {
- rc.connectUris.add(element)
+ for (connector <- brokerModel.connectors) {
+ rc.connectUris.add(connector.advertise)
}
return rc
}
- def createVirtualHost(virtualHostConfig: VirtualHostConfig): VirtualHost = {
+ def createVirtualHost(virtualHostModel: VirtualHostDTO): VirtualHost = {
val rc = new VirtualHost()
- rc.setNamesArray(virtualHostConfig.hostNames)
- if (virtualHostConfig.store != null) {
+ rc.setNamesArray(virtualHostModel.hostNames)
+ if (virtualHostModel.store != null) {
val database = new BrokerDatabase()
database.setVirtualHost(rc)
// TODO:
Copied: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/FunSuiteSupport.scala (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/FunSuiteSupport.scala)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/FunSuiteSupport.scala?p2=activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/FunSuiteSupport.scala&p1=activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/FunSuiteSupport.scala&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/FunSuiteSupport.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/FunSuiteSupport.scala Wed Jul 7 03:56:09 2010
@@ -1,11 +1,11 @@
-package org.apache.activemq.apollo.broker.perf
+package org.apache.activemq.apollo.broker
+
import _root_.org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner
import java.io.File
import java.lang.String
import collection.immutable.Map
-import org.apache.activemq.apollo.broker.Logging
import org.scalatest._
/**
Added: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/XMLBrokerFactoryTest.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/XMLBrokerFactoryTest.scala?rev=961101&view=auto
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/XMLBrokerFactoryTest.scala (added)
+++ activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/XMLBrokerFactoryTest.scala Wed Jul 7 03:56:09 2010
@@ -0,0 +1,93 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.apollo.broker.jaxb
+
+import java.util.ArrayList
+import org.apache.activemq.apollo.broker.{FunSuiteSupport, BrokerFactory}
+
+/**
+ * <p>
+ * </p>
+ *
+ * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
+ */
+class XMLBrokerFactoryTest extends FunSuiteSupport {
+ test("Simple Config") {
+ val uri = "xml:classpath:org/apache/activemq/apollo/jaxb/testSimpleConfig.xml"
+ info("Loading broker configuration from the classpath with URI: " + uri)
+ val broker = BrokerFactory.createBroker(uri, false)
+
+ // assertEquals(4, p.getSize())
+ // assertEquals("test dispatcher", p.getName())
+
+ expect(1) {
+ broker.transportServers.size()
+ }
+ val expected = new ArrayList[String]()
+ expected.add("pipe://test1")
+ expected.add("tcp://127.0.0.1:61616")
+
+ expect(expected) {
+ broker.connectUris
+ }
+
+ expect(2) {
+ broker.virtualHosts.size()
+ }
+
+ // Assert.assertNotNull(broker.defaultVirtualHost().getDatabase())
+ // Assert.assertNotNull(broker.defaultVirtualHost().getDatabase().getStore())
+ // Assert.assertTrue((broker.defaultVirtualHost().getDatabase().getStore() instanceof MemoryStore))
+
+ }
+
+ def expectException(msg: String = "Expected exeception.")(func: => Unit) = {
+ try {
+ func
+ fail(msg)
+ } catch {
+ case e: Exception =>
+ }
+ }
+
+ test("Uris") {
+
+ // non-existent classpath
+
+ expectException("Creating broker from non-existing url does not throw an exception!") {
+ val uri = "xml:classpath:org/apache/activemq/apollo/jaxb/testUris-fail.xml"
+ BrokerFactory.createBroker(uri, false)
+ }
+
+ //non-existent file
+ expectException("Creating broker from non-existing url does not throw an exception!") {
+ val uri = "xml:file:/org/apache/activemq/apollo/jaxb/testUris-fail.xml"
+ BrokerFactory.createBroker(uri, false)
+ }
+
+ //non-existent url
+ expectException("Creating broker from non-existing url does not throw an exception!") {
+ val uri = "xml:http://localhost/testUris.xml"
+ BrokerFactory.createBroker(uri, false)
+ }
+
+ // regular file
+ val uri = "xml:" + Thread.currentThread().getContextClassLoader().getResource("org/apache/activemq/apollo/broker/jaxb/testUris.xml")
+ BrokerFactory.createBroker(uri, false)
+ }
+
+}
Copied: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/testSimpleConfig.xml (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/resources/org/apache/activemq/apollo/jaxb/testSimpleConfig.xml)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/testSimpleConfig.xml?p2=activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/testSimpleConfig.xml&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/resources/org/apache/activemq/apollo/jaxb/testSimpleConfig.xml&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
(empty)
Copied: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/testUris.xml (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/resources/org/apache/activemq/apollo/jaxb/testUris.xml)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/testUris.xml?p2=activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/jaxb/testUris.xml&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/resources/org/apache/activemq/apollo/jaxb/testUris.xml&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
(empty)
Copied: activemq/sandbox/activemq-apollo-actor/activemq-dto/pom.xml (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/pom.xml)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/pom.xml?p2=activemq/sandbox/activemq-apollo-actor/activemq-dto/pom.xml&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/pom.xml&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/pom.xml (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/pom.xml Wed Jul 7 03:56:09 2010
@@ -25,11 +25,11 @@
</parent>
<groupId>org.apache.activemq</groupId>
- <artifactId>activemq-jaxb</artifactId>
+ <artifactId>activemq-dto</artifactId>
<packaging>jar</packaging>
<version>6.0-SNAPSHOT</version>
- <name>ActiveMQ :: JAXB</name>
+ <name>ActiveMQ :: Data Transfer Objects</name>
<pluginRepositories>
<!-- For the schemagen plugin -->
@@ -51,21 +51,9 @@
<dependencies>
<dependency>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-broker</artifactId>
- <version>6.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>${spring-version}</version>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.codehaus.woodstox</groupId>
- <artifactId>wstx-asl</artifactId>
- <version>4.0.0</version>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-core-asl</artifactId>
+ <version>${jackson-version}</version>
</dependency>
<!-- Scala Support -->
Copied: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/resources/org/apache/activemq/apollo/dto/jaxb.index (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/org/apache/activemq/apollo/jaxb/jaxb.index)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/resources/org/apache/activemq/apollo/dto/jaxb.index?p2=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/resources/org/apache/activemq/apollo/dto/jaxb.index&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/org/apache/activemq/apollo/jaxb/jaxb.index&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/resources/org/apache/activemq/apollo/jaxb/jaxb.index (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/resources/org/apache/activemq/apollo/dto/jaxb.index Wed Jul 7 03:56:09 2010
@@ -14,6 +14,6 @@
## See the License for the specific language governing permissions and
## limitations under the License.
## ------------------------------------------------------------------------
-BrokerConfig
-KahaDBStoreConfig
-MemoryStoreConfig
+BrokerDTO
+HawtDBStoreDTO
+MemoryStoreDTO
Copied: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/BrokerDTO.java (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/BrokerConfig.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/BrokerDTO.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/BrokerDTO.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/BrokerConfig.java&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/BrokerConfig.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/BrokerDTO.java Wed Jul 7 03:56:09 2010
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.activemq.apollo.jaxb;
+package org.apache.activemq.apollo.dto;
import java.util.ArrayList;
import java.util.List;
@@ -25,10 +25,16 @@ import javax.xml.bind.annotation.XmlAttr
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
+/**
+ * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
+ */
@XmlRootElement(name="broker")
@XmlAccessorType(XmlAccessType.FIELD)
-public class BrokerConfig {
-
+public class BrokerDTO {
+
+ /**
+ * A unique id of the broker.
+ */
@XmlAttribute(name="id")
public String id;
@@ -38,41 +44,29 @@ public class BrokerConfig {
@XmlAttribute(name="rev")
public int rev;
+ /**
+ * Used to track who last modified the configuration.
+ */
+ @XmlAttribute(name="modified-by")
+ public String modifiedBy;
+
+ /**
+ * Used to store any configuration notes.
+ */
+ @XmlElement
+ public String notes;
+
+ /**
+ * A broker can service many virtual hosts.
+ */
@XmlElement(name="virtual-host")
- public List<VirtualHostConfig> virtualHosts = new ArrayList<VirtualHostConfig>();
- @XmlElement(name="transport-server")
- public List<String> transportServers = new ArrayList<String>();
- @XmlElement(name="connect-uri")
- public List<String> connectUris = new ArrayList<String>();
-
-
- public List<VirtualHostConfig> getVirtualHosts() {
- return virtualHosts;
- }
- public void setVirtualHosts(List<VirtualHostConfig> virtualHosts) {
- this.virtualHosts = virtualHosts;
- }
-
- public List<String> getTransportServers() {
- return transportServers;
- }
- public void setTransportServers(List<String> transportServers) {
- this.transportServers = transportServers;
- }
-
-
- public List<String> getConnectUris() {
- return connectUris;
- }
- public void setConnectUris(List<String> connectUris) {
- this.connectUris = connectUris;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
+ public List<VirtualHostDTO> virtualHosts = new ArrayList<VirtualHostDTO>();
+
+ /**
+ * A broker accepts connections via it's configured connectors.
+ */
+ @XmlElement(name="connectors")
+ public List<ConnectorDTO> connectors = new ArrayList<ConnectorDTO>();
+
+
}
Copied: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/ConnectorDTO.java (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/VirtualHostConfig.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/ConnectorDTO.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/ConnectorDTO.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/VirtualHostConfig.java&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/VirtualHostConfig.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/ConnectorDTO.java Wed Jul 7 03:56:09 2010
@@ -14,29 +14,42 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.activemq.apollo.jaxb;
+package org.apache.activemq.apollo.dto;
-import java.util.ArrayList;
+import javax.xml.bind.annotation.*;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementRef;
-import javax.xml.bind.annotation.XmlRootElement;
-
-import org.apache.activemq.apollo.broker.BrokerDatabase;
-import org.apache.activemq.apollo.broker.VirtualHost;
-
-@XmlRootElement(name = "virtual-host")
+/**
+ *
+ *
+ *
+ * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
+ */
+@XmlRootElement(name = "connector")
@XmlAccessorType(XmlAccessType.FIELD)
-public class VirtualHostConfig {
-
- @XmlElement(name="host-name", required=true)
- public ArrayList<String> hostNames = new ArrayList<String>();
+public class ConnectorDTO {
- @XmlElementRef
- public StoreXml store;
+ /**
+ * A unique id.
+ */
+ @XmlAttribute(name="id")
+ public String id;
+
+ /**
+ * The transport uri which it will accept connections on.
+ */
+ @XmlAttribute
+ public String transport;
+
+ /**
+ * The protocol that the transport will use.
+ */
+ @XmlAttribute
+ public String protocol;
+
+ /**
+ * The uri which will be advertised for remote endpoints to connect to.
+ */
+ @XmlAttribute
+ public String advertise;
-
-
-}
+}
\ No newline at end of file
Copied: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/HawtDBStoreDTO.java (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/KahaDBStoreConfig.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/HawtDBStoreDTO.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/HawtDBStoreDTO.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/KahaDBStoreConfig.java&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/KahaDBStoreConfig.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/HawtDBStoreDTO.java Wed Jul 7 03:56:09 2010
@@ -14,62 +14,39 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.activemq.apollo.jaxb;
-
-import java.io.File;
+package org.apache.activemq.apollo.dto;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
+import java.io.File;
-import org.apache.activemq.broker.store.Store;
-import org.apache.activemq.broker.store.hawtdb.HawtDBStore;
-
-@XmlRootElement(name="kahadb-store")
+/**
+ * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
+ */
+@XmlRootElement(name="hawtdb-store")
@XmlAccessorType(XmlAccessType.FIELD)
-public class KahaDBStoreConfig extends StoreXml {
+public class HawtDBStoreDTO extends StoreDTO {
@XmlAttribute(name="checkpoint-interval", required=false)
- private Long checkpointInterval;
+ public Long checkpointInterval;
@XmlAttribute(name="cleanup-interval", required=false)
- private Long cleanupInterval;
+ public Long cleanupInterval;
@XmlAttribute(name="purge-on-startup", required=false)
- private Boolean purgeOnStartup;
+ public Boolean purgeOnStartup;
@XmlAttribute(name="index-write-async", required=false)
- private Boolean indexWriteAsync;
+ public Boolean indexWriteAsync;
@XmlAttribute(name="journal-disk-syncs", required=false)
- private Boolean journalDiskSyncs;
+ public Boolean journalDiskSyncs;
@XmlAttribute(name="fail-if-database-is-locked", required=false)
- private Boolean failIfDatabaseIsLocked;
+ public Boolean failIfDatabaseIsLocked;
@XmlAttribute(name="index-write-batch-size", required=false)
- private Integer indexWriteBatchSize;
+ public Integer indexWriteBatchSize;
@XmlAttribute(name="journal-max-file-length", required=false)
- private Integer journalMaxFileLength;
+ public Integer journalMaxFileLength;
@XmlAttribute(name="directory", required=false)
- private File directory;
+ public File directory;
- public Store createStore() {
- HawtDBStore rc = new HawtDBStore();
- if( checkpointInterval!=null )
- rc.setCheckpointInterval(checkpointInterval);
- if( cleanupInterval!=null )
- rc.setCleanupInterval(cleanupInterval);
- if( purgeOnStartup!=null )
- rc.setDeleteAllMessages(purgeOnStartup);
-// if( indexWriteAsync!=null )
-// rc.setEnableIndexWriteAsync(indexWriteAsync);
-// if( journalDiskSyncs!=null )
-// rc.setEnableJournalDiskSyncs(journalDiskSyncs);
- if( failIfDatabaseIsLocked!=null )
- rc.setFailIfDatabaseIsLocked(failIfDatabaseIsLocked);
-// if( indexWriteBatchSize!=null )
-// rc.setIndexWriteBatchSize(indexWriteBatchSize);
- if( journalMaxFileLength!=null )
- rc.setJournalMaxFileLength(journalMaxFileLength);
- if( directory!=null )
- rc.setStoreDirectory(directory);
- return rc;
- }
}
Copied: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/MemoryStoreDTO.java (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/MemoryStoreConfig.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/MemoryStoreDTO.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/MemoryStoreDTO.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/MemoryStoreConfig.java&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/MemoryStoreConfig.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/MemoryStoreDTO.java Wed Jul 7 03:56:09 2010
@@ -14,21 +14,18 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.activemq.apollo.jaxb;
+package org.apache.activemq.apollo.dto;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.activemq.broker.store.Store;
-import org.apache.activemq.broker.store.memory.MemoryStore;
-
+/**
+ * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
+ */
@XmlRootElement(name="memory-store")
@XmlAccessorType(XmlAccessType.FIELD)
-public class MemoryStoreConfig extends StoreXml {
+public class MemoryStoreDTO extends StoreDTO {
- public Store createStore() {
- return new MemoryStore();
- }
}
Copied: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/StoreDTO.java (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/StoreXml.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/StoreDTO.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/StoreDTO.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/StoreXml.java&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/StoreXml.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/StoreDTO.java Wed Jul 7 03:56:09 2010
@@ -14,15 +14,18 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.activemq.apollo.jaxb;
+package org.apache.activemq.apollo.dto;
-import javax.xml.bind.annotation.XmlType;
+import org.codehaus.jackson.annotate.JsonTypeInfo;
-import org.apache.activemq.broker.store.Store;
+import javax.xml.bind.annotation.XmlType;
-@XmlType(name = "storeType")
-public abstract class StoreXml {
+/**
+ * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
+ */
+@XmlType(name = "store-type")
+@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY, property="@class")
+public abstract class StoreDTO {
- abstract Store createStore();
}
Copied: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/VirtualHostDTO.java (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/VirtualHostConfig.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/VirtualHostDTO.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/VirtualHostDTO.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/VirtualHostConfig.java&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/VirtualHostConfig.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/VirtualHostDTO.java Wed Jul 7 03:56:09 2010
@@ -14,28 +14,30 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.activemq.apollo.jaxb;
+package org.apache.activemq.apollo.dto;
import java.util.ArrayList;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementRef;
-import javax.xml.bind.annotation.XmlRootElement;
-
-import org.apache.activemq.apollo.broker.BrokerDatabase;
-import org.apache.activemq.apollo.broker.VirtualHost;
+import javax.xml.bind.annotation.*;
+/**
+ * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
+ */
@XmlRootElement(name = "virtual-host")
@XmlAccessorType(XmlAccessType.FIELD)
-public class VirtualHostConfig {
+public class VirtualHostDTO {
- @XmlElement(name="host-name", required=true)
+ /**
+ * A unique id of the virtual host.
+ */
+ @XmlAttribute(name="id")
+ public String id;
+
+ @XmlElement(name="host-names", required=true)
public ArrayList<String> hostNames = new ArrayList<String>();
@XmlElementRef
- public StoreXml store;
+ public StoreDTO store;
Copied: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/package-info.java (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/package-info.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/package-info.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/package-info.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/package-info.java&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/package-info.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-dto/src/main/scala/org/apache/activemq/apollo/dto/package-info.java Wed Jul 7 03:56:09 2010
@@ -20,6 +20,8 @@
* <a href="http://activemq.apache.org/schema/activemq/apollo/xml-configuration.html">XML Configuration</a>
* of the ActiveMQ Broker.
*/
-@javax.xml.bind.annotation.XmlSchema(namespace = "http://activemq.apache.org/schema/activemq/apollo", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
-package org.apache.activemq.apollo.jaxb;
+@javax.xml.bind.annotation.XmlSchema(
+ namespace = "http://activemq.apache.org/schema/activemq/apollo",
+ elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.apache.activemq.apollo.dto;
Copied: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/ide-resources/log4j.properties (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/ide-resources/log4j.properties)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/ide-resources/log4j.properties?p2=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/ide-resources/log4j.properties&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/ide-resources/log4j.properties&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
(empty)
Copied: activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/resources/log4j.properties (from r961100, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/resources/log4j.properties)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/resources/log4j.properties?p2=activemq/sandbox/activemq-apollo-actor/activemq-dto/src/test/resources/log4j.properties&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/resources/log4j.properties&r1=961100&r2=961101&rev=961101&view=diff
==============================================================================
(empty)
Modified: activemq/sandbox/activemq-apollo-actor/activemq-stomp/pom.xml
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-stomp/pom.xml?rev=961101&r1=961100&r2=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-stomp/pom.xml (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-stomp/pom.xml Wed Jul 7 03:56:09 2010
@@ -80,12 +80,6 @@
<type>test-jar</type>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-jaxb</artifactId>
- <version>6.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
<dependency>
<groupId>junit</groupId>
Modified: activemq/sandbox/activemq-apollo-actor/activemq-web/pom.xml
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-web/pom.xml?rev=961101&r1=961100&r2=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-web/pom.xml (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-web/pom.xml Wed Jul 7 03:56:09 2010
@@ -32,11 +32,6 @@
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
- <artifactId>activemq-jaxb</artifactId>
- <version>6.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.activemq</groupId>
<artifactId>activemq-stomp</artifactId>
<version>6.0-SNAPSHOT</version>
</dependency>
@@ -61,7 +56,12 @@
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
- <version>1.3.2</version>
+ <version>${jackson-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-xc</artifactId>
+ <version>${jackson-version}</version>
</dependency>
<!-- Scala Support -->
Modified: activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/ConfigStore.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/ConfigStore.scala?rev=961101&r1=961100&r2=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/ConfigStore.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/ConfigStore.scala Wed Jul 7 03:56:09 2010
@@ -17,10 +17,11 @@
package org.apache.activemq.apollo
import broker._
-import jaxb.{VirtualHostConfig, PropertiesReader, BrokerConfig}
+import broker.jaxb.PropertiesReader
import java.util.regex.Pattern
import javax.xml.stream.{XMLOutputFactory, XMLInputFactory}
import _root_.org.fusesource.hawtdispatch.ScalaDispatch._
+import dto.{ConnectorDTO, VirtualHostDTO, BrokerDTO}
import org.apache.activemq.util.{Hasher, IOHelper}
import java.util.concurrent.{TimeUnit, ExecutorService, Executors}
import org.fusesource.hawtbuf.{ByteArrayInputStream, ByteArrayOutputStream}
@@ -37,13 +38,13 @@ import java.io.{OutputStreamWriter, File
*/
trait ConfigStore extends Service {
- def listBrokerConfigs(cb: (List[String]) => Unit):Unit
+ def listBrokerModels(cb: (List[String]) => Unit):Unit
- def getBrokerConfig(id:String, cb: (Option[BrokerConfig]) => Unit):Unit
+ def getBrokerModel(id:String, cb: (Option[BrokerDTO]) => Unit):Unit
- def putBrokerConfig(config:BrokerConfig, cb: (Boolean) => Unit):Unit
+ def putBrokerModel(config:BrokerDTO, cb: (Boolean) => Unit):Unit
- def removeBrokerConfig(id:String, rev:Int, cb: (Boolean) => Unit):Unit
+ def removeBrokerModel(id:String, rev:Int, cb: (Boolean) => Unit):Unit
}
@@ -58,22 +59,23 @@ trait ConfigStore extends Service {
class FileConfigStore extends ConfigStore with BaseService with Logging {
override protected def log: Log = FileConfigStore
- object StoredBrokerConfig {
- def apply(rev:Int, config:BrokerConfig) = {
+ object StoredBrokerModel {
+ def apply(config:BrokerDTO) = {
val data = marshall(config)
- new StoredBrokerConfig(config.id, rev, data, Hasher.JENKINS.hash(data, data.length))
+ new StoredBrokerModel(config.id, config.rev, data, Hasher.JENKINS.hash(data, data.length))
}
}
- case class StoredBrokerConfig(id:String, rev:Int, data:Array[Byte], hash:Int)
+ case class StoredBrokerModel(id:String, rev:Int, data:Array[Byte], hash:Int)
- val context = JAXBContext.newInstance("org.apache.activemq.apollo.jaxb")
+ val context = JAXBContext.newInstance("org.apache.activemq.apollo.dto")
val unmarshaller = context.createUnmarshaller
val marshaller = context.createMarshaller
marshaller.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, java.lang.Boolean.TRUE )
val inputfactory = XMLInputFactory.newInstance
var file:File = new File("activemq.xml")
- var latest:StoredBrokerConfig = null
+ @volatile
+ var latest:StoredBrokerModel = null
var readOnly = false
val dispatchQueue = createQueue("config store")
@@ -117,7 +119,7 @@ class FileConfigStore extends ConfigStor
if( readOnly ) {
throw new Exception("file does not exsit: "+file)
} else {
- write(StoredBrokerConfig(1, defaultConfig))
+ write(StoredBrokerModel(defaultConfig(1)))
}
} else {
if( readOnly ) {
@@ -142,11 +144,11 @@ class FileConfigStore extends ConfigStor
ioWorker.shutdown
}
- def listBrokerConfigs(cb: (List[String]) => Unit) = callback(cb) {
+ def listBrokerModels(cb: (List[String]) => Unit) = callback(cb) {
List(latest.id)
} >>: dispatchQueue
- def getBrokerConfig(id:String, cb: (Option[BrokerConfig]) => Unit) = callback(cb) {
+ def getBrokerModel(id:String, cb: (Option[BrokerDTO]) => Unit) = callback(cb) {
if( latest.id == id ) {
Some(unmarshall(latest.data))
} else {
@@ -154,17 +156,21 @@ class FileConfigStore extends ConfigStor
}
} >>: dispatchQueue
- def putBrokerConfig(config:BrokerConfig, cb: (Boolean) => Unit) = callback(cb) {
- if( latest.id == config.id && latest.rev==config.rev) {
- config.rev += 1
- latest = write(StoredBrokerConfig(config.rev, config))
- true
- } else {
+ def putBrokerModel(config:BrokerDTO, cb: (Boolean) => Unit) = callback(cb) {
+ debug("storing broker model: %s ver %d", config.id, config.rev)
+ if( latest.id != config.id ) {
+ debug("this store can only update broker: "+latest.id)
false
+ } else if( latest.rev+1 != config.rev ) {
+ debug("update request does not match next revision: %d", latest.rev+1)
+ false
+ } else {
+ latest = write(StoredBrokerModel(config))
+ true
}
} >>: dispatchQueue
- def removeBrokerConfig(id:String, rev:Int, cb: (Boolean) => Unit) = callback(cb) {
+ def removeBrokerModel(id:String, rev:Int, cb: (Boolean) => Unit) = callback(cb) {
// not supported.
false
} >>: dispatchQueue
@@ -175,22 +181,20 @@ class FileConfigStore extends ConfigStor
if( serviceState.isStarted ) {
ioWorker {
try {
- val config = read(0, file)
- dispatchQueue {
- if (latest.hash != config.hash) {
- // looks like user has manually edited the file
- // on the file system.. treat that like an update.. so we
- // store the change as a revision.
-
- }
- schedualNextUpdateCheck
+ val config = read(latest.rev+1, file)
+ if (latest.hash != config.hash) {
+ // TODO: do this in the controller so that it
+ // has a chance to update the runtime too.
+ val c = unmarshall(config.data)
+ c.rev = config.rev
+ putBrokerModel(c, null)
}
+ schedualNextUpdateCheck
}
catch {
case e:Exception =>
- // error reading the file..
- // TODO: updated it to the latest valid version.
- schedualNextUpdateCheck
+ // error reading the file.. could be that someone is
+ // in the middle of updating the file.
}
}
}
@@ -198,26 +202,33 @@ class FileConfigStore extends ConfigStor
- private def defaultConfig() = {
- val host = new VirtualHostConfig
- host.hostNames.add("default")
-
- val config = new BrokerConfig
+ private def defaultConfig(rev:Int) = {
+ val config = new BrokerDTO
config.id = "default"
- config.transportServers.add("tcp://0.0.0.0:61613?wireFormat=multi")
- config.connectUris.add("tcp://localhost:61613")
+ config.rev = rev
+ config.notes = "default configuration"
+
+ var host = new VirtualHostDTO
+ host.hostNames.add("default")
config.virtualHosts.add(host)
+
+ var connector = new ConnectorDTO
+ connector.transport = "tcp://0.0.0.0:61613"
+ connector.advertise = "tcp://0.0.0.0:61613"
+ connector.protocol = "multi"
+ config.connectors.add( connector )
+
config
}
- private def read(rev:Int, file: File): StoredBrokerConfig = {
+ private def read(rev:Int, file: File): StoredBrokerModel = {
val data = IOHelper.readBytes(file)
val config = unmarshall(data) // validates the xml
val hash = Hasher.JENKINS.hash(data, data.length)
- StoredBrokerConfig(config.id, rev, data, hash)
+ StoredBrokerModel(config.id, rev, data, hash)
}
- private def write(config:StoredBrokerConfig) = {
+ private def write(config:StoredBrokerModel) = {
// write to the files..
IOHelper.writeBinaryFile(file, config.data)
IOHelper.writeBinaryFile(fileRev(config.rev), config.data)
@@ -228,10 +239,10 @@ class FileConfigStore extends ConfigStor
val bais = new ByteArrayInputStream(in);
val reader = inputfactory.createXMLStreamReader(bais)
val properties = new PropertiesReader(reader)
- unmarshaller.unmarshal(properties).asInstanceOf[BrokerConfig]
+ unmarshaller.unmarshal(properties).asInstanceOf[BrokerDTO]
}
- def marshall(in:BrokerConfig) = {
+ def marshall(in:BrokerDTO) = {
val baos = new ByteArrayOutputStream
marshaller.marshal(in, new OutputStreamWriter(baos));
baos.toByteArray
Modified: activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/Root.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/Root.scala?rev=961101&r1=961100&r2=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/Root.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/Root.scala Wed Jul 7 03:56:09 2010
@@ -23,12 +23,11 @@ import core.{Response, Context}
import org.fusesource.scalate.util.Logging
import reflect.{BeanProperty}
import com.sun.jersey.api.view.ImplicitProduces
-import org.apache.activemq.apollo.jaxb.BrokerConfig
-import com.google.inject.servlet.RequestScoped
import org.apache.activemq.apollo.{BrokerRegistry, ConfigStore}
import org.fusesource.hawtdispatch.Future
import Response._
import Response.Status._
+import org.apache.activemq.apollo.dto.BrokerDTO
/**
* Defines the default representations to be used on resources
@@ -63,7 +62,7 @@ class Root() extends Resource {
def getBrokers: Array[BrokerRef] = {
Future[List[String]] { cb=>
- configStore.listBrokerConfigs(cb)
+ configStore.listBrokerModels(cb)
}.map(x=> new BrokerRef(x, x)).toArray[BrokerRef]
}
@@ -88,18 +87,18 @@ case class Broker(parent:Root, @BeanProp
}
@GET @Path("config")
- def getConfig():BrokerConfig = {
+ def getConfig():BrokerDTO = {
config()
}
private def config() = {
- Future[Option[BrokerConfig]] { cb=>
- configStore.getBrokerConfig(id, cb)
+ Future[Option[BrokerDTO]] { cb=>
+ configStore.getBrokerModel(id, cb)
}.getOrElse(result(NOT_FOUND))
}
@GET @Path("config/{rev}")
- def getConfig(@PathParam("rev") rev:Int):BrokerConfig = {
+ def getConfig(@PathParam("rev") rev:Int):BrokerDTO = {
// that rev may have gone away..
var c = config()
c.rev==rev || result(NOT_FOUND)
@@ -107,18 +106,18 @@ case class Broker(parent:Root, @BeanProp
}
@PUT @Path("config/{rev}")
- def put(@PathParam("rev") rev:Int, config:BrokerConfig) = {
+ def put(@PathParam("rev") rev:Int, config:BrokerDTO) = {
config.id = id;
config.rev = rev
Future[Boolean] { cb=>
- configStore.putBrokerConfig(config, cb)
+ configStore.putBrokerModel(config, cb)
} || result(NOT_FOUND)
}
@DELETE @Path("config/{rev}")
def delete(@PathParam("rev") rev:Int) = {
Future[Boolean] { cb=>
- configStore.removeBrokerConfig(id, rev, cb)
+ configStore.removeBrokerModel(id, rev, cb)
} || result(NOT_FOUND)
}
Modified: activemq/sandbox/activemq-apollo-actor/activemq-web/src/test/scala/org/apache/activemq/apollo/FileConfigStoreTest.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-web/src/test/scala/org/apache/activemq/apollo/FileConfigStoreTest.scala?rev=961101&r1=961100&r2=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-web/src/test/scala/org/apache/activemq/apollo/FileConfigStoreTest.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-web/src/test/scala/org/apache/activemq/apollo/FileConfigStoreTest.scala Wed Jul 7 03:56:09 2010
@@ -41,7 +41,7 @@ class FileConfigStoreTest extends FunSui
expect(List("default")) {
Future[List[String]]{ x=>
- store.listBrokerConfigs(x)
+ store.listBrokerModels(x)
}
}
Modified: activemq/sandbox/activemq-apollo-actor/pom.xml
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/pom.xml?rev=961101&r1=961100&r2=961101&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/pom.xml (original)
+++ activemq/sandbox/activemq-apollo-actor/pom.xml Wed Jul 7 03:56:09 2010
@@ -141,7 +141,7 @@
<module>activemq-selector</module>
<module>activemq-tcp</module>
<module>activemq-hawtdb</module>
- <module>activemq-jaxb</module>
+ <module>activemq-dto</module>
<module>activemq-stomp</module>
<module>activemq-web</module>
</modules>
@@ -480,6 +480,23 @@
<profiles>
+ <!--
+ To generate a graph of the project dependencies, run: mvn -P graph graph:project
+ -->
+ <profile>
+ <id>graph</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.fusesource.mvnplugins</groupId>
+ <artifactId>maven-graph-plugin</artifactId>
+ <version>1.5</version>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+
<profile>
<id>eclipse</id>
<properties>
@@ -496,28 +513,6 @@
</profile>
<profile>
- <id>graph</id>
- <pluginRepositories>
- <pluginRepository>
- <id>mvnplugins.fusesource.org</id>
- <url>http://mvnplugins.fusesource.org/repo/release</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- </pluginRepository>
- </pluginRepositories>
- <build>
- <plugins>
- <plugin>
- <groupId>org.fusesource.mvnplugins</groupId>
- <artifactId>maven-graph-plugin</artifactId>
- <version>1.0</version>
- </plugin>
- </plugins>
- </build>
- </profile>
-
- <profile>
<id>apache-release</id>
<activation>
<property>