Repository: karaf
Updated Branches:
  refs/heads/master 1a4f293fb -> bd8093cb5


[KARAF-3147] Remove the KarafMBeanServerBuilder and refactore the guard 
interception


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/bd8093cb
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/bd8093cb
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/bd8093cb

Branch: refs/heads/master
Commit: bd8093cb572ff6dd1060e63f7dbfe0af50e76b4b
Parents: 1a4f293
Author: Jean-Baptiste Onofré <[email protected]>
Authored: Sun May 10 08:07:04 2015 +0200
Committer: Jean-Baptiste Onofré <[email protected]>
Committed: Sun May 10 08:07:04 2015 +0200

----------------------------------------------------------------------
 .../filtered-resources/resources/bin/instance   |   4 +-
 .../resources/bin/instance.bat                  |   3 +-
 .../main/filtered-resources/resources/bin/karaf |   2 +-
 .../filtered-resources/resources/bin/karaf.bat  |   2 +-
 .../resources/etc/config.properties             |   4 +-
 .../standard/src/main/feature/feature.xml       |   3 -
 .../core/internal/InstanceServiceImpl.java      |   3 -
 .../apache/karaf/itests/JMXSecurityTest.java    |   1 -
 .../apache/karaf/itests/KarafTestSupport.java   |   2 +-
 management/boot/NOTICE                          |  71 -------
 management/boot/pom.xml                         |  64 ------
 .../boot/KarafMBeanServerBuilder.java           |  86 --------
 .../src/main/resources/OSGI-INF/bundle.info     |  35 ---
 .../boot/KarafMBeanServerBuilderTest.java       | 179 ----------------
 management/pom.xml                              |   1 -
 management/server/pom.xml                       |   5 -
 .../management/ConnectorServerFactory.java      |  16 +-
 .../karaf/management/KarafMBeanServerGuard.java |   9 -
 .../karaf/management/internal/Activator.java    |   3 +-
 .../internal/JMXSecurityMBeanImpl.java          |  13 +-
 .../internal/MBeanInvocationHandler.java        |  66 ++++++
 .../internal/JMXSecurityMBeanImplTestCase.java  | 212 ++++++++-----------
 .../src/main/asciidoc/users-guide/wrapper.adoc  |  16 +-
 manual/src/main/webapp/users-guide/wrapper.conf |  16 +-
 pom.xml                                         |   5 -
 .../wrapper/internal/unix/karaf-wrapper.conf    |   9 +-
 .../wrapper/internal/windows/karaf-wrapper.conf |   9 +-
 .../internal/windows64/karaf-wrapper.conf       |   9 +-
 28 files changed, 212 insertions(+), 636 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/assemblies/features/base/src/main/filtered-resources/resources/bin/instance
----------------------------------------------------------------------
diff --git 
a/assemblies/features/base/src/main/filtered-resources/resources/bin/instance 
b/assemblies/features/base/src/main/filtered-resources/resources/bin/instance
index abb36eb..1084042 100755
--- 
a/assemblies/features/base/src/main/filtered-resources/resources/bin/instance
+++ 
b/assemblies/features/base/src/main/filtered-resources/resources/bin/instance
@@ -281,8 +281,6 @@ setupDefaults() {
     
CLASSPATH="$CLASSPATH:$KARAF_HOME/system/org/ops4j/pax/logging/pax-logging-api/${pax.logging.version}/pax-logging-api-${pax.logging.version}.jar"
     
CLASSPATH="$CLASSPATH:$KARAF_HOME/system/jline/jline/${jline.version}/jline-${jline.version}.jar"
 
-    CLASSPATH="$CLASSPATH:$KARAF_HOME/lib/karaf-jmx-boot.jar"
-
     DEFAULT_JAVA_DEBUG_PORT="5005"
     if [ "x$JAVA_DEBUG_PORT" = "x" ]; then
         JAVA_DEBUG_PORT="$DEFAULT_JAVA_DEBUG_PORT"
@@ -342,7 +340,7 @@ run() {
         CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
     fi
 
-    exec "$JAVA" $JAVA_OPTS -Dkaraf.instances="${KARAF_HOME}/instances" 
-Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Dkaraf.etc="$KARAF_ETC" 
-Djava.io.tmpdir="$KARAF_DATA/tmp" 
-Djava.util.logging.config.file="$KARAF_BASE/etc/java.util.logging.properties" 
-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder
 $KARAF_OPTS $OPTS -classpath "$CLASSPATH" 
org.apache.karaf.instance.main.Execute "$@"
+    exec "$JAVA" $JAVA_OPTS -Dkaraf.instances="${KARAF_HOME}/instances" 
-Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Dkaraf.etc="$KARAF_ETC" 
-Djava.io.tmpdir="$KARAF_DATA/tmp" 
-Djava.util.logging.config.file="$KARAF_BASE/etc/java.util.logging.properties" 
$KARAF_OPTS $OPTS -classpath "$CLASSPATH" 
org.apache.karaf.instance.main.Execute "$@"
 }
 
 main() {

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/assemblies/features/base/src/main/filtered-resources/resources/bin/instance.bat
----------------------------------------------------------------------
diff --git 
a/assemblies/features/base/src/main/filtered-resources/resources/bin/instance.bat
 
b/assemblies/features/base/src/main/filtered-resources/resources/bin/instance.bat
index ba25165..dcaa10f 100644
--- 
a/assemblies/features/base/src/main/filtered-resources/resources/bin/instance.bat
+++ 
b/assemblies/features/base/src/main/filtered-resources/resources/bin/instance.bat
@@ -143,13 +143,12 @@ set 
CLASSPATH=%KARAF_HOME%\system\org\apache\karaf\instance\org.apache.karaf.ins
 set 
CLASSPATH=%CLASSPATH%;%KARAF_HOME%\system\org\apache\karaf\shell\org.apache.karaf.shell.core\${project.version}\org.apache.karaf.shell.core-${project.version}.jar
 set 
CLASSPATH=%CLASSPATH%;%KARAF_HOME%\system\org\ops4j\pax\logging\pax-logging-api\${pax.logging.version}\pax-logging-api-${pax.logging.version}.jar
 set 
CLASSPATH=%CLASSPATH%;%KARAF_HOME%\system\jline\jline\${jline.version}\jline-${jline.version}.jar
-set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\lib\karaf-jmx-boot.jar
 
 :EXECUTE
     if "%SHIFT%" == "true" SET ARGS=%2 %3 %4 %5 %6 %7 %8
     if not "%SHIFT%" == "true" SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8    
     rem Execute the Java Virtual Machine
-    "%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" 
-Dkaraf.instances="%KARAF_HOME%\instances" -Dkaraf.home="%KARAF_HOME%" 
-Dkaraf.base="%KARAF_BASE%" -Dkaraf.etc="%KARAF_ETC%" 
-Djava.io.tmpdir="%KARAF_DATA%\tmp" 
-Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" 
-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder
 %KARAF_OPTS% org.apache.karaf.instance.main.Execute %ARGS%
+    "%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" 
-Dkaraf.instances="%KARAF_HOME%\instances" -Dkaraf.home="%KARAF_HOME%" 
-Dkaraf.base="%KARAF_BASE%" -Dkaraf.etc="%KARAF_ETC%" 
-Djava.io.tmpdir="%KARAF_DATA%\tmp" 
-Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" 
%KARAF_OPTS% org.apache.karaf.instance.main.Execute %ARGS%
 
 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf
----------------------------------------------------------------------
diff --git 
a/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf 
b/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf
index 30fd878..3318101 100755
--- a/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf
+++ b/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf
@@ -415,7 +415,7 @@ run() {
     fi
     cd "$KARAF_BASE"
 
-    exec "$JAVA" $JAVA_OPTS -Djava.endorsed.dirs="${JAVA_ENDORSED_DIRS}" 
-Djava.ext.dirs="${JAVA_EXT_DIRS}" -Dkaraf.instances="${KARAF_HOME}/instances" 
-Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" 
-Dkaraf.data="$KARAF_DATA" -Dkaraf.etc="$KARAF_ETC" 
-Djava.io.tmpdir="$KARAF_DATA/tmp" 
-Djava.util.logging.config.file="$KARAF_BASE/etc/java.util.logging.properties" 
-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder
 $KARAF_OPTS $OPTS -classpath "$CLASSPATH" $MAIN "$@"
+    exec "$JAVA" $JAVA_OPTS -Djava.endorsed.dirs="${JAVA_ENDORSED_DIRS}" 
-Djava.ext.dirs="${JAVA_EXT_DIRS}" -Dkaraf.instances="${KARAF_HOME}/instances" 
-Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" 
-Dkaraf.data="$KARAF_DATA" -Dkaraf.etc="$KARAF_ETC" 
-Djava.io.tmpdir="$KARAF_DATA/tmp" 
-Djava.util.logging.config.file="$KARAF_BASE/etc/java.util.logging.properties" 
$KARAF_OPTS $OPTS -classpath "$CLASSPATH" $MAIN "$@"
 }
 
 main() {

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf.bat
----------------------------------------------------------------------
diff --git 
a/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf.bat 
b/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf.bat
index 1e21cf3..3645594 100644
--- 
a/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf.bat
+++ 
b/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf.bat
@@ -327,7 +327,7 @@ if "%KARAF_PROFILER%" == "" goto :RUN
     SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8
     rem Execute the Java Virtual Machine
     cd "%KARAF_BASE%"
-    "%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" 
-Djava.endorsed.dirs="%JAVA_HOME%\jre\lib\endorsed;%JAVA_HOME%\lib\endorsed;%KARAF_HOME%\lib\endorsed"
 
-Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext;%JAVA_HOME%\lib\ext;%KARAF_HOME%\lib\ext"
 -Dkaraf.instances="%KARAF_HOME%\instances" -Dkaraf.home="%KARAF_HOME%" 
-Dkaraf.base="%KARAF_BASE%" -Dkaraf.etc="%KARAF_ETC%" 
-Djava.io.tmpdir="%KARAF_DATA%\tmp" -Dkaraf.data="%KARAF_DATA%" 
-Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" 
-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder
 %KARAF_OPTS% %MAIN% %ARGS%
+    "%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" 
-Djava.endorsed.dirs="%JAVA_HOME%\jre\lib\endorsed;%JAVA_HOME%\lib\endorsed;%KARAF_HOME%\lib\endorsed"
 
-Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext;%JAVA_HOME%\lib\ext;%KARAF_HOME%\lib\ext"
 -Dkaraf.instances="%KARAF_HOME%\instances" -Dkaraf.home="%KARAF_HOME%" 
-Dkaraf.base="%KARAF_BASE%" -Dkaraf.etc="%KARAF_ETC%" 
-Djava.io.tmpdir="%KARAF_DATA%\tmp" -Dkaraf.data="%KARAF_DATA%" 
-Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" 
%KARAF_OPTS% %MAIN% %ARGS%
 
 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/assemblies/features/base/src/main/filtered-resources/resources/etc/config.properties
----------------------------------------------------------------------
diff --git 
a/assemblies/features/base/src/main/filtered-resources/resources/etc/config.properties
 
b/assemblies/features/base/src/main/filtered-resources/resources/etc/config.properties
index ff712b0..aebf6b7 100644
--- 
a/assemblies/features/base/src/main/filtered-resources/resources/etc/config.properties
+++ 
b/assemblies/features/base/src/main/filtered-resources/resources/etc/config.properties
@@ -119,13 +119,13 @@ 
org.osgi.framework.bootdelegation=sun.*,com.sun.*,javax.transaction,javax.transa
 # in order to use Karaf with jvisualvm, the org.osgi.framework.bootdelegation 
property has to contain the org.netbeans.lib.profiler.server package
 # and, so, it should look like:
 #
-# 
org.osgi.framework.bootdelegation=org.apache.karaf.jaas.boot,org.apache.karaf.jaas.boot.principal,org.apache.karaf.management.boot,sun.*,com.sun.*,javax.transaction,javax.transaction.*,javax.xml.crypto,javax.xml.crypto.*,org.apache.xerces.jaxp.datatype,org.apache.xerces.stax,org.apache.xerces.parsers,org.apache.xerces.jaxp,org.apache.xerces.jaxp.validation,org.apache.xerces.dom,org.netbeans.lib.profiler.server
+# 
org.osgi.framework.bootdelegation=org.apache.karaf.jaas.boot,org.apache.karaf.jaas.boot.principal,sun.*,com.sun.*,javax.transaction,javax.transaction.*,javax.xml.crypto,javax.xml.crypto.*,org.apache.xerces.jaxp.datatype,org.apache.xerces.stax,org.apache.xerces.parsers,org.apache.xerces.jaxp,org.apache.xerces.jaxp.validation,org.apache.xerces.dom,org.netbeans.lib.profiler.server
 #
 # YourKit support
 # in order to use Karaf with YourKit, the org.osgi.framework.bootdelegation 
property has to contain the com.yourkit.* packages
 # and, so, it should look like:
 #
-# 
org.osgi.framework.bootdelegation=org.apache.karaf.jaas.boot,org.apache.karaf.jaas.boot.principal,org.apache.karaf.management.boot,sun.*,com.sun.*,javax.transaction,javax.transaction.*,javax.xml.crypto,javax.xml.crypto.*,org.apache.xerces.jaxp.datatype,org.apache.xerces.stax,org.apache.xerces.parsers,org.apache.xerces.jaxp,org.apache.xerces.jaxp.validation,org.apache.xerces.dom,com.yourkit.*
+# 
org.osgi.framework.bootdelegation=org.apache.karaf.jaas.boot,org.apache.karaf.jaas.boot.principal,sun.*,com.sun.*,javax.transaction,javax.transaction.*,javax.xml.crypto,javax.xml.crypto.*,org.apache.xerces.jaxp.datatype,org.apache.xerces.stax,org.apache.xerces.parsers,org.apache.xerces.jaxp,org.apache.xerces.jaxp.validation,org.apache.xerces.dom,com.yourkit.*
 #
 
 #

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/assemblies/features/standard/src/main/feature/feature.xml
----------------------------------------------------------------------
diff --git a/assemblies/features/standard/src/main/feature/feature.xml 
b/assemblies/features/standard/src/main/feature/feature.xml
index c9b6e6d..7c66305 100644
--- a/assemblies/features/standard/src/main/feature/feature.xml
+++ b/assemblies/features/standard/src/main/feature/feature.xml
@@ -488,9 +488,6 @@
             <bundle 
start-level="30">mvn:org.apache.aries.jmx/org.apache.aries.jmx.blueprint.api/${aries.jmx.blueprint.api.version}</bundle>
             <bundle 
start-level="30">mvn:org.apache.aries.jmx/org.apache.aries.jmx.blueprint.core/${aries.jmx.blueprint.core.version}</bundle>
         </conditional>
-        <library export="true" delegate="true" type="boot">
-            
mvn:org.apache.karaf.management/org.apache.karaf.management.boot/${project.version}
-        </library>
     </feature>
 
     <feature name="scheduler" description="Provide a scheduler service in 
Karaf to fire events" version="${project.version}">

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/instance/src/main/java/org/apache/karaf/instance/core/internal/InstanceServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/instance/src/main/java/org/apache/karaf/instance/core/internal/InstanceServiceImpl.java
 
b/instance/src/main/java/org/apache/karaf/instance/core/internal/InstanceServiceImpl.java
index 6831c55..e23f4e8 100644
--- 
a/instance/src/main/java/org/apache/karaf/instance/core/internal/InstanceServiceImpl.java
+++ 
b/instance/src/main/java/org/apache/karaf/instance/core/internal/InstanceServiceImpl.java
@@ -486,14 +486,12 @@ public class InstanceServiceImpl implements 
InstanceService {
                 + "\" " + opts
                 + " " + karafOpts
                 + " -Djava.util.logging.config.file=\"" + new File(location, 
"etc/java.util.logging.properties").getCanonicalPath() + "\""
-                + " 
-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder"
                 + " -Djava.endorsed.dirs=\"" + new File(new File(new 
File(System.getProperty("java.home"), "jre"), "lib"), "endorsed") + 
System.getProperty("path.separator") + new File(new 
File(System.getProperty("java.home"), "lib"), "endorsed") + 
System.getProperty("path.separator") + new File(libDir, 
"endorsed").getCanonicalPath() + "\""
                 + " -Djava.ext.dirs=\"" + new File(new File(new 
File(System.getProperty("java.home"), "jre"), "lib"), "ext") + 
System.getProperty("path.separator") + new File(new 
File(System.getProperty("java.home"), "lib"), "ext") + 
System.getProperty("path.separator") + new File(libDir, 
"ext").getCanonicalPath() + "\""
                 + " -Dkaraf.home=\"" + System.getProperty("karaf.home") + "\""
                 + " -Dkaraf.base=\"" + new File(location).getCanonicalPath() + 
"\""
                 + " -Dkaraf.data=\"" + new File(new 
File(location).getCanonicalPath(), "data") + "\""
                 + " -Dkaraf.etc=\"" + new File(new 
File(location).getCanonicalPath(), "etc") + "\""
-                + " 
-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder"
                 + " -Dkaraf.startLocalConsole=false"
                 + " -Dkaraf.startRemoteShell=true"
                 + " -classpath \"" + classpath.toString() + "\""
@@ -576,7 +574,6 @@ public class InstanceServiceImpl implements InstanceService 
{
                             + " -Dkaraf.data=\"" + new File(new 
File(location).getCanonicalPath(), "data") + "\""
                             + " -Dkaraf.etc=\"" + new File(new 
File(location).getCanonicalPath(), "etc") + "\""
                             + " -Dkaraf.instances=\"" + 
System.getProperty("karaf.instances") + "\""
-                            + " 
-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder"
                             + " -classpath \"" + classpath.toString() + "\""
                             + " " + Execute.class.getName()
                             + " restart --java-opts \"" + javaOpts + "\" " + 
name;

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/itests/src/test/java/org/apache/karaf/itests/JMXSecurityTest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/JMXSecurityTest.java 
b/itests/src/test/java/org/apache/karaf/itests/JMXSecurityTest.java
index 009c650..9825592 100644
--- a/itests/src/test/java/org/apache/karaf/itests/JMXSecurityTest.java
+++ b/itests/src/test/java/org/apache/karaf/itests/JMXSecurityTest.java
@@ -69,7 +69,6 @@ public class JMXSecurityTest extends KarafTestSupport {
 
         // Add some extra options used by this test...
         options.addAll(Arrays.asList(
-            new 
VMOption("-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder"),
             
editConfigurationFilePut("etc/jmx.acl.org.apache.karaf.service.cfg", 
"getServices()", "admin"),
             
editConfigurationFilePut("etc/jmx.acl.org.apache.karaf.service.cfg", 
"getServices(boolean)", "viewer"),
             
editConfigurationFilePut("etc/jmx.acl.org.apache.karaf.service.cfg", 
"getServices(long)", "manager"),

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/itests/src/test/java/org/apache/karaf/itests/KarafTestSupport.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/KarafTestSupport.java 
b/itests/src/test/java/org/apache/karaf/itests/KarafTestSupport.java
index ffea63d..4db1af7 100644
--- a/itests/src/test/java/org/apache/karaf/itests/KarafTestSupport.java
+++ b/itests/src/test/java/org/apache/karaf/itests/KarafTestSupport.java
@@ -129,7 +129,7 @@ public class KarafTestSupport {
             // KarafDistributionOption.debugConfiguration("8889", true),
             
karafDistributionConfiguration().frameworkUrl(karafUrl).name("Apache 
Karaf").unpackDirectory(new File("target/exam")),
             // enable JMX RBAC security, thanks to the KarafMBeanServerBuilder
-            configureSecurity().enableKarafMBeanServerBuilder(),
+            configureSecurity().disableKarafMBeanServerBuilder(),
             keepRuntimeFolder(),
                                logLevel(LogLevel.INFO),
             replaceConfigurationFile("etc/org.ops4j.pax.logging.cfg", 
getConfigFile("/etc/org.ops4j.pax.logging.cfg")),

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/management/boot/NOTICE
----------------------------------------------------------------------
diff --git a/management/boot/NOTICE b/management/boot/NOTICE
deleted file mode 100644
index b70f1f9..0000000
--- a/management/boot/NOTICE
+++ /dev/null
@@ -1,71 +0,0 @@
-Apache Karaf
-Copyright 2010-2014 The Apache Software Foundation
-
-
-I. Included Software
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2010).
-Licensed under the Apache License 2.0.
-
-This product includes software developed at
-OW2 (http://www.ow2.org/).
-Licensed under the BSD License.
-
-This product includes software developed at
-OPS4J (http://www.ops4j.org/).
-Licensed under the Apache License 2.0.
-
-This product includes software developed at
-Eclipse Foundation (http://www.eclipse.org/).
-Licensed under the EPL.
-
-This product includes software written by
-Antony Lesuisse.
-Licensed under Public Domain.
-
-
-II. Used Software
-
-This product uses software developed at
-FUSE Source (http://www.fusesource.org/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-AOP Alliance (http://aopalliance.sourceforge.net/).
-Licensed under the Public Domain.
-
-This product uses software developed at
-Tanuki Software (http://www.tanukisoftware.com/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-Jasypt (http://jasypt.sourceforge.net/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-JLine (http://jline.sourceforge.net).
-Licensed under the BSD License.
-
-This product uses software developed at
-SLF4J (http://www.slf4j.org/).
-Licensed under the MIT License.
-
-This product uses software developed at
-SpringSource (http://www.springsource.org/).
-Licensed under the Apache License 2.0.
-
-This product includes software from http://www.json.org.
-Copyright (c) 2002 JSON.org
-
-
-III. License Summary
-- Apache License 2.0
-- BSD License
-- EPL License
-- MIT License

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/management/boot/pom.xml
----------------------------------------------------------------------
diff --git a/management/boot/pom.xml b/management/boot/pom.xml
deleted file mode 100644
index 5e3ef43..0000000
--- a/management/boot/pom.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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/xsd/maven-4.0.0.xsd";>
-
-    <!--
-
-        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.
-    -->
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.karaf.management</groupId>
-        <artifactId>management</artifactId>
-        <version>4.0.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>org.apache.karaf.management.boot</artifactId>
-    <packaging>bundle</packaging>
-    <name>Apache Karaf :: Management :: Boot</name>
-    <description>Provides the JMX classes loaded at boot of the 
process.</description>
-
-    <properties>
-        
<appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
-    </properties>
-
-    <build>
-        <resources>
-            <resource>
-                <directory>${project.basedir}/src/main/resources</directory>
-                <includes>
-                    <include>**/*</include>
-                </includes>
-            </resource>
-            <resource>
-                <directory>${project.basedir}/src/main/resources</directory>
-                <filtering>true</filtering>
-                <includes>
-                    <include>**/*.info</include>
-                </includes>
-            </resource>
-        </resources>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/management/boot/src/main/java/org/apache/karaf/management/boot/KarafMBeanServerBuilder.java
----------------------------------------------------------------------
diff --git 
a/management/boot/src/main/java/org/apache/karaf/management/boot/KarafMBeanServerBuilder.java
 
b/management/boot/src/main/java/org/apache/karaf/management/boot/KarafMBeanServerBuilder.java
deleted file mode 100644
index 9c5e014..0000000
--- 
a/management/boot/src/main/java/org/apache/karaf/management/boot/KarafMBeanServerBuilder.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * 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.karaf.management.boot;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import javax.management.MBeanServer;
-import javax.management.MBeanServerBuilder;
-import javax.management.MBeanServerDelegate;
-
-public class KarafMBeanServerBuilder extends MBeanServerBuilder {
-
-    private static volatile InvocationHandler guard;
-
-    public static InvocationHandler getGuard() {
-        return guard;
-    }
-
-    public static void setGuard(InvocationHandler guardHandler) {
-        guard = guardHandler;
-    }
-
-    @Override
-    public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, 
MBeanServerDelegate delegate) {
-        InvocationHandler handler = new 
MBeanInvocationHandler(super.newMBeanServer(defaultDomain, outer, delegate));
-        return (MBeanServer) 
Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{ 
MBeanServer.class }, handler);
-    }
-
-    private static final class MBeanInvocationHandler implements 
InvocationHandler {
-
-        private final MBeanServer wrapped;
-        private final List<String> guarded = 
Collections.unmodifiableList(Arrays.asList("invoke", "getAttribute", 
"getAttributes", "setAttribute", "setAttributes"));
-
-        MBeanInvocationHandler(MBeanServer mbeanServer) {
-            wrapped = mbeanServer;
-        }
-
-        public Object invoke(Object proxy, Method method, Object[] args) 
throws Throwable {
-            if (guarded.contains(method.getName())) {
-                if (KarafMBeanServerBuilder.guard == null) {
-                    throw new IllegalStateException("KarafMBeanServerBuilder 
not initialized");
-                }
-                guard.invoke(proxy, method, args);
-            }
-            if (method.getName().equals("equals")
-                    && method.getParameterTypes().length == 1
-                    && method.getParameterTypes()[0] == Object.class) {
-                Object target = args[0];
-                if (target != null && Proxy.isProxyClass(target.getClass())) {
-                    InvocationHandler handler = 
Proxy.getInvocationHandler(target);
-                    if (handler instanceof MBeanInvocationHandler) {
-                        args[0] = ((MBeanInvocationHandler) handler).wrapped;
-                    }
-                }
-            } else if (method.getName().equals("finalize") && 
method.getParameterTypes().length == 0) {
-                // special case finalize, don't route through to delegate 
because that will get its own call
-                return null;
-            }
-            try {
-                return method.invoke(wrapped, args);
-            } catch (InvocationTargetException ite) {
-                throw ite.getCause();
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/management/boot/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/management/boot/src/main/resources/OSGI-INF/bundle.info 
b/management/boot/src/main/resources/OSGI-INF/bundle.info
deleted file mode 100644
index cd40f08..0000000
--- a/management/boot/src/main/resources/OSGI-INF/bundle.info
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-#
-#    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.
-#
-#
-h1. SYNOPSIS
-    ${project.name}
-
-    ${project.description}
-
-    Maven URL:
-        
\u001B[33mmvn:${project.groupId}/${project.artifactId}/${project.version}\u001B[0m
-
-h1. DESCRIPTION
-    This bundle provides JMX classes loaded during Karaf boot process.
-
-    In particular it provides the KarafMBeanServerBuilder.
-
-    The KarafMBeanServerBuilder builds a special MBeanServer that allows 
role-based authorization
-    for JMX access.
-    This class must be loadable from at startup by the JVM so this module is 
added to classpath, the
-    the boot delegation class path and made available via the system bundle.

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/management/boot/src/test/java/org/apache/karaf/management/boot/KarafMBeanServerBuilderTest.java
----------------------------------------------------------------------
diff --git 
a/management/boot/src/test/java/org/apache/karaf/management/boot/KarafMBeanServerBuilderTest.java
 
b/management/boot/src/test/java/org/apache/karaf/management/boot/KarafMBeanServerBuilderTest.java
deleted file mode 100644
index b6274e6..0000000
--- 
a/management/boot/src/test/java/org/apache/karaf/management/boot/KarafMBeanServerBuilderTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * 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.karaf.management.boot;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.management.AttributeList;
-import javax.management.InstanceNotFoundException;
-import javax.management.MBeanServer;
-import javax.management.NotCompliantMBeanException;
-import javax.management.ObjectName;
-
-import junit.framework.TestCase;
-
-import org.easymock.EasyMock;
-
-
-public class KarafMBeanServerBuilderTest extends TestCase {
-
-    public void testMBeanServerBuilderBlocking() throws Exception {
-        MBeanServer mbs = EasyMock.createMock(MBeanServer.class);
-        EasyMock.replay(mbs);
-
-        KarafMBeanServerBuilder mbsb = new KarafMBeanServerBuilder();
-        MBeanServer kmbs = mbsb.newMBeanServer("test", mbs, null);
-
-        final List<Object> handlerArgs = new ArrayList<Object>();
-        InvocationHandler guard = new InvocationHandler() {
-            @Override
-            public Object invoke(Object proxy, Method method, Object[] args) 
throws Throwable {
-                handlerArgs.add(proxy);
-                handlerArgs.add(method);
-                handlerArgs.add(args);
-
-                throw new SecurityException("Access Denied");
-            }
-        };
-
-        KarafMBeanServerBuilder.setGuard(guard);
-
-        assertEquals("Precondition", 0, handlerArgs.size());
-
-        ObjectName on = ObjectName.getInstance("foo.bar:type=TestObject");
-
-        try {
-            // obtain a JMX attribute
-            kmbs.getAttribute(on, "myAttr");
-            fail("Should have access denied");
-        } catch (SecurityException se) {
-            // good
-            assertEquals(3, handlerArgs.size());
-            assertSame(kmbs, handlerArgs.get(0));
-            assertEquals("getAttribute", ((Method) 
handlerArgs.get(1)).getName());
-            Object[] args = (Object[]) handlerArgs.get(2);
-            assertEquals(2, args.length);
-            assertSame(on, args[0]);
-            assertEquals("myAttr", args[1]);
-        }
-
-        try {
-            // obtain a number of JMX attributes
-            kmbs.getAttributes(on, new String[]{"foo", "bar"});
-            fail("Should have access denied");
-        } catch (SecurityException se) {
-            // good
-        }
-
-        try {
-            // set a JMX attribute
-            kmbs.getAttributes(on, new String[]{ "goo", "far" });
-            fail("Should have access denied");
-        } catch (SecurityException se) {
-            // good
-        }
-
-        try {
-            // set a number of JMX attributes
-            kmbs.setAttributes(on, new AttributeList());
-            fail("Should have access denied");
-        } catch (SecurityException se) {
-            // good
-        }
-
-        try {
-            // mimic a JMX method invocation
-            kmbs.setAttributes(on, new AttributeList());
-            fail("Should have access denied");
-        } catch (SecurityException se) {
-            // good
-        }
-
-        // try some MBeanServer operations that are not guarded
-        assertTrue(kmbs.getDomains().length > 0);
-        assertTrue(kmbs.getMBeanCount() > 0);
-        assertTrue(kmbs.getDefaultDomain().length() > 0);
-    }
-
-    public void testMBeanServerBuilderNonBlocking() throws Exception {
-        MBeanServer mbs = EasyMock.createMock(MBeanServer.class);
-        EasyMock.replay(mbs);
-
-        KarafMBeanServerBuilder mbsb = new KarafMBeanServerBuilder();
-        MBeanServer kmbs = mbsb.newMBeanServer("test", mbs, null);
-
-        final List<Object> handlerArgs = new ArrayList<Object>();
-        InvocationHandler guard = new InvocationHandler() {
-            @Override
-            public Object invoke(Object proxy, Method method, Object[] args) 
throws Throwable {
-                handlerArgs.add(proxy);
-                handlerArgs.add(method);
-                handlerArgs.add(args);
-                return null;
-            }
-        };
-
-        KarafMBeanServerBuilder.setGuard(guard);
-
-        assertEquals("Precondition", 0, handlerArgs.size());
-
-        ObjectName on = ObjectName.getInstance("foo.bar:type=TestObject");
-
-        try {
-            kmbs.getAttribute(on, "myAttr");
-        } catch (Exception e) {
-            Throwable th = getInnermostException(e);
-            assertTrue("Expected exception as the object in question is not 
registered with the MBeanServer", th instanceof InstanceNotFoundException);
-            // good
-            assertEquals(3, handlerArgs.size());
-            assertSame(kmbs, handlerArgs.get(0));
-            assertEquals("getAttribute", ((Method) 
handlerArgs.get(1)).getName());
-            Object[] args = (Object[]) handlerArgs.get(2);
-            assertEquals(2, args.length);
-            assertSame(on, args[0]);
-            assertEquals("myAttr", args[1]);
-        }
-    }
-
-    public void testMBeanServerThrowsException() throws Exception {
-        MBeanServer mbs = EasyMock.createMock(MBeanServer.class);
-        EasyMock.replay(mbs);
-
-        KarafMBeanServerBuilder mbsb = new KarafMBeanServerBuilder();
-        MBeanServer kmbs = mbsb.newMBeanServer("test", mbs, null);
-
-        try {
-            kmbs.registerMBean("Foo", 
ObjectName.getInstance("foo.bar:type=TestObject"));
-        } catch (NotCompliantMBeanException ncme) {
-            // good
-            return;
-        }
-        fail("Should have thrown a NotCompliantMBeanException");
-    }
-
-    private Throwable getInnermostException(Throwable th) {
-        if (th.getCause() != null) {
-            return getInnermostException(th.getCause());
-        } else {
-            return th;
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/management/pom.xml
----------------------------------------------------------------------
diff --git a/management/pom.xml b/management/pom.xml
index 941eaab..3f1d34e 100644
--- a/management/pom.xml
+++ b/management/pom.xml
@@ -34,7 +34,6 @@
     <name>Apache Karaf :: Management</name>
 
     <modules>
-        <module>boot</module>
         <module>server</module>
     </modules>
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/management/server/pom.xml
----------------------------------------------------------------------
diff --git a/management/server/pom.xml b/management/server/pom.xml
index 02778d3..09b926d 100644
--- a/management/server/pom.xml
+++ b/management/server/pom.xml
@@ -60,11 +60,6 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>org.apache.karaf.management</groupId>
-            <artifactId>org.apache.karaf.management.boot</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
             <groupId>org.apache.karaf.service</groupId>
             <artifactId>org.apache.karaf.service.guard</artifactId>
             <scope>provided</scope>

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
----------------------------------------------------------------------
diff --git 
a/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
 
b/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
index 2897d67..0e746b5 100644
--- 
a/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
+++ 
b/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
@@ -17,8 +17,10 @@
 package org.apache.karaf.management;
 
 import org.apache.karaf.jaas.config.KeystoreManager;
+import org.apache.karaf.management.internal.MBeanInvocationHandler;
 
 import java.io.IOException;
+import java.lang.reflect.Proxy;
 import java.net.BindException;
 import java.net.InetAddress;
 import java.net.ServerSocket;
@@ -45,6 +47,7 @@ public class ConnectorServerFactory {
     private enum AuthenticatorType {NONE, PASSWORD, CERTIFICATE};
 
     private MBeanServer server;
+    private KarafMBeanServerGuard guard;
     private String serviceUrl;
     private String rmiServerHost;
     private Map environment;
@@ -71,6 +74,14 @@ public class ConnectorServerFactory {
         this.server = server;
     }
 
+    public KarafMBeanServerGuard getGuard() {
+        return guard;
+    }
+
+    public void setGuard(KarafMBeanServerGuard guard) {
+        this.guard = guard;
+    }
+
     public String getServiceUrl() {
         return serviceUrl;
     }
@@ -231,7 +242,10 @@ public class ConnectorServerFactory {
             this.environment.remove( "jmx.remote.authenticator" );
         }
 
-        this.connectorServer = 
JMXConnectorServerFactory.newJMXConnectorServer(url, this.environment, 
this.server);
+        MBeanInvocationHandler handler = new MBeanInvocationHandler(server, 
guard);
+        MBeanServer guardedServer = (MBeanServer) 
Proxy.newProxyInstance(server.getClass().getClassLoader(), new Class[]{ 
MBeanServer.class }, handler);
+        this.connectorServer = 
JMXConnectorServerFactory.newJMXConnectorServer(url, this.environment, 
guardedServer);
+
         if (this.objectName != null) {
             this.server.registerMBean(this.connectorServer, this.objectName);
         }

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/management/server/src/main/java/org/apache/karaf/management/KarafMBeanServerGuard.java
----------------------------------------------------------------------
diff --git 
a/management/server/src/main/java/org/apache/karaf/management/KarafMBeanServerGuard.java
 
b/management/server/src/main/java/org/apache/karaf/management/KarafMBeanServerGuard.java
index 9776346..b2ce7f1 100644
--- 
a/management/server/src/main/java/org/apache/karaf/management/KarafMBeanServerGuard.java
+++ 
b/management/server/src/main/java/org/apache/karaf/management/KarafMBeanServerGuard.java
@@ -16,7 +16,6 @@
  */
 package org.apache.karaf.management;
 
-import org.apache.karaf.management.boot.KarafMBeanServerBuilder;
 import org.apache.karaf.service.guard.tools.ACLConfigurationParser;
 import org.apache.karaf.util.jaas.JaasHelper;
 import org.osgi.framework.InvalidSyntaxException;
@@ -24,13 +23,9 @@ import org.osgi.service.cm.Configuration;
 import org.osgi.service.cm.ConfigurationAdmin;
 
 import javax.management.*;
-import javax.security.auth.Subject;
 import java.io.IOException;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
-import java.security.AccessControlContext;
-import java.security.AccessController;
-import java.security.Principal;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Enumeration;
@@ -60,10 +55,6 @@ public class KarafMBeanServerGuard implements 
InvocationHandler {
         this.configAdmin = configAdmin;
     }
 
-    public void init() {
-        KarafMBeanServerBuilder.setGuard(this);
-    }
-
     public Object invoke(Object proxy, Method method, Object[] args) throws 
Throwable {
         if (method.getParameterTypes().length == 0)
             return null;

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/management/server/src/main/java/org/apache/karaf/management/internal/Activator.java
----------------------------------------------------------------------
diff --git 
a/management/server/src/main/java/org/apache/karaf/management/internal/Activator.java
 
b/management/server/src/main/java/org/apache/karaf/management/internal/Activator.java
index bf9ea9e..ae6db00 100644
--- 
a/management/server/src/main/java/org/apache/karaf/management/internal/Activator.java
+++ 
b/management/server/src/main/java/org/apache/karaf/management/internal/Activator.java
@@ -91,7 +91,6 @@ public class Activator extends BaseActivator implements 
ManagedService {
 
         KarafMBeanServerGuard guard = new KarafMBeanServerGuard();
         guard.setConfigAdmin(configurationAdmin);
-        guard.init();
 
         rmiRegistryFactory = new RmiRegistryFactory();
         rmiRegistryFactory.setCreate(true);
@@ -113,6 +112,7 @@ public class Activator extends BaseActivator implements 
ManagedService {
         connectorServerFactory = new ConnectorServerFactory();
         connectorServerFactory.setServer(mbeanServer);
         connectorServerFactory.setServiceUrl(serviceUrl);
+        connectorServerFactory.setGuard(guard);
         connectorServerFactory.setRmiServerHost(rmiServerHost);
         connectorServerFactory.setDaemon(daemon);
         connectorServerFactory.setThreaded(threaded);
@@ -137,6 +137,7 @@ public class Activator extends BaseActivator implements 
ManagedService {
 
         JMXSecurityMBeanImpl securityMBean = new JMXSecurityMBeanImpl();
         securityMBean.setMBeanServer(mbeanServer);
+        securityMBean.setGuard(guard);
         registerMBean(securityMBean, "type=security,area=jmx");
 
         register(MBeanServer.class, mbeanServer);

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/management/server/src/main/java/org/apache/karaf/management/internal/JMXSecurityMBeanImpl.java
----------------------------------------------------------------------
diff --git 
a/management/server/src/main/java/org/apache/karaf/management/internal/JMXSecurityMBeanImpl.java
 
b/management/server/src/main/java/org/apache/karaf/management/internal/JMXSecurityMBeanImpl.java
index a62a055..031fbdf 100644
--- 
a/management/server/src/main/java/org/apache/karaf/management/internal/JMXSecurityMBeanImpl.java
+++ 
b/management/server/src/main/java/org/apache/karaf/management/internal/JMXSecurityMBeanImpl.java
@@ -18,7 +18,6 @@ package org.apache.karaf.management.internal;
 
 import org.apache.karaf.management.JMXSecurityMBean;
 import org.apache.karaf.management.KarafMBeanServerGuard;
-import org.apache.karaf.management.boot.KarafMBeanServerBuilder;
 
 import javax.management.MBeanServer;
 import javax.management.NotCompliantMBeanException;
@@ -35,13 +34,13 @@ import java.util.Map;
 public class JMXSecurityMBeanImpl extends StandardMBean implements 
JMXSecurityMBean {
 
     private MBeanServer mbeanServer;
+    private KarafMBeanServerGuard guard;
 
     public JMXSecurityMBeanImpl() throws NotCompliantMBeanException {
         super(JMXSecurityMBean.class);
     }
 
     public boolean canInvoke(String objectName) throws Exception {
-        KarafMBeanServerGuard guard = (KarafMBeanServerGuard) 
KarafMBeanServerBuilder.getGuard();
         if (guard == null)
             return true;
 
@@ -49,7 +48,6 @@ public class JMXSecurityMBeanImpl extends StandardMBean 
implements JMXSecurityMB
     }
 
     public boolean canInvoke(String objectName, String methodName) throws 
Exception {
-        KarafMBeanServerGuard guard = (KarafMBeanServerGuard) 
KarafMBeanServerBuilder.getGuard();
         if (guard == null)
             return true;
 
@@ -59,7 +57,6 @@ public class JMXSecurityMBeanImpl extends StandardMBean 
implements JMXSecurityMB
     public boolean canInvoke(String objectName, String methodName, String[] 
argumentTypes) throws Exception {
         ObjectName on = new ObjectName(objectName);
 
-        KarafMBeanServerGuard guard = (KarafMBeanServerGuard) 
KarafMBeanServerBuilder.getGuard();
         if (guard == null)
             return true;
 
@@ -118,4 +115,12 @@ public class JMXSecurityMBeanImpl extends StandardMBean 
implements JMXSecurityMB
         this.mbeanServer = mbeanServer;
     }
 
+    public KarafMBeanServerGuard getGuard() {
+        return guard;
+    }
+
+    public void setGuard(KarafMBeanServerGuard guard) {
+        this.guard = guard;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/management/server/src/main/java/org/apache/karaf/management/internal/MBeanInvocationHandler.java
----------------------------------------------------------------------
diff --git 
a/management/server/src/main/java/org/apache/karaf/management/internal/MBeanInvocationHandler.java
 
b/management/server/src/main/java/org/apache/karaf/management/internal/MBeanInvocationHandler.java
new file mode 100644
index 0000000..29680d5
--- /dev/null
+++ 
b/management/server/src/main/java/org/apache/karaf/management/internal/MBeanInvocationHandler.java
@@ -0,0 +1,66 @@
+/*
+ * 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.karaf.management.internal;
+
+import javax.management.MBeanServer;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+public class MBeanInvocationHandler implements InvocationHandler {
+
+    private final MBeanServer wrapped;
+
+    private final InvocationHandler guard;
+
+    private final List<String> guarded = 
Collections.unmodifiableList(Arrays.asList("invoke", "getAttribute", 
"getAttributes", "setAttribute", "setAttributes"));
+
+    public MBeanInvocationHandler(MBeanServer mBeanServer, InvocationHandler 
guard) {
+        wrapped = mBeanServer;
+        this.guard = guard;
+    }
+
+    public Object invoke(Object proxy, Method method, Object[] args) throws 
Throwable {
+        if (guarded.contains(method.getName())) {
+            guard.invoke(proxy, method, args);
+        }
+
+        if (method.getName().equals("equals") && 
method.getParameterTypes().length == 1 && method.getParameterTypes()[0] == 
Object.class) {
+            Object target = args[0];
+            if (target != null && Proxy.isProxyClass(target.getClass())) {
+                InvocationHandler handler = Proxy.getInvocationHandler(target);
+                if (handler instanceof MBeanInvocationHandler) {
+                    args[0] = ((MBeanInvocationHandler) handler).wrapped;
+                }
+            }
+        } else if (method.getName().equals("finalize") && 
method.getParameterTypes().length == 0) {
+            // special case finalize, don't route through to delegate because 
that will get its own call
+            return null;
+        }
+
+        try {
+            return method.invoke(wrapped, args);
+        } catch (InvocationTargetException e) {
+            throw e.getCause();
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/management/server/src/test/java/org/apache/karaf/management/internal/JMXSecurityMBeanImplTestCase.java
----------------------------------------------------------------------
diff --git 
a/management/server/src/test/java/org/apache/karaf/management/internal/JMXSecurityMBeanImplTestCase.java
 
b/management/server/src/test/java/org/apache/karaf/management/internal/JMXSecurityMBeanImplTestCase.java
index f86e31c..cea0092 100644
--- 
a/management/server/src/test/java/org/apache/karaf/management/internal/JMXSecurityMBeanImplTestCase.java
+++ 
b/management/server/src/test/java/org/apache/karaf/management/internal/JMXSecurityMBeanImplTestCase.java
@@ -18,7 +18,6 @@ package org.apache.karaf.management.internal;
 
 import junit.framework.TestCase;
 import org.apache.karaf.management.KarafMBeanServerGuard;
-import org.apache.karaf.management.boot.KarafMBeanServerBuilder;
 import org.easymock.EasyMock;
 
 import javax.management.MBeanServer;
@@ -26,7 +25,6 @@ import javax.management.ObjectName;
 import javax.management.openmbean.CompositeData;
 import javax.management.openmbean.TabularData;
 import java.io.IOException;
-import java.lang.reflect.InvocationHandler;
 import java.util.*;
 
 public class JMXSecurityMBeanImplTestCase extends TestCase {
@@ -41,47 +39,36 @@ public class JMXSecurityMBeanImplTestCase extends TestCase {
     }
 
     public void testCanInvokeMBean() throws Exception {
-        InvocationHandler prevGuard = KarafMBeanServerBuilder.getGuard();
-        try {
-            MBeanServer mbs = EasyMock.createMock(MBeanServer.class);
-            EasyMock.replay(mbs);
+        MBeanServer mbs = EasyMock.createMock(MBeanServer.class);
+        EasyMock.replay(mbs);
 
-            String objectName = "foo.bar.testing:type=SomeMBean";
-            KarafMBeanServerGuard testGuard = 
EasyMock.createMock(KarafMBeanServerGuard.class);
-            EasyMock.expect(testGuard.canInvoke(mbs, new 
ObjectName(objectName))).andReturn(true);
-            EasyMock.replay(testGuard);
-            KarafMBeanServerBuilder.setGuard(testGuard);
+        String objectName = "foo.bar.testing:type=SomeMBean";
+        KarafMBeanServerGuard testGuard = 
EasyMock.createMock(KarafMBeanServerGuard.class);
+        EasyMock.expect(testGuard.canInvoke(mbs, new 
ObjectName(objectName))).andReturn(true);
+        EasyMock.replay(testGuard);
 
-            JMXSecurityMBeanImpl mb = new JMXSecurityMBeanImpl();
-            mb.setMBeanServer(mbs);
-            assertTrue(mb.canInvoke(objectName));
-        } finally {
-            KarafMBeanServerBuilder.setGuard(prevGuard);
-        }
+        JMXSecurityMBeanImpl mb = new JMXSecurityMBeanImpl();
+        mb.setMBeanServer(mbs);
+        mb.setGuard(testGuard);
+        assertTrue(mb.canInvoke(objectName));
     }
 
     public void testCanInvokeMBean2() throws Exception {
-        InvocationHandler prevGuard = KarafMBeanServerBuilder.getGuard();
-        try {
-            MBeanServer mbs = EasyMock.createMock(MBeanServer.class);
-            EasyMock.replay(mbs);
+        MBeanServer mbs = EasyMock.createMock(MBeanServer.class);
+        EasyMock.replay(mbs);
 
-            String objectName = "foo.bar.testing:type=SomeMBean";
-            KarafMBeanServerGuard testGuard = 
EasyMock.createMock(KarafMBeanServerGuard.class);
-            EasyMock.expect(testGuard.canInvoke(mbs, new 
ObjectName(objectName))).andReturn(false);
-            EasyMock.replay(testGuard);
-            KarafMBeanServerBuilder.setGuard(testGuard);
+        String objectName = "foo.bar.testing:type=SomeMBean";
+        KarafMBeanServerGuard testGuard = 
EasyMock.createMock(KarafMBeanServerGuard.class);
+        EasyMock.expect(testGuard.canInvoke(mbs, new 
ObjectName(objectName))).andReturn(false);
+        EasyMock.replay(testGuard);
 
-            JMXSecurityMBeanImpl mb = new JMXSecurityMBeanImpl();
-            mb.setMBeanServer(mbs);
-            assertFalse(mb.canInvoke(objectName));
-        } finally {
-            KarafMBeanServerBuilder.setGuard(prevGuard);
-        }
+        JMXSecurityMBeanImpl mb = new JMXSecurityMBeanImpl();
+        mb.setMBeanServer(mbs);
+        mb.setGuard(testGuard);
+        assertFalse(mb.canInvoke(objectName));
     }
 
     public void testCanInvokeMBeanThrowsException() throws Exception {
-        InvocationHandler prevGuard = KarafMBeanServerBuilder.getGuard();
         try {
             MBeanServer mbs = EasyMock.createMock(MBeanServer.class);
             EasyMock.replay(mbs);
@@ -90,58 +77,45 @@ public class JMXSecurityMBeanImplTestCase extends TestCase {
             KarafMBeanServerGuard testGuard = 
EasyMock.createMock(KarafMBeanServerGuard.class);
             EasyMock.expect(testGuard.canInvoke(mbs, new 
ObjectName(objectName))).andThrow(new IOException());
             EasyMock.replay(testGuard);
-            KarafMBeanServerBuilder.setGuard(testGuard);
 
             JMXSecurityMBeanImpl mb = new JMXSecurityMBeanImpl();
             mb.setMBeanServer(mbs);
+            mb.setGuard(testGuard);
             mb.canInvoke(objectName);
             fail("Should have thrown an exception");
         } catch (IOException ioe) {
             // good!
-        } finally {
-            KarafMBeanServerBuilder.setGuard(prevGuard);
         }
     }
 
     public void testCanInvokeMBeanNoGuard() throws Exception {
-        InvocationHandler prevGuard = KarafMBeanServerBuilder.getGuard();
-        try {
-            JMXSecurityMBeanImpl mb = new JMXSecurityMBeanImpl();
-            assertTrue(mb.canInvoke("foo.bar.testing:type=SomeMBean"));
-        } finally {
-            KarafMBeanServerBuilder.setGuard(prevGuard);
-        }
+        JMXSecurityMBeanImpl mb = new JMXSecurityMBeanImpl();
+        assertTrue(mb.canInvoke("foo.bar.testing:type=SomeMBean"));
     }
 
     public void testCanInvokeMethod() throws Exception {
-        InvocationHandler prevGuard = KarafMBeanServerBuilder.getGuard();
-        try {
-            MBeanServer mbs = EasyMock.createMock(MBeanServer.class);
-            EasyMock.replay(mbs);
+        MBeanServer mbs = EasyMock.createMock(MBeanServer.class);
+        EasyMock.replay(mbs);
 
-            String objectName = "foo.bar.testing:type=SomeMBean";
-            KarafMBeanServerGuard testGuard = 
EasyMock.createMock(KarafMBeanServerGuard.class);
-            String[] la = new String[]{"long"};
-            String[] sa = new String[]{"java.lang.String"};
-            String[] sa2 = new String[]{"java.lang.String", 
"java.lang.String"};
-            EasyMock.expect(testGuard.canInvoke(mbs, new 
ObjectName(objectName), "testMethod", la)).andReturn(true);
-            EasyMock.expect(testGuard.canInvoke(mbs, new 
ObjectName(objectName), "testMethod", sa)).andReturn(true);
-            EasyMock.expect(testGuard.canInvoke(mbs, new 
ObjectName(objectName), "otherMethod", sa2)).andReturn(false);
-            EasyMock.replay(testGuard);
-            KarafMBeanServerBuilder.setGuard(testGuard);
+        String objectName = "foo.bar.testing:type=SomeMBean";
+        KarafMBeanServerGuard testGuard = 
EasyMock.createMock(KarafMBeanServerGuard.class);
+        String[] la = new String[]{"long"};
+        String[] sa = new String[]{"java.lang.String"};
+        String[] sa2 = new String[]{"java.lang.String", "java.lang.String"};
+        EasyMock.expect(testGuard.canInvoke(mbs, new ObjectName(objectName), 
"testMethod", la)).andReturn(true);
+        EasyMock.expect(testGuard.canInvoke(mbs, new ObjectName(objectName), 
"testMethod", sa)).andReturn(true);
+        EasyMock.expect(testGuard.canInvoke(mbs, new ObjectName(objectName), 
"otherMethod", sa2)).andReturn(false);
+        EasyMock.replay(testGuard);
 
-            JMXSecurityMBeanImpl mb = new JMXSecurityMBeanImpl();
-            mb.setMBeanServer(mbs);
-            assertTrue(mb.canInvoke(objectName, "testMethod", la));
-            assertTrue(mb.canInvoke(objectName, "testMethod", sa));
-            assertFalse(mb.canInvoke(objectName, "otherMethod", sa2));
-        } finally {
-            KarafMBeanServerBuilder.setGuard(prevGuard);
-        }
+        JMXSecurityMBeanImpl mb = new JMXSecurityMBeanImpl();
+        mb.setMBeanServer(mbs);
+        mb.setGuard(testGuard);
+        assertTrue(mb.canInvoke(objectName, "testMethod", la));
+        assertTrue(mb.canInvoke(objectName, "testMethod", sa));
+        assertFalse(mb.canInvoke(objectName, "otherMethod", sa2));
     }
 
     public void testCanInvokeMethodException() throws Exception {
-        InvocationHandler prevGuard = KarafMBeanServerBuilder.getGuard();
         try {
             MBeanServer mbs = EasyMock.createMock(MBeanServer.class);
             EasyMock.replay(mbs);
@@ -151,81 +125,69 @@ public class JMXSecurityMBeanImplTestCase extends 
TestCase {
             String[] ea = new String[]{};
             EasyMock.expect(testGuard.canInvoke(mbs, new 
ObjectName(objectName), "testMethod", ea)).andThrow(new IOException());
             EasyMock.replay(testGuard);
-            KarafMBeanServerBuilder.setGuard(testGuard);
 
             JMXSecurityMBeanImpl mb = new JMXSecurityMBeanImpl();
             mb.setMBeanServer(mbs);
+            mb.setGuard(testGuard);
             mb.canInvoke(objectName, "testMethod", ea);
             fail("Should have thrown an exception");
         } catch (IOException ioe) {
             // good
-        } finally {
-            KarafMBeanServerBuilder.setGuard(prevGuard);
         }
     }
 
     public void testCanInvokeMethodNoGuard() throws Exception {
-        InvocationHandler prevGuard = KarafMBeanServerBuilder.getGuard();
-        try {
-            JMXSecurityMBeanImpl mb = new JMXSecurityMBeanImpl();
-            assertTrue(mb.canInvoke("foo.bar.testing:type=SomeMBean", 
"someMethod", new String[]{}));
-        } finally {
-            KarafMBeanServerBuilder.setGuard(prevGuard);
-        }
+        JMXSecurityMBeanImpl mb = new JMXSecurityMBeanImpl();
+        assertTrue(mb.canInvoke("foo.bar.testing:type=SomeMBean", 
"someMethod", new String[]{}));
     }
 
     public void testCanInvokeBulk() throws Exception {
-        InvocationHandler prevGuard = KarafMBeanServerBuilder.getGuard();
-        try {
-            MBeanServer mbs = EasyMock.createMock(MBeanServer.class);
-            EasyMock.replay(mbs);
+        MBeanServer mbs = EasyMock.createMock(MBeanServer.class);
+        EasyMock.replay(mbs);
 
-            KarafMBeanServerGuard testGuard = 
EasyMock.createMock(KarafMBeanServerGuard.class);
-            String objectName = "foo.bar.testing:type=SomeMBean";
-            final String[] la = new String[]{"long"};
-            final String[] sa = new String[]{"java.lang.String"};
-            EasyMock.expect(testGuard.canInvoke(EasyMock.eq(mbs), 
EasyMock.eq(new ObjectName(objectName)), EasyMock.eq("testMethod"), 
EasyMock.aryEq(la))).andReturn(true).anyTimes();
-            EasyMock.expect(testGuard.canInvoke(EasyMock.eq(mbs), 
EasyMock.eq(new ObjectName(objectName)), EasyMock.eq("testMethod"), 
EasyMock.aryEq(sa))).andReturn(false).anyTimes();
-            EasyMock.expect(testGuard.canInvoke(EasyMock.eq(mbs), 
EasyMock.eq(new ObjectName(objectName)), 
EasyMock.eq("otherMethod"))).andReturn(true).anyTimes();
-            String objectName2 = "foo.bar.testing:type=SomeOtherMBean";
-            EasyMock.expect(testGuard.canInvoke(EasyMock.eq(mbs), 
EasyMock.eq(new ObjectName(objectName2)))).andReturn(true).anyTimes();
-            String objectName3 = "foo.bar.foo.testing:type=SomeOtherMBean";
-            EasyMock.expect(testGuard.canInvoke(EasyMock.eq(mbs), 
EasyMock.eq(new ObjectName(objectName3)))).andReturn(false).anyTimes();
-            EasyMock.replay(testGuard);
-            KarafMBeanServerBuilder.setGuard(testGuard);
+        KarafMBeanServerGuard testGuard = 
EasyMock.createMock(KarafMBeanServerGuard.class);
+        String objectName = "foo.bar.testing:type=SomeMBean";
+        final String[] la = new String[]{"long"};
+        final String[] sa = new String[]{"java.lang.String"};
+        EasyMock.expect(testGuard.canInvoke(EasyMock.eq(mbs), EasyMock.eq(new 
ObjectName(objectName)), EasyMock.eq("testMethod"), 
EasyMock.aryEq(la))).andReturn(true).anyTimes();
+        EasyMock.expect(testGuard.canInvoke(EasyMock.eq(mbs), EasyMock.eq(new 
ObjectName(objectName)), EasyMock.eq("testMethod"), 
EasyMock.aryEq(sa))).andReturn(false).anyTimes();
+        EasyMock.expect(testGuard.canInvoke(EasyMock.eq(mbs), EasyMock.eq(new 
ObjectName(objectName)), 
EasyMock.eq("otherMethod"))).andReturn(true).anyTimes();
+        String objectName2 = "foo.bar.testing:type=SomeOtherMBean";
+        EasyMock.expect(testGuard.canInvoke(EasyMock.eq(mbs), EasyMock.eq(new 
ObjectName(objectName2)))).andReturn(true).anyTimes();
+        String objectName3 = "foo.bar.foo.testing:type=SomeOtherMBean";
+        EasyMock.expect(testGuard.canInvoke(EasyMock.eq(mbs), EasyMock.eq(new 
ObjectName(objectName3)))).andReturn(false).anyTimes();
+        EasyMock.replay(testGuard);
 
-            JMXSecurityMBeanImpl mb = new JMXSecurityMBeanImpl();
-            mb.setMBeanServer(mbs);
-            Map<String, List<String>> query = new HashMap<String, 
List<String>>();
-            query.put(objectName, Arrays.asList("otherMethod", 
"testMethod(long)", "testMethod(java.lang.String)"));
-            query.put(objectName2, Collections.<String>emptyList());
-            query.put(objectName3, Collections.<String>emptyList());
-            TabularData result = mb.canInvoke(query);
-            assertEquals(5, result.size());
-
-            CompositeData cd = result.get(new Object[]{objectName, 
"testMethod(long)"});
-            assertEquals(objectName, cd.get("ObjectName"));
-            assertEquals("testMethod(long)", cd.get("Method"));
-            assertEquals(true, cd.get("CanInvoke"));
-            CompositeData cd2 = result.get(new Object[]{objectName, 
"testMethod(java.lang.String)"});
-            assertEquals(objectName, cd2.get("ObjectName"));
-            assertEquals("testMethod(java.lang.String)", cd2.get("Method"));
-            assertEquals(false, cd2.get("CanInvoke"));
-            CompositeData cd3 = result.get(new Object[]{objectName, 
"otherMethod"});
-            assertEquals(objectName, cd3.get("ObjectName"));
-            assertEquals("otherMethod", cd3.get("Method"));
-            assertEquals(true, cd3.get("CanInvoke"));
-            CompositeData cd4 = result.get(new Object[]{objectName2, ""});
-            assertEquals(objectName2, cd4.get("ObjectName"));
-            assertEquals("", cd4.get("Method"));
-            assertEquals(true, cd4.get("CanInvoke"));
-            CompositeData cd5 = result.get(new Object[]{objectName3, ""});
-            assertEquals(objectName3, cd5.get("ObjectName"));
-            assertEquals("", cd5.get("Method"));
-            assertEquals(false, cd5.get("CanInvoke"));
-        } finally {
-            KarafMBeanServerBuilder.setGuard(prevGuard);
-        }
+        JMXSecurityMBeanImpl mb = new JMXSecurityMBeanImpl();
+        mb.setMBeanServer(mbs);
+        mb.setGuard(testGuard);
+        Map<String, List<String>> query = new HashMap<String, List<String>>();
+        query.put(objectName, Arrays.asList("otherMethod", "testMethod(long)", 
"testMethod(java.lang.String)"));
+        query.put(objectName2, Collections.<String>emptyList());
+        query.put(objectName3, Collections.<String>emptyList());
+        TabularData result = mb.canInvoke(query);
+        assertEquals(5, result.size());
+
+        CompositeData cd = result.get(new Object[]{objectName, 
"testMethod(long)"});
+        assertEquals(objectName, cd.get("ObjectName"));
+        assertEquals("testMethod(long)", cd.get("Method"));
+        assertEquals(true, cd.get("CanInvoke"));
+        CompositeData cd2 = result.get(new Object[]{objectName, 
"testMethod(java.lang.String)"});
+        assertEquals(objectName, cd2.get("ObjectName"));
+        assertEquals("testMethod(java.lang.String)", cd2.get("Method"));
+        assertEquals(false, cd2.get("CanInvoke"));
+        CompositeData cd3 = result.get(new Object[]{objectName, 
"otherMethod"});
+        assertEquals(objectName, cd3.get("ObjectName"));
+        assertEquals("otherMethod", cd3.get("Method"));
+        assertEquals(true, cd3.get("CanInvoke"));
+        CompositeData cd4 = result.get(new Object[]{objectName2, ""});
+        assertEquals(objectName2, cd4.get("ObjectName"));
+        assertEquals("", cd4.get("Method"));
+        assertEquals(true, cd4.get("CanInvoke"));
+        CompositeData cd5 = result.get(new Object[]{objectName3, ""});
+        assertEquals(objectName3, cd5.get("ObjectName"));
+        assertEquals("", cd5.get("Method"));
+        assertEquals(false, cd5.get("CanInvoke"));
     }
 
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/manual/src/main/asciidoc/users-guide/wrapper.adoc
----------------------------------------------------------------------
diff --git a/manual/src/main/asciidoc/users-guide/wrapper.adoc 
b/manual/src/main/asciidoc/users-guide/wrapper.adoc
index d3ea788..ca629aa 100644
--- a/manual/src/main/asciidoc/users-guide/wrapper.adoc
+++ b/manual/src/main/asciidoc/users-guide/wrapper.adoc
@@ -284,10 +284,9 @@ wrapper.java.command=%JAVA_HOME%/bin/java
 wrapper.java.mainclass=org.apache.karaf.wrapper.internal.Main
 wrapper.java.classpath.1=%KARAF_HOME%/lib/karaf-wrapper.jar
 wrapper.java.classpath.2=%KARAF_HOME%/lib/karaf.jar
-wrapper.java.classpath.3=%KARAF_HOME%/lib/karaf-jmx-boot.jar
-wrapper.java.classpath.4=%KARAF_HOME%/lib/karaf-jaas-boot.jar
-wrapper.java.classpath.5=%KARAF_HOME%/lib/karaf-wrapper-main.jar
-wrapper.java.classpath.6=%KARAF_HOME%/lib/karaf-org.osgi.core.jar
+wrapper.java.classpath.3=%KARAF_HOME%/lib/karaf-jaas-boot.jar
+wrapper.java.classpath.4=%KARAF_HOME%/lib/karaf-wrapper-main.jar
+wrapper.java.classpath.5=%KARAF_HOME%/lib/karaf-org.osgi.core.jar
 wrapper.java.library.path.1=%KARAF_HOME%/lib/
 
 # Application Parameters.  Add parameters as needed starting from 1
@@ -300,11 +299,10 @@ wrapper.java.additional.2=-Dkaraf.base=%KARAF_BASE%
 wrapper.java.additional.3=-Dkaraf.data=%KARAF_DATA%
 wrapper.java.additional.4=-Dkaraf.etc=%KARAF_ETC%
 wrapper.java.additional.5=-Dcom.sun.management.jmxremote
-wrapper.java.additional.6=-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder
-wrapper.java.additional.7=-Dkaraf.startLocalConsole=false
-wrapper.java.additional.8=-Dkaraf.startRemoteShell=true
-wrapper.java.additional.9=-Djava.endorsed.dirs=%JAVA_HOME%/jre/lib/endorsed:%JAVA_HOME%/lib/endorsed:%KARAF_HOME%/lib/endorsed
-wrapper.java.additional.10=-Djava.ext.dirs=%JAVA_HOME%/jre/lib/ext:%JAVA_HOME%/lib/ext:%KARAF_HOME%/lib/ext
+wrapper.java.additional.6=-Dkaraf.startLocalConsole=false
+wrapper.java.additional.7=-Dkaraf.startRemoteShell=true
+wrapper.java.additional.8=-Djava.endorsed.dirs=%JAVA_HOME%/jre/lib/endorsed:%JAVA_HOME%/lib/endorsed:%KARAF_HOME%/lib/endorsed
+wrapper.java.additional.9=-Djava.ext.dirs=%JAVA_HOME%/jre/lib/ext:%JAVA_HOME%/lib/ext:%KARAF_HOME%/lib/ext
 
 # Uncomment to enable jmx
 #wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/manual/src/main/webapp/users-guide/wrapper.conf
----------------------------------------------------------------------
diff --git a/manual/src/main/webapp/users-guide/wrapper.conf 
b/manual/src/main/webapp/users-guide/wrapper.conf
index 7378527..b9fb8e2 100644
--- a/manual/src/main/webapp/users-guide/wrapper.conf
+++ b/manual/src/main/webapp/users-guide/wrapper.conf
@@ -270,10 +270,9 @@ wrapper.java.command=%JAVA_HOME%/bin/java
 wrapper.java.mainclass=org.apache.karaf.wrapper.internal.Main
 wrapper.java.classpath.1=%KARAF_HOME%/lib/karaf-wrapper.jar
 wrapper.java.classpath.2=%KARAF_HOME%/lib/karaf.jar
-wrapper.java.classpath.3=%KARAF_HOME%/lib/karaf-jmx-boot.jar
-wrapper.java.classpath.4=%KARAF_HOME%/lib/karaf-jaas-boot.jar
-wrapper.java.classpath.5=%KARAF_HOME%/lib/karaf-wrapper-main.jar
-wrapper.java.classpath.6=%KARAF_HOME%/lib/karaf-org.osgi.core.jar
+wrapper.java.classpath.3=%KARAF_HOME%/lib/karaf-jaas-boot.jar
+wrapper.java.classpath.4=%KARAF_HOME%/lib/karaf-wrapper-main.jar
+wrapper.java.classpath.5=%KARAF_HOME%/lib/karaf-org.osgi.core.jar
 wrapper.java.library.path.1=%KARAF_HOME%/lib/
 
 # Application Parameters.  Add parameters as needed starting from 1
@@ -286,11 +285,10 @@ wrapper.java.additional.2=-Dkaraf.base=%KARAF_BASE%
 wrapper.java.additional.3=-Dkaraf.data=%KARAF_DATA%
 wrapper.java.additional.4=-Dkaraf.etc=%KARAF_ETC%
 wrapper.java.additional.5=-Dcom.sun.management.jmxremote
-wrapper.java.additional.6=-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder
-wrapper.java.additional.7=-Dkaraf.startLocalConsole=false
-wrapper.java.additional.8=-Dkaraf.startRemoteShell=true
-wrapper.java.additional.9=-Djava.endorsed.dirs=%JAVA_HOME%/jre/lib/endorsed:%JAVA_HOME%/lib/endorsed:%KARAF_HOME%/lib/endorsed
-wrapper.java.additional.10=-Djava.ext.dirs=%JAVA_HOME%/jre/lib/ext:%JAVA_HOME%/lib/ext:%KARAF_HOME%/lib/ext
+wrapper.java.additional.6=-Dkaraf.startLocalConsole=false
+wrapper.java.additional.7=-Dkaraf.startRemoteShell=true
+wrapper.java.additional.8=-Djava.endorsed.dirs=%JAVA_HOME%/jre/lib/endorsed:%JAVA_HOME%/lib/endorsed:%KARAF_HOME%/lib/endorsed
+wrapper.java.additional.9=-Djava.ext.dirs=%JAVA_HOME%/jre/lib/ext:%JAVA_HOME%/lib/ext:%KARAF_HOME%/lib/ext
 
 # Uncomment to enable jmx
 #wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 45d94b9..a8b0220 100644
--- a/pom.xml
+++ b/pom.xml
@@ -540,11 +540,6 @@
 
             <dependency>
                 <groupId>org.apache.karaf.management</groupId>
-                <artifactId>org.apache.karaf.management.boot</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.karaf.management</groupId>
                 <artifactId>org.apache.karaf.management.server</artifactId>
                 <version>${project.version}</version>
             </dependency>

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper.conf
----------------------------------------------------------------------
diff --git 
a/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper.conf
 
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper.conf
index 460e543..6da4ac8 100644
--- 
a/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper.conf
+++ 
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper.conf
@@ -42,11 +42,10 @@ wrapper.java.additional.2=-Dkaraf.base=%KARAF_BASE%
 wrapper.java.additional.3=-Dkaraf.data=%KARAF_DATA%
 wrapper.java.additional.4=-Dkaraf.etc=%KARAF_ETC%
 wrapper.java.additional.5=-Dcom.sun.management.jmxremote
-wrapper.java.additional.6=-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder
-wrapper.java.additional.7=-Dkaraf.startLocalConsole=false
-wrapper.java.additional.8=-Dkaraf.startRemoteShell=true
-wrapper.java.additional.9=-Djava.endorsed.dirs=%JAVA_HOME%/jre/lib/endorsed:%JAVA_HOME%/lib/endorsed:%KARAF_HOME%/lib/endorsed
-wrapper.java.additional.10=-Djava.ext.dirs=%JAVA_HOME%/jre/lib/ext:%JAVA_HOME%/lib/ext:%KARAF_HOME%/lib/ext
+wrapper.java.additional.6=-Dkaraf.startLocalConsole=false
+wrapper.java.additional.7=-Dkaraf.startRemoteShell=true
+wrapper.java.additional.8=-Djava.endorsed.dirs=%JAVA_HOME%/jre/lib/endorsed:%JAVA_HOME%/lib/endorsed:%KARAF_HOME%/lib/endorsed
+wrapper.java.additional.9=-Djava.ext.dirs=%JAVA_HOME%/jre/lib/ext:%JAVA_HOME%/lib/ext:%KARAF_HOME%/lib/ext
 
 # Uncomment to enable jmx
 #wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.conf
----------------------------------------------------------------------
diff --git 
a/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.conf
 
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.conf
index e7581d9..acff6ac 100644
--- 
a/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.conf
+++ 
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.conf
@@ -42,11 +42,10 @@ wrapper.java.additional.2=-Dkaraf.base="%KARAF_BASE%"
 wrapper.java.additional.3=-Dkaraf.data="%KARAF_DATA%"
 wrapper.java.additional.4=-Dkaraf.etc="%KARAF_ETC%"
 wrapper.java.additional.5=-Dcom.sun.management.jmxremote
-wrapper.java.additional.6=-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder
-wrapper.java.additional.7=-Dkaraf.startLocalConsole=false
-wrapper.java.additional.8=-Dkaraf.startRemoteShell=true
-wrapper.java.additional.9=-Djava.endorsed.dirs="%JAVA_HOME%/jre/lib/endorsed;%JAVA_HOME%/lib/endorsed;%KARAF_HOME%/lib/endorsed"
-wrapper.java.additional.10=-Djava.ext.dirs="%JAVA_HOME%/jre/lib/ext;%JAVA_HOME%/lib/ext;%KARAF_HOME%/lib/ext"
+wrapper.java.additional.6=-Dkaraf.startLocalConsole=false
+wrapper.java.additional.7=-Dkaraf.startRemoteShell=true
+wrapper.java.additional.8=-Djava.endorsed.dirs="%JAVA_HOME%/jre/lib/endorsed;%JAVA_HOME%/lib/endorsed;%KARAF_HOME%/lib/endorsed"
+wrapper.java.additional.9=-Djava.ext.dirs="%JAVA_HOME%/jre/lib/ext;%JAVA_HOME%/lib/ext;%KARAF_HOME%/lib/ext"
 
 # Uncomment to enable jmx
 #wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616

http://git-wip-us.apache.org/repos/asf/karaf/blob/bd8093cb/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.conf
----------------------------------------------------------------------
diff --git 
a/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.conf
 
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.conf
index e7581d9..acff6ac 100644
--- 
a/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.conf
+++ 
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.conf
@@ -42,11 +42,10 @@ wrapper.java.additional.2=-Dkaraf.base="%KARAF_BASE%"
 wrapper.java.additional.3=-Dkaraf.data="%KARAF_DATA%"
 wrapper.java.additional.4=-Dkaraf.etc="%KARAF_ETC%"
 wrapper.java.additional.5=-Dcom.sun.management.jmxremote
-wrapper.java.additional.6=-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder
-wrapper.java.additional.7=-Dkaraf.startLocalConsole=false
-wrapper.java.additional.8=-Dkaraf.startRemoteShell=true
-wrapper.java.additional.9=-Djava.endorsed.dirs="%JAVA_HOME%/jre/lib/endorsed;%JAVA_HOME%/lib/endorsed;%KARAF_HOME%/lib/endorsed"
-wrapper.java.additional.10=-Djava.ext.dirs="%JAVA_HOME%/jre/lib/ext;%JAVA_HOME%/lib/ext;%KARAF_HOME%/lib/ext"
+wrapper.java.additional.6=-Dkaraf.startLocalConsole=false
+wrapper.java.additional.7=-Dkaraf.startRemoteShell=true
+wrapper.java.additional.8=-Djava.endorsed.dirs="%JAVA_HOME%/jre/lib/endorsed;%JAVA_HOME%/lib/endorsed;%KARAF_HOME%/lib/endorsed"
+wrapper.java.additional.9=-Djava.ext.dirs="%JAVA_HOME%/jre/lib/ext;%JAVA_HOME%/lib/ext;%KARAF_HOME%/lib/ext"
 
 # Uncomment to enable jmx
 #wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616

Reply via email to