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 2015/04/17 04:28:14 UTC
activemq-6 git commit: Setting posix permissions is not supported on
windows. Use a boot jar to setup the classpath.
Repository: activemq-6
Updated Branches:
refs/heads/master a1bdb3c02 -> 3b82dc52e
Setting posix permissions is not supported on windows.
Use a boot jar to setup the classpath.
Project: http://git-wip-us.apache.org/repos/asf/activemq-6/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-6/commit/3b82dc52
Tree: http://git-wip-us.apache.org/repos/asf/activemq-6/tree/3b82dc52
Diff: http://git-wip-us.apache.org/repos/asf/activemq-6/diff/3b82dc52
Branch: refs/heads/master
Commit: 3b82dc52ed8ddc4d2c42eff21ee20d6519edb8b8
Parents: a1bdb3c
Author: Hiram Chirino <hi...@hiramchirino.com>
Authored: Wed Apr 15 19:55:28 2015 -0400
Committer: Hiram Chirino <hi...@hiramchirino.com>
Committed: Thu Apr 16 22:10:35 2015 -0400
----------------------------------------------------------------------
activemq-boot/pom.xml | 46 +++++++
.../java/org/apache/activemq/boot/ActiveMQ.java | 136 +++++++++++++++++++
.../java/org/apache/activemq/cli/ActiveMQ.java | 1 -
.../apache/activemq/cli/commands/Create.java | 27 ++--
.../org/apache/activemq/cli/commands/Run.java | 17 ++-
.../activemq/factory/BasicSecurityHandler.java | 18 ++-
.../apache/activemq/factory/BrokerFactory.java | 22 ++-
.../apache/activemq/cli/commands/bin/activemq | 42 +++---
.../activemq/cli/commands/bin/activemq.cmd | 20 +--
.../apache/activemq/cli/commands/bin/run.bat | 17 ---
.../org/apache/activemq/cli/commands/bin/run.sh | 19 ---
.../apache/activemq/cli/commands/bin/stop.bat | 17 ---
.../apache/activemq/cli/commands/bin/stop.sh | 19 ---
.../cli/commands/etc/activemq.profile.cmd | 16 +--
distribution/activemq/pom.xml | 5 +
distribution/activemq/src/main/assembly/dep.xml | 17 +++
.../activemq/src/main/resources/bin/activemq | 32 +++--
.../src/main/resources/bin/activemq.cmd | 23 +---
pom.xml | 1 +
19 files changed, 322 insertions(+), 173 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/activemq-boot/pom.xml
----------------------------------------------------------------------
diff --git a/activemq-boot/pom.xml b/activemq-boot/pom.xml
new file mode 100644
index 0000000..bd931d0
--- /dev/null
+++ b/activemq-boot/pom.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.activemq</groupId>
+ <artifactId>activemq-pom</artifactId>
+ <version>10.0.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <artifactId>activemq-boot</artifactId>
+ <packaging>jar</packaging>
+ <name>ActiveMQ6 Boot</name>
+
+ <properties>
+ <activemq.basedir>${project.basedir}/..</activemq.basedir>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+</project>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/activemq-boot/src/main/java/org/apache/activemq/boot/ActiveMQ.java
----------------------------------------------------------------------
diff --git a/activemq-boot/src/main/java/org/apache/activemq/boot/ActiveMQ.java b/activemq-boot/src/main/java/org/apache/activemq/boot/ActiveMQ.java
new file mode 100644
index 0000000..afe965f
--- /dev/null
+++ b/activemq-boot/src/main/java/org/apache/activemq/boot/ActiveMQ.java
@@ -0,0 +1,136 @@
+/**
+ * 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.boot;
+
+import java.io.File;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+
+/**
+ * <p>
+ * A main class which setups up a classpath and then passes
+ * execution off to the ActiveMQ cli main.
+ * </p>
+ */
+public class ActiveMQ
+{
+
+ public static void main(String[] args) throws Throwable
+ {
+ ArrayList<File> dirs = new ArrayList<File>();
+ String instance = System.getProperty("activemq.instance");
+ if (instance != null)
+ {
+ dirs.add(new File(new File(instance), "lib"));
+ }
+
+ String home = System.getProperty("activemq.home");
+ if (home != null)
+ {
+ dirs.add(new File(new File(home), "lib"));
+ }
+
+ ArrayList<URL> urls = new ArrayList<URL>();
+ for (File bootdir : dirs)
+ {
+ if (bootdir.exists() && bootdir.isDirectory())
+ {
+
+ // Find the jar files in the directory..
+ ArrayList<File> files = new ArrayList<File>();
+ for (File f : bootdir.listFiles())
+ {
+ if (f.getName().endsWith(".jar") || f.getName().endsWith(".zip"))
+ {
+ files.add(f);
+ }
+ }
+
+ // Sort the list by file name..
+ Collections.sort(files, new Comparator<File>()
+ {
+ public int compare(File file, File file1)
+ {
+ return file.getName().compareTo(file1.getName());
+ }
+ });
+
+ for (File f : files)
+ {
+ add(urls, f);
+ }
+
+ }
+ }
+
+ if (instance != null)
+ {
+ System.setProperty("java.io.tmpdir", new File(new File(instance), "tmp").getCanonicalPath());
+ }
+
+ // Lets try to covert the logging.configuration setting to a valid URI
+ String loggingConfig = System.getProperty("logging.configuration");
+ if (loggingConfig != null)
+ {
+ System.setProperty("logging.configuration", fixupFileURI(loggingConfig));
+ }
+
+ // Now setup our classloader..
+ URLClassLoader loader = new URLClassLoader(urls.toArray(new URL[urls.size()]));
+ Thread.currentThread().setContextClassLoader(loader);
+ Class<?> clazz = loader.loadClass("org.apache.activemq.cli.ActiveMQ");
+ Method method = clazz.getMethod("main", args.getClass());
+ try
+ {
+ method.invoke(null, (Object) args);
+ }
+ catch (InvocationTargetException e)
+ {
+ throw e.getTargetException();
+ }
+
+ }
+
+ static String fixupFileURI(String value)
+ {
+ if (value != null && value.startsWith("file:"))
+ {
+ value = value.substring("file:".length());
+ value = new File(value).toURI().toString();
+ }
+ return value;
+ }
+
+ private static void add(ArrayList<URL> urls, File file)
+ {
+ try
+ {
+ urls.add(file.toURI().toURL());
+ }
+ catch (MalformedURLException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/activemq-bootstrap/src/main/java/org/apache/activemq/cli/ActiveMQ.java
----------------------------------------------------------------------
diff --git a/activemq-bootstrap/src/main/java/org/apache/activemq/cli/ActiveMQ.java b/activemq-bootstrap/src/main/java/org/apache/activemq/cli/ActiveMQ.java
index 321ea98..64947c3 100644
--- a/activemq-bootstrap/src/main/java/org/apache/activemq/cli/ActiveMQ.java
+++ b/activemq-bootstrap/src/main/java/org/apache/activemq/cli/ActiveMQ.java
@@ -37,7 +37,6 @@ public class ActiveMQ
Cli.CliBuilder<Action> builder = Cli.<Action>builder("activemq")
.withDescription("ActiveMQ Command Line")
.withCommand(HelpAction.class)
- .withCommand(Create.class)
.withDefaultCommand(HelpAction.class);
if (instance != null)
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/activemq-bootstrap/src/main/java/org/apache/activemq/cli/commands/Create.java
----------------------------------------------------------------------
diff --git a/activemq-bootstrap/src/main/java/org/apache/activemq/cli/commands/Create.java b/activemq-bootstrap/src/main/java/org/apache/activemq/cli/commands/Create.java
index cc9b19c..1a30a84 100644
--- a/activemq-bootstrap/src/main/java/org/apache/activemq/cli/commands/Create.java
+++ b/activemq-bootstrap/src/main/java/org/apache/activemq/cli/commands/Create.java
@@ -110,14 +110,6 @@ public class Create implements Action
write("bin/activemq-service", null, true);
makeExec("bin/activemq-service");
- write("bin/run.bat", null, false);
- write("bin/run.sh", null, true);
- makeExec("bin/run.sh");
-
- write("bin/stop.bat", null, false);
- write("bin/stop.sh", null, true);
- makeExec("bin/stop.sh");
-
write("etc/logging.properties", null, false);
write("etc/bootstrap.xml", null, false);
@@ -212,12 +204,19 @@ public class Create implements Action
private void makeExec(String path) throws IOException
{
- File file = new File(directory, path);
- Files.setPosixFilePermissions(file.toPath(), new HashSet<PosixFilePermission>(Arrays.asList(
- OWNER_READ, OWNER_WRITE, OWNER_EXECUTE,
- GROUP_READ, GROUP_WRITE, GROUP_EXECUTE,
- OTHERS_READ, OTHERS_EXECUTE
- )));
+ try
+ {
+ File file = new File(directory, path);
+ Files.setPosixFilePermissions(file.toPath(), new HashSet<PosixFilePermission>(Arrays.asList(
+ OWNER_READ, OWNER_WRITE, OWNER_EXECUTE,
+ GROUP_READ, GROUP_WRITE, GROUP_EXECUTE,
+ OTHERS_READ, OTHERS_EXECUTE
+ )));
+ }
+ catch (Throwable ignore)
+ {
+ // Our best effort was not good enough :)
+ }
}
String path(String value, boolean unixPaths) throws IOException
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/activemq-bootstrap/src/main/java/org/apache/activemq/cli/commands/Run.java
----------------------------------------------------------------------
diff --git a/activemq-bootstrap/src/main/java/org/apache/activemq/cli/commands/Run.java b/activemq-bootstrap/src/main/java/org/apache/activemq/cli/commands/Run.java
index 3c75a8f..b238d8a 100644
--- a/activemq-bootstrap/src/main/java/org/apache/activemq/cli/commands/Run.java
+++ b/activemq-bootstrap/src/main/java/org/apache/activemq/cli/commands/Run.java
@@ -46,6 +46,16 @@ public class Run implements Action
private Broker server;
+ static String fixupFileURI(String value)
+ {
+ if (value != null && value.startsWith("file:"))
+ {
+ value = value.substring("file:".length());
+ value = new File(value).toURI().toString();
+ }
+ return value;
+ }
+
@Override
public Object execute(ActionContext context) throws Exception
{
@@ -60,17 +70,16 @@ public class Run implements Action
if (configuration == null)
{
- configuration = "xml:" + activemqInstance + "/etc/bootstrap.xml";
+ File xmlFile = new File(new File(new File(activemqInstance), "etc"), "bootstrap.xml");
+ configuration = "xml:" + xmlFile.toURI().toString().substring("file:".length());
}
// To support Windows paths as explained above.
- configuration = configuration.replace("\\", "/");
-
System.out.println("Loading configuration file: " + configuration);
BrokerDTO broker = BrokerFactory.createBrokerConfiguration(configuration);
- String fileName = new URI(broker.server.configuration).getSchemeSpecificPart();
+ String fileName = new URI(fixupFileURI(broker.server.configuration)).getSchemeSpecificPart();
addShutdownHook(new File(fileName).getParentFile());
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/activemq-bootstrap/src/main/java/org/apache/activemq/factory/BasicSecurityHandler.java
----------------------------------------------------------------------
diff --git a/activemq-bootstrap/src/main/java/org/apache/activemq/factory/BasicSecurityHandler.java b/activemq-bootstrap/src/main/java/org/apache/activemq/factory/BasicSecurityHandler.java
index 20c7e6f..8d48013 100644
--- a/activemq-bootstrap/src/main/java/org/apache/activemq/factory/BasicSecurityHandler.java
+++ b/activemq-bootstrap/src/main/java/org/apache/activemq/factory/BasicSecurityHandler.java
@@ -16,6 +16,8 @@
*/
package org.apache.activemq.factory;
+import java.io.File;
+
import org.apache.activemq.core.config.impl.FileSecurityConfiguration;
import org.apache.activemq.dto.BasicSecurityDTO;
import org.apache.activemq.dto.SecurityDTO;
@@ -24,13 +26,25 @@ import org.apache.activemq.spi.core.security.ActiveMQSecurityManagerImpl;
public class BasicSecurityHandler implements SecurityHandler
{
+
+
+ static String fixupFileURI(String value)
+ {
+ if (value != null && value.startsWith("file:"))
+ {
+ value = value.substring("file:".length());
+ value = new File(value).toURI().toString();
+ }
+ return value;
+ }
+
@Override
public ActiveMQSecurityManager createSecurityManager(SecurityDTO security) throws Exception
{
BasicSecurityDTO fileSecurity = (BasicSecurityDTO) security;
String home = System.getProperty("activemq.home");
- FileSecurityConfiguration securityConfiguration = new FileSecurityConfiguration(fileSecurity.users.replace("${activemq.home}", home).replace("\\", "/"),
- fileSecurity.roles.replace("${activemq.home}", home).replace("\\", "/"),
+ FileSecurityConfiguration securityConfiguration = new FileSecurityConfiguration(fixupFileURI(fileSecurity.users),
+ fixupFileURI(fileSecurity.roles),
fileSecurity.defaultUser,
fileSecurity.maskPassword,
fileSecurity.passwordCodec);
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/activemq-bootstrap/src/main/java/org/apache/activemq/factory/BrokerFactory.java
----------------------------------------------------------------------
diff --git a/activemq-bootstrap/src/main/java/org/apache/activemq/factory/BrokerFactory.java b/activemq-bootstrap/src/main/java/org/apache/activemq/factory/BrokerFactory.java
index ba11d56..cfa52d8 100644
--- a/activemq-bootstrap/src/main/java/org/apache/activemq/factory/BrokerFactory.java
+++ b/activemq-bootstrap/src/main/java/org/apache/activemq/factory/BrokerFactory.java
@@ -23,6 +23,7 @@ import org.apache.activemq.integration.Broker;
import org.apache.activemq.spi.core.security.ActiveMQSecurityManager;
import org.apache.activemq.utils.FactoryFinder;
+import java.io.File;
import java.io.IOException;
import java.net.URI;
@@ -40,9 +41,9 @@ public class BrokerFactory
try
{
FactoryFinder finder = new FactoryFinder("META-INF/services/org/apache/activemq/broker/");
- factory = (BrokerFactoryHandler)finder.newInstance(configURI.getScheme());
+ factory = (BrokerFactoryHandler) finder.newInstance(configURI.getScheme());
}
- catch (IOException ioe )
+ catch (IOException ioe)
{
throw new ConfigurationException("Invalid configuration URI, can't find configuration scheme: " + configURI.getScheme());
}
@@ -56,18 +57,29 @@ public class BrokerFactory
return createBrokerConfiguration(new URI(configuration));
}
+ static String fixupFileURI(String value)
+ {
+ if (value != null && value.startsWith("file:"))
+ {
+ value = value.substring("file:".length());
+ value = new File(value).toURI().toString();
+ }
+ return value;
+ }
+
public static Broker createServer(ServerDTO brokerDTO, ActiveMQSecurityManager security) throws Exception
{
if (brokerDTO.configuration != null)
{
BrokerHandler handler;
- URI configURI = new URI(brokerDTO.configuration.replace("\\", "/"));
+ URI configURI = new URI(fixupFileURI(brokerDTO.configuration));
+
try
{
FactoryFinder finder = new FactoryFinder("META-INF/services/org/apache/activemq/broker/server/");
- handler = (BrokerHandler)finder.newInstance(configURI.getScheme());
+ handler = (BrokerHandler) finder.newInstance(configURI.getScheme());
}
- catch (IOException ioe )
+ catch (IOException ioe)
{
throw new ConfigurationException("Invalid configuration URI, can't find configuration scheme: " + configURI.getScheme());
}
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/activemq
----------------------------------------------------------------------
diff --git a/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/activemq b/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/activemq
index ba87e09..bca157b 100755
--- a/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/activemq
+++ b/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/activemq
@@ -46,24 +46,14 @@ fi
# Set Defaults Properties
ACTIVEMQ_LOGGING_CONF="file:$ACTIVEMQ_INSTANCE/etc/logging.properties"
-ACTIVEMQ_DATA_DIR=$ACTIVEMQ_INSTANCE/data
+ACTIVEMQ_DATA_DIR="$ACTIVEMQ_INSTANCE/data"
ACTIVEMQ_LOG_MANAGER=org.jboss.logmanager.LogManager
JAVA_ARGS="-XX:+UseParallelGC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xms512M -Xmx1024M"
-CLASSPATH=""
# Load Profile Data
. "$ACTIVEMQ_INSTANCE/etc/activemq.profile"
-# Optionally load jars installed in the instance directory.
-if [ -d $ACTIVEMQ_INSTANCE/lib ] ; then
- for i in `ls $ACTIVEMQ_INSTANCE/lib/*.jar`; do
- CLASSPATH=$CLASSPATH:$i
- done
-fi
-
-for i in `ls $ACTIVEMQ_HOME/lib/*.jar`; do
- CLASSPATH=$CLASSPATH:$i
-done
+CLASSPATH="$ACTIVEMQ_HOME/lib/activemq-boot.jar"
# OS specific support.
cygwin=false;
@@ -86,8 +76,6 @@ if $cygwin ; then
ACTIVEMQ_INSTANCE=`cygpath --unix "$ACTIVEMQ_INSTANCE"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
- [ -n "$CLASSPATH" ] &&
- CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
if [ -z "$JAVACMD" ] ; then
@@ -112,14 +100,20 @@ if [ ! -x "$JAVACMD" ] ; then
exit 1
fi
-JAVA_ARGS="$JAVA_ARGS $ACTIVEMQ_CLUSTER_PROPS
- -Dactivemq.home="$ACTIVEMQ_HOME"
- -Dactivemq.instance="$ACTIVEMQ_INSTANCE"
- -Djava.library.path="$ACTIVEMQ_HOME/bin/lib/linux-i686:$ACTIVEMQ_INSTANCE/bin/lib/linux-x86_64"
- -Djava.io.tmpdir="$ACTIVEMQ_INSTANCE/tmp"
- -Ddata.dir="$ACTIVEMQ_DATA_DIR"
- -Djava.util.logging.manager="$ACTIVEMQ_LOG_MANAGER"
- -Dlogging.configuration="$ACTIVEMQ_LOGGING_CONF"
- $DEBUG_ARGS"
+if $cygwin ; then
+ JAVA_HOME=`cygpath --windows "$JAVA_HOME"`
+ ACTIVEMQ_HOME=`cygpath --windows "$ACTIVEMQ_HOME"`
+ CLASSPATH=`cygpath --windows "$CLASSPATH"`
+fi
-exec "$JAVACMD" $JAVA_ARGS -classpath $CLASSPATH org.apache.activemq.cli.ActiveMQ $@
+exec "$JAVACMD" $JAVA_ARGS $ACTIVEMQ_CLUSTER_PROPS \
+ -classpath "$CLASSPATH" \
+ -Dactivemq.home="$ACTIVEMQ_HOME" \
+ -Dactivemq.instance="$ACTIVEMQ_INSTANCE" \
+ -Djava.library.path="$ACTIVEMQ_HOME/bin/lib/linux-i686:$ACTIVEMQ_INSTANCE/bin/lib/linux-x86_64" \
+ -Djava.io.tmpdir="$ACTIVEMQ_INSTANCE/tmp" \
+ -Ddata.dir="$ACTIVEMQ_DATA_DIR" \
+ -Djava.util.logging.manager="$ACTIVEMQ_LOG_MANAGER" \
+ -Dlogging.configuration="$ACTIVEMQ_LOGGING_CONF" \
+ $DEBUG_ARGS \
+ org.apache.activemq.boot.ActiveMQ $@
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/activemq.cmd
----------------------------------------------------------------------
diff --git a/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/activemq.cmd b/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/activemq.cmd
index d88ba0c..357b44d 100755
--- a/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/activemq.cmd
+++ b/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/activemq.cmd
@@ -48,22 +48,26 @@ echo.
:RUN_JAVA
rem "Set Defaults."
-set JAVA_ARGS=-Xmx1024M
-set ACTIVEMQ_LOGGING_CONF="file:%ACTIVEMQ_INSTANCE%\config\logging.properties"
-set ACTIVEMQ_DATA_DIR="%ACTIVEMQ_INSTANCE%\data"
+set JAVA_ARGS=-XX:+UseParallelGC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xms512M -Xmx1024M
+set ACTIVEMQ_LOGGING_CONF=file:%ACTIVEMQ_INSTANCE%\etc\logging.properties
+set ACTIVEMQ_DATA_DIR=%ACTIVEMQ_INSTANCE%\data
set ACTIVEMQ_LOG_MANAGER=org.jboss.logmanager.LogManager
rem "Load Profile Config"
call "%ACTIVEMQ_INSTANCE%\etc\activemq.profile.cmd" %*
rem "Create full JVM Args"
-set JVM_ARGS=%JAVA_ARGS% -classpath %ACTIVEMQ_INSTANCE%\lib\* -Dactivemq.home=%ACTIVEMQ_HOME% -Dactivemq.instance=%ACTIVEMQ_INSTANCE% -Djava.io.tmpdir=%ACTIVEMQ_INSTANCE%/tmp -Ddata.dir=%ACTIVEMQ_DATA_DIR% -Djava.util.logging.manager=%ACTIVEMQ_LOG_MANAGER% -Dlogging.configuration=%ACTIVEMQ_LOGGING_CONF% -Djava.library.path=%ACTIVEMQ_INSTANCE%\lib\
-
-rem "Set Debug & Cluster props"
-if not "%DEBUG_ARGS%"=="" set JVM_ARGS=%JVM_ARGS% %DEBUG_ARGS%
+set JVM_ARGS=%JAVA_ARGS%
if not "%ACTIVEMQ_CLUSTER_PROPS%"=="" set JVM_ARGS=%JVM_ARGS% %ACTIVEMQ_CLUSTER_PROPS%
+set JVM_ARGS=%JVM_ARGS% -classpath "%ACTIVEMQ_HOME%\lib\activemq-boot.jar"
+set JVM_ARGS=%JVM_ARGS% -Dactivemq.home="%ACTIVEMQ_HOME%"
+set JVM_ARGS=%JVM_ARGS% -Dactivemq.instance="%ACTIVEMQ_INSTANCE%"
+set JVM_ARGS=%JVM_ARGS% -Ddata.dir="%ACTIVEMQ_DATA_DIR%"
+set JVM_ARGS=%JVM_ARGS% -Djava.util.logging.manager="%ACTIVEMQ_LOG_MANAGER%"
+set JVM_ARGS=%JVM_ARGS% -Dlogging.configuration="%ACTIVEMQ_LOGGING_CONF%"
+if not "%DEBUG_ARGS%"=="" set JVM_ARGS=%JVM_ARGS% %DEBUG_ARGS%
-"%_JAVACMD%" %JVM_ARGS% org.apache.activemq.cli.ActiveMQ %*
+"%_JAVACMD%" %JVM_ARGS% org.apache.activemq.boot.ActiveMQ %*
:END
endlocal
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/run.bat
----------------------------------------------------------------------
diff --git a/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/run.bat b/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/run.bat
deleted file mode 100755
index a617b89..0000000
--- a/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/run.bat
+++ /dev/null
@@ -1,17 +0,0 @@
-rem Licensed to the Apache Software Foundation (ASF) under one
-rem or more contributor license agreements. See the NOTICE file
-rem distributed with this work for additional information
-rem regarding copyright ownership. The ASF licenses this file
-rem to you under the Apache License, Version 2.0 (the
-rem "License"); you may not use this file except in compliance
-rem with the License. You may obtain a copy of the License at
-rem
-rem http://www.apache.org/licenses/LICENSE-2.0
-rem
-rem Unless required by applicable law or agreed to in writing,
-rem software distributed under the License is distributed on an
-rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-rem KIND, either express or implied. See the License for the
-rem specific language governing permissions and limitations
-rem under the License.
-activemq.cmd run %*
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/run.sh
----------------------------------------------------------------------
diff --git a/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/run.sh b/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/run.sh
deleted file mode 100755
index 7235fd9..0000000
--- a/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/run.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-# 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.
-
-`dirname "$0"`/activemq run $@
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/stop.bat
----------------------------------------------------------------------
diff --git a/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/stop.bat b/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/stop.bat
deleted file mode 100755
index 653e7b3..0000000
--- a/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/stop.bat
+++ /dev/null
@@ -1,17 +0,0 @@
-rem Licensed to the Apache Software Foundation (ASF) under one
-rem or more contributor license agreements. See the NOTICE file
-rem distributed with this work for additional information
-rem regarding copyright ownership. The ASF licenses this file
-rem to you under the Apache License, Version 2.0 (the
-rem "License"); you may not use this file except in compliance
-rem with the License. You may obtain a copy of the License at
-rem
-rem http://www.apache.org/licenses/LICENSE-2.0
-rem
-rem Unless required by applicable law or agreed to in writing,
-rem software distributed under the License is distributed on an
-rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-rem KIND, either express or implied. See the License for the
-rem specific language governing permissions and limitations
-rem under the License.
-activemq.cmd stop %*
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/stop.sh
----------------------------------------------------------------------
diff --git a/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/stop.sh b/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/stop.sh
deleted file mode 100755
index fd4ead0..0000000
--- a/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/bin/stop.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-# 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.
-
-`dirname "$0"`/activemq stop $@
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/etc/activemq.profile.cmd
----------------------------------------------------------------------
diff --git a/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/etc/activemq.profile.cmd b/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/etc/activemq.profile.cmd
index 37144e7..77800c8 100644
--- a/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/etc/activemq.profile.cmd
+++ b/activemq-bootstrap/src/main/resources/org/apache/activemq/cli/commands/etc/activemq.profile.cmd
@@ -15,23 +15,13 @@ rem KIND, either express or implied. See the License for the
rem specific language governing permissions and limitations
rem under the License.
-set ACTIVEMQ_HOME='${activemq.home}'
-set ACTIVEMQ_BASE='${activemq.base}'
+set ACTIVEMQ_HOME=${activemq.home}
-rem Path to logging configuration file
-set ACTIVEMQ_LOGGING_CONF=file:%ACTIVEMQ_BASE%\etc\logging.properties
-
-rem Path to data directory
-set ACTIVEMQ_DATA_DIR=%ACTIVEMQ_BASE%\data
-
-rem Log manager class
-set ACTIVEMQ_LOG_MANAGER=org.jboss.logmanager.LogManager
-
-rem Cluster Properties: Used to pass arguments to ActiveMQ. These can be referenced in activemq-configuration.xml
+rem Cluster Properties: Used to pass arguments to ActiveMQ which can be referenced in activemq-configuration.xml
rem set ACTIVEMQ_CLUSTER_PROPS=-Dactivemq.remoting.default.port=61617 -Dactivemq.remoting.amqp.port=5673 -Dactivemq.remoting.stomp.port=61614 -Dactivemq.remoting.hornetq.port=5446
rem Java Opts
-set JAVA_ARGS=-Xmx1024m
+rem set JAVA_ARGS=-XX:+UseParallelGC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xms512M -Xmx1024M
rem Debug args: Uncomment to enable debug
rem set DEBUG_ARGS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/distribution/activemq/pom.xml
----------------------------------------------------------------------
diff --git a/distribution/activemq/pom.xml b/distribution/activemq/pom.xml
index a3ba77b..6cfe7d0 100644
--- a/distribution/activemq/pom.xml
+++ b/distribution/activemq/pom.xml
@@ -39,6 +39,11 @@
<!-- ActiveMQ artifacts -->
<dependency>
<groupId>org.apache.activemq</groupId>
+ <artifactId>activemq-boot</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.activemq</groupId>
<artifactId>activemq-server</artifactId>
<version>${project.version}</version>
</dependency>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/distribution/activemq/src/main/assembly/dep.xml
----------------------------------------------------------------------
diff --git a/distribution/activemq/src/main/assembly/dep.xml b/distribution/activemq/src/main/assembly/dep.xml
index 5d0b21a..c792469 100644
--- a/distribution/activemq/src/main/assembly/dep.xml
+++ b/distribution/activemq/src/main/assembly/dep.xml
@@ -26,9 +26,26 @@
<format>tar.gz</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
+
+
<dependencySets>
<dependencySet>
+ <directoryMode>755</directoryMode>
+ <fileMode>644</fileMode>
+ <outputDirectory>lib</outputDirectory>
+ <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
+ <unpack>false</unpack>
+ <useTransitiveDependencies>false</useTransitiveDependencies>
+ <includes>
+ <include>org.apache.activemq:activemq-boot</include>
+ </includes>
+ </dependencySet>
+
+ <dependencySet>
+ <directoryMode>755</directoryMode>
+ <fileMode>644</fileMode>
<includes>
+
<!-- modules -->
<include>org.apache.activemq:activemq-bootstrap</include>
<include>org.apache.activemq:activemq-commons</include>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/distribution/activemq/src/main/resources/bin/activemq
----------------------------------------------------------------------
diff --git a/distribution/activemq/src/main/resources/bin/activemq b/distribution/activemq/src/main/resources/bin/activemq
index e15d094..4b99fd6 100755
--- a/distribution/activemq/src/main/resources/bin/activemq
+++ b/distribution/activemq/src/main/resources/bin/activemq
@@ -44,6 +44,10 @@ if [ -z "$ACTIVEMQ_HOME" ] ; then
ACTIVEMQ_HOME=`cd "$ACTIVEMQ_HOME/.." && pwd`
fi
+# Set Defaults Properties
+JAVA_ARGS="-XX:+UseParallelGC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xms512M -Xmx1024M"
+CLASSPATH="$ACTIVEMQ_HOME/lib/activemq-boot.jar"
+
# OS specific support.
cygwin=false;
darwin=false;
@@ -53,10 +57,10 @@ case "`uname`" in
export OSTYPE
;;
Darwin*) darwin=true
- if [ -z "$JAVA_HOME" ] ; then
- JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
- fi
- ;;
+ if [ -z "$JAVA_HOME" ] ; then
+ JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
+ fi
+ ;;
esac
# For Cygwin, ensure paths are in UNIX format before anything is touched
@@ -65,8 +69,6 @@ if $cygwin ; then
ACTIVEMQ_HOME=`cygpath --unix "$ACTIVEMQ_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
- [ -n "$CLASSPATH" ] &&
- CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
if [ -z "$JAVACMD" ] ; then
@@ -91,12 +93,16 @@ if [ ! -x "$JAVACMD" ] ; then
exit 1
fi
-for i in `ls $ACTIVEMQ_HOME/lib/*.jar`; do
- CLASSPATH=$i:$CLASSPATH
-done
-# Set Defaults Properties
-JAVA_ARGS="-XX:+UseParallelGC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xms512M -Xmx1024M"
+if $cygwin ; then
+ JAVA_HOME=`cygpath --windows "$JAVA_HOME"`
+ ACTIVEMQ_HOME=`cygpath --windows "$ACTIVEMQ_HOME"`
+ CLASSPATH=`cygpath --windows "$CLASSPATH"`
+fi
-JAVA_ARGS="$JAVA_ARGS -Dactivemq.home=$ACTIVEMQ_HOME"
-exec "$JAVACMD" $JAVA_ARGS -classpath $CLASSPATH org.apache.activemq.cli.ActiveMQ $@
+exec "$JAVACMD" $JAVA_ARGS $ACTIVEMQ_CLUSTER_PROPS \
+ -classpath "$CLASSPATH" \
+ -Dactivemq.home="$ACTIVEMQ_HOME" \
+ -Djava.library.path="$ACTIVEMQ_HOME/bin/lib/linux-i686:$ACTIVEMQ_INSTANCE/bin/lib/linux-x86_64" \
+ $DEBUG_ARGS \
+ org.apache.activemq.boot.ActiveMQ $@
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/distribution/activemq/src/main/resources/bin/activemq.cmd
----------------------------------------------------------------------
diff --git a/distribution/activemq/src/main/resources/bin/activemq.cmd b/distribution/activemq/src/main/resources/bin/activemq.cmd
index d503a27..8ab6163 100755
--- a/distribution/activemq/src/main/resources/bin/activemq.cmd
+++ b/distribution/activemq/src/main/resources/bin/activemq.cmd
@@ -48,27 +48,16 @@ echo.
:RUN_JAVA
rem "Set Defaults."
-set JAVA_ARGS=-Xmx1024M
-set ACTIVEMQ_LOGGING_CONF="file:%ACTIVEMQ_HOME%\config\logging.properties"
-set ACTIVEMQ_DATA_DIR="%ACTIVEMQ_HOME%\data"
-set ACTIVEMQ_LOG_MANAGER=org.jboss.logmanager.LogManager
-
-rem "Load Config"
-if "%ACTIVEMQ_CONF%" == "" set ACTIVEMQ_CONF="%ACTIVEMQ_HOME%\bin\activemq.conf.bat"
-if exist "%ACTIVEMQ_CONF%" (
- call "%ACTIVEMQ_CONF%" %*
-) else (
- echo Config file not found "%ACTIVEMQ_CONF%"
-)
+set JAVA_ARGS=-XX:+UseParallelGC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xms512M -Xmx1024M
rem "Create full JVM Args"
-set JVM_ARGS=%JAVA_ARGS% -classpath %ACTIVEMQ_HOME%\lib\* -Dactivemq.home=%ACTIVEMQ_HOME% -Ddata.dir=%ACTIVEMQ_DATA_DIR% -Djava.util.logging.manager=%ACTIVEMQ_LOG_MANAGER% -Dlogging.configuration=%ACTIVEMQ_LOGGING_CONF% -Djava.library.path=%ACTIVEMQ_HOME%\lib\
-
-rem "Set Debug & Cluster props"
-if not "%DEBUG_ARGS%"=="" set JVM_ARGS=%JVM_ARGS% %DEBUG_ARGS%
+set JVM_ARGS=%JAVA_ARGS%
if not "%ACTIVEMQ_CLUSTER_PROPS%"=="" set JVM_ARGS=%JVM_ARGS% %ACTIVEMQ_CLUSTER_PROPS%
+set JVM_ARGS=%JVM_ARGS% -classpath "%ACTIVEMQ_HOME%\lib\activemq-boot.jar"
+set JVM_ARGS=%JVM_ARGS% -Dactivemq.home="%ACTIVEMQ_HOME%"
+if not "%DEBUG_ARGS%"=="" set JVM_ARGS=%JVM_ARGS% %DEBUG_ARGS%
-"%_JAVACMD%" %JVM_ARGS% org.apache.activemq.cli.ActiveMQ %*
+"%_JAVACMD%" %JVM_ARGS% org.apache.activemq.boot.ActiveMQ %*
:END
endlocal
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/3b82dc52/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index c1e5b1b..0f3680c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,6 +31,7 @@
<modules>
<module>activemq-protocols</module>
<module>activemq-dto</module>
+ <module>activemq-boot</module>
</modules>
<name>ActiveMQ6 Parent</name>