You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by ff...@apache.org on 2017/09/30 07:59:19 UTC

[1/2] karaf git commit: [KARAF-5396]Ensure Karaf can build with JDK9 GA(build 9+181)

Repository: karaf
Updated Branches:
  refs/heads/master dafbc3659 -> a6d51d5f6


[KARAF-5396]Ensure Karaf can build with JDK9 GA(build 9+181)


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

Branch: refs/heads/master
Commit: 733c4951aeab3d6689524a48716d22ce2112caea
Parents: 69695c8
Author: Freeman Fang <fr...@gmail.com>
Authored: Sat Sep 30 15:58:31 2017 +0800
Committer: Freeman Fang <fr...@gmail.com>
Committed: Sat Sep 30 15:58:31 2017 +0800

----------------------------------------------------------------------
 .../resources/etc/config.properties             |    4 +-
 itests/pom.xml                                  |   10 +
 .../src/test/filtered-resources/etc/feature.xml | 1065 ++++++++++++++++++
 .../apache/karaf/itests/features/XATest.java    |    6 +
 pom.xml                                         |    3 +-
 service/guard/pom.xml                           |   11 +
 tooling/karaf-maven-plugin/pom.xml              |   11 +
 7 files changed, 1108 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/733c4951/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 ec2d9f7..5d4f5cc 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
@@ -145,7 +145,9 @@ org.osgi.framework.bootdelegation=\
       javax.xml.crypto, \
       javax.xml.crypto.*, \
       jdk.nashorn.*, \
-      sun.*
+      sun.*, \
+      jdk.internal.reflect, \
+      jdk.internal.reflect.*
 
 # jVisualVM support
 # in order to use Karaf with jvisualvm, the org.osgi.framework.bootdelegation property has to contain the org.netbeans.lib.profiler.server package

http://git-wip-us.apache.org/repos/asf/karaf/blob/733c4951/itests/pom.xml
----------------------------------------------------------------------
diff --git a/itests/pom.xml b/itests/pom.xml
index b5ebbd8..cfe3e5e 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -276,6 +276,7 @@
                 <configuration>
                     <useDefaultDelimiters>false</useDefaultDelimiters>
                     <delimiters>
+                        <delimiter>${*}</delimiter>
                         <delimiter>@@</delimiter>
                     </delimiters>
                 </configuration>
@@ -294,6 +295,15 @@
     
     <profiles>
         <profile>
+                <id>java9</id>
+                <properties>
+                    <asm.version>6.0_BETA</asm.version>
+                </properties>
+                <activation>
+                    <jdk>9</jdk>
+            </activation>
+        </profile>
+        <profile>
             <id>ci-build-profile</id>
             <activation>
                 <property>

http://git-wip-us.apache.org/repos/asf/karaf/blob/733c4951/itests/src/test/filtered-resources/etc/feature.xml
----------------------------------------------------------------------
diff --git a/itests/src/test/filtered-resources/etc/feature.xml b/itests/src/test/filtered-resources/etc/feature.xml
new file mode 100644
index 0000000..c2d7b9c
--- /dev/null
+++ b/itests/src/test/filtered-resources/etc/feature.xml
@@ -0,0 +1,1065 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+
+      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.
+-->
+<features name="standard-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0 http://karaf.apache.org/xmlns/features/v1.3.0">
+
+	<repository>mvn:org.ops4j.pax.web/pax-web-features/${pax.web.version}/xml/features</repository>
+
+    <feature version="${project.version}" description="OSGi Security for Karaf" name="framework-security">
+        <bundle start="false" start-level="1">mvn:org.apache.felix/org.apache.felix.framework.security/${felix.framework.security.version}</bundle>
+    </feature>
+
+    <feature version="${project.version}" description="Services Security for Karaf" name="service-security">
+        <feature>jaas-boot</feature>
+        <feature>aries-proxy</feature>
+        <bundle start="true" start-level="10">mvn:org.apache.karaf.service/org.apache.karaf.service.guard/${project.version}</bundle>
+    </feature>
+
+    <feature name="aries-proxy" description="Aries Proxy" version="${project.version}">
+        <!-- false to avoid restarts of proxy which cascades badly -->
+        <bundle dependency="false" start-level="20">mvn:org.ow2.asm/asm-all/${asm.version}</bundle>
+        <bundle start-level="20">mvn:org.apache.aries.proxy/org.apache.aries.proxy/${aries.proxy.version}</bundle>
+    </feature>
+
+    <feature name="aries-blueprint" description="Aries Blueprint" version="${project.version}">
+        <feature>aries-proxy</feature>
+        <bundle dependency="true" start-level="20">mvn:org.apache.aries/org.apache.aries.util/${aries.util.version}</bundle>
+        <!-- Making the compatibility bundle a dependency allows it to only be installed on-demand -->
+        <bundle dependency="true" start-level="20">mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core.compatibility/${aries.blueprint.core.compatibility.version}</bundle>
+        <bundle start-level="20">mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.api/${aries.blueprint.api.version}</bundle>
+        <bundle start-level="20">mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.cm/${aries.blueprint.cm.version}</bundle>
+        <bundle start-level="20">mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core/${aries.blueprint.core.version}</bundle>
+        <conditional>
+            <condition>bundle</condition>
+            <bundle start-level="30">mvn:org.apache.karaf.bundle/org.apache.karaf.bundle.blueprintstate/${project.version}</bundle>
+        </conditional>
+        <capability>
+            osgi.service;effective:=active;objectClass=org.apache.aries.blueprint.services.ParserService,
+            osgi.extender; osgi.extender="osgi.blueprint";uses:="org.osgi.service.blueprint.container,org.osgi.service.blueprint.reflect";version:Version="1.0"
+        </capability>
+    </feature>
+
+    <feature name="feature" description="Features Support" version="${project.version}">
+        <bundle start-level="1">mvn:org.apache.karaf.features/org.apache.karaf.features.extension/${project.version}</bundle>
+        <bundle start-level="15">mvn:org.apache.karaf.features/org.apache.karaf.features.core/${project.version}</bundle>
+        <config name="org.apache.karaf.features.repos">
+            #
+            # This file describes the features repository URL
+            # It could be directly installed using feature:repo-add command
+            #
+            enterprise=mvn:org.apache.karaf.features/enterprise/${karaf.version}/xml/features
+            enterprise-legacy=mvn:org.apache.karaf.features/enterprise-legacy/${karaf.version}/xml/features
+            spring=mvn:org.apache.karaf.features/spring/${karaf.version}/xml/features
+            spring-legacy=mvn:org.apache.karaf.features/spring-legacy/${karaf.version}/xml/features
+            cellar=mvn:org.apache.karaf.cellar/apache-karaf-cellar/RELEASE/xml/features
+            cave=mvn:org.apache.karaf.cave/apache-karaf-cave/RELEASE/xml/features
+            camel=mvn:org.apache.camel.karaf/apache-camel/RELEASE/xml/features
+            camel-extras=mvn:org.apache-extras.camel-extra.karaf/camel-extra/RELEASE/xml/features
+            cxf=mvn:org.apache.cxf.karaf/apache-cxf/RELEASE/xml/features
+            cxf-dosgi=mvn:org.apache.cxf.dosgi/cxf-dosgi/RELEASE/xml/features
+            cxf-dosgi-samples=mvn:org.apache.cxf.dosgi/cxf-dosgi-samples/RELEASE/xml/features
+            cxf-xkms=mvn:org.apache.cxf.services.xkms/cxf-services-xkms-features/RELEASE/xml
+            activemq=mvn:org.apache.activemq/activemq-karaf/RELEASE/xml/features
+            jclouds=mvn:org.apache.jclouds.karaf/jclouds-karaf/RELEASE/xml/features
+            openejb=mvn:org.apache.openejb/openejb-feature/RELEASE/xml/features
+            wicket=mvn:org.ops4j.pax.wicket/features/RELEASE/xml/features
+            hawtio=mvn:io.hawt/hawtio-karaf/RELEASE/xml/features
+            pax-cdi=mvn:org.ops4j.pax.cdi/pax-cdi-features/RELEASE/xml/features
+            pax-jdbc=mvn:org.ops4j.pax.jdbc/pax-jdbc-features/RELEASE/xml/features
+            pax-jms=mvn:org.ops4j.pax.jms/pax-jms-features/RELEASE/xml/features
+            pax-jpa=mvn:org.ops4j.pax.jpa/pax-jpa-features/RELEASE/xml/features
+            pax-transx=mvn:org.ops4j.pax.transx/pax-transx-features/RELEASE/xml/features
+            pax-web=mvn:org.ops4j.pax.web/pax-web-features/RELEASE/xml/features
+            pax-wicket=mvn:org.ops4j.pax.wicket/pax-wicket-features/RELEASE/xml/features
+            ecf=http://download.eclipse.org/rt/ecf/RELEASE/site.p2/karaf-features.xml
+            decanter=mvn:org.apache.karaf.decanter/apache-karaf-decanter/RELEASE/xml/features
+            eclipsesource-jaxrs=mvn:com.eclipsesource.jaxrs/features/RELEASE/xml/features
+            aries-jpa=mvn:org.apache.aries.jpa/jpa-features/RELEASE/xml/features
+            aries-rsa=mvn:org.apache.aries.rsa/rsa-features/RELEASE/xml/features
+            hibernate=mvn:org.hibernate/hibernate-osgi/RELEASE/xml/karaf
+            ignite=mvn:org.apache.ignite/ignite-osgi-karaf/RELEASE/xml/features
+            openjpa=mvn:org.apache.openjpa/openjpa-features/RELEASE/xml/features
+            artemis=mvn:org.apache.activemq/artemis-features/RELEASE/xml/features
+            brave=mvn:io.zipkin.brave.karaf/brave-features/RELEASE/xml/features
+        </config>
+        <conditional>
+            <condition>shell</condition>
+            <config name="org.apache.karaf.command.acl.feature">
+                #
+                # This configuration file defines the ACLs for commands in the feature subshell
+                #
+                install = admin
+                uninstall = admin
+                start = admin
+                stop = admin
+                update = admin
+            </config>
+            <bundle start-level="30">mvn:org.apache.karaf.features/org.apache.karaf.features.command/${project.version}</bundle>
+        </conditional>
+    </feature>
+
+    <feature name="jaas-boot" hidden="true">
+        <library export="true" delegate="true" type="boot">
+            mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.boot/${project.version}
+        </library>
+    </feature>
+
+    <feature name="shell" description="Karaf Shell" version="${project.version}">
+        <feature>jaas-boot</feature>
+        <config name="org.apache.karaf.command.acl.shell">
+            #
+            # This configuration file defines the ACLs for commands in the shell subshell
+            #
+            nano = admin
+            exec = admin
+            new = admin
+            java = admin
+        </config>
+        <config name="org.apache.karaf.command.acl.scope_bundle">
+            #
+            # This configuration file defines the ACLs for scope bundles
+            # 
+            features=org.apache.karaf.features.command
+            jaas=org.apache.karaf.jaas.command
+            admin=org.apache.karaf.admin.command
+            osgi=org.apache.karaf.shell.osgi
+            log=org.apache.karaf.shell.log
+            packages=org.apache.karaf.shell.packages
+            config=org.apache.karaf.shell.config
+            ssh=org.apache.karaf.shell.ssh
+            shell=org.apache.karaf.shell.commands
+        </config>
+        <config name="org.apache.karaf.shell">
+            #
+            # These properties are used to configure Karaf's ssh shell.
+            #
+
+            #
+            # Via sshPort and sshHost you define the address you can login into Karaf.
+            #
+            sshPort = 8101
+            sshHost = 0.0.0.0
+
+            #
+            # The sshIdleTimeout defines the inactivity timeout to logout the SSH session.
+            # The sshIdleTimeout is in milliseconds, and the default is set to 30 minutes.
+            #
+            sshIdleTimeout = 1800000
+
+            #
+            # sshRealm defines which JAAS domain to use for password authentication.
+            #
+            sshRealm = karaf
+
+            #
+            # sshRole defines the role required to access the console through ssh
+            #
+            sshRole = ssh
+
+            #
+            # The location of the hostKey file defines where the private/public key of the server
+            # is located. If no file is at the defined location it will be ignored.
+            #
+            hostKey = ${karaf.etc}/host.key
+
+            #
+            # The format used for hostKey.
+            # Possible values are simple (Karaf internal), or PEM (OpenSSH format)
+            #
+            hostKeyFormat = simple
+
+            #
+            # Role name used for SSH access authorization
+            # If not set, this defaults to the ${karaf.admin.role} configured in etc/system.properties
+            #
+            # sshRole = admin
+
+            #
+            # Self defined key size in 1024, 2048, 3072, or 4096
+            # If not set, this defaults to 4096.
+            #
+            # keySize = 4096
+
+            #
+            # Specify host key algorithm, defaults to RSA
+            #
+            # algorithm = RSA
+
+            #
+            # Specify the client log level (default is WARN)
+            # 0: ERROR
+            # 1: WARN
+            # 2: INFO
+            # 3: DEBUG
+            # 4: TRACE
+            #
+            #logLevel = 1
+
+            #
+            # Specify an additional welcome banner to be displayed when a user logs into the server.
+            #
+            # welcomeBanner =
+
+            #
+            # Defines the completion mode on the Karaf shell console. The possible values are:
+            # - GLOBAL: it's the same behavior as in previous Karaf releases. The completion displays all commands and all aliases
+            #           ignoring if you are in a subshell or not.
+            # - FIRST: the completion displays all commands and all aliases only when you are not in a subshell. When you are
+            #          in a subshell, the completion displays only the commands local to the subshell.
+            # - SUBSHELL: the completion displays only the subshells on the root level. When you are in a subshell, the completion
+            #             displays only the commands local to the subshell.
+            # This property define the default value when you use the Karaf shell console.
+            # You can change the completion mode directly in the shell console, using shell:completion command.
+            #
+            completionMode = GLOBAL
+
+            #
+            # Override allowed SSH cipher algorithms.
+            # Default: aes128-ctr,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc
+            #
+            # ciphers = aes128-ctr,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc
+
+            #
+            # Override allowed SSH HMAC algorithms.
+            # Default: hmac-sha2-512,hmac-sha2-256,hmac-sha1
+            #
+            # macs = hmac-sha2-512,hmac-sha2-256,hmac-sha1
+
+            #
+            # Override allowed SSH key exchange algorithms.
+            # Default: diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
+            #
+            # kexAlgorithms = diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
+
+            #
+            # Override moduli-url.
+            # Default: moduli-url not specified to use the internal one from SSHD
+            #
+            # moduli-url = external moduli-url users wanna use
+
+        </config>
+        <bundle dependency="true" start-level="30">mvn:org.fusesource.jansi/jansi/${jansi.version}</bundle>
+        <bundle dependency="true" start-level="30">mvn:org.jline/jline/${jline.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.core/${project.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.commands/${project.version}</bundle>
+    </feature>
+
+    <feature name="shell-compat" description="Karaf Shell Compatibility" version="${project.version}">
+        <feature>aries-blueprint</feature>
+        <feature>shell</feature>
+        <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.console/${project.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.table/${project.version}</bundle>
+    </feature>
+
+    <feature name="deployer" description="Karaf Deployer" version="${project.version}">
+        <bundle start="true" start-level="26">mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.features/${project.version}</bundle>
+        <conditional>
+            <condition>wrap</condition>
+            <bundle start="true" start-level="24">mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.wrap/${project.version}</bundle>
+        </conditional>
+        <conditional>
+            <condition>req:osgi.extender;filter:="(&amp;(osgi.extender=osgi.blueprint)(version>=1.0))"</condition>
+            <bundle start="true" start-level="24">mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.blueprint/${project.version}</bundle>
+        </conditional>
+        <conditional>
+            <condition>kar</condition>
+            <bundle start="true" start-level="24">mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.kar/${project.version}</bundle>
+        </conditional>
+    </feature>
+
+    <feature name="wrapper" description="Provide OS integration" version="${project.version}">
+        <bundle start-level="30">mvn:org.apache.karaf.wrapper/org.apache.karaf.wrapper.core/${project.version}</bundle>
+    </feature>
+    <feature name="service-wrapper" description="Provide OS integration (alias to wrapper feature)" version="${project.version}">
+        <feature>wrapper</feature>
+    </feature>
+
+    <feature name="obr" description="Provide OSGi Bundle Repository (OBR) support" version="${project.version}">
+        <bundle start-level="30">mvn:org.apache.felix/org.osgi.service.obr/${felix.obr.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.felix/org.apache.felix.bundlerepository/${felix.bundlerepository.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.karaf.obr/org.apache.karaf.obr.core/${project.version}</bundle>
+        <bundle start-level="30">mvn:org.ops4j.pax.url/pax-url-obr/${pax.url.version}/jar/uber</bundle>
+    </feature>
+
+    <feature name="bundle" description="Provide Bundle support" version="${project.version}">
+        <feature>jaas-boot</feature>
+        <bundle start-level="30" start="true">mvn:org.apache.karaf.bundle/org.apache.karaf.bundle.core/${project.version}</bundle>
+        <conditional>
+            <condition>management</condition>
+            <config name="jmx.acl.org.apache.karaf.bundle">
+                #
+                # JMX ACL specific to the org.apache.karaf:type=bundle,name=* MBean which maps to the Karaf MBean
+                # to control OSGi bundles.
+                #
+                install = manager
+                refresh = manager
+                resolve = manager
+                restart = manager
+                setStartLevel(java.lang.String, int)[/([1-4])?[0-9]/,/.*/] = admin
+                setStartLevel = manager
+                start(java.lang.String)[/([1-4])?[0-9]/] = admin
+                start = manager
+                stop(java.lang.String)[/([1-4])?[0-9]/] = admin
+                stop = manager
+                uninstall(java.lang.String)["0"] = #this is a comment, no roles can perform this operation
+                uninstall = admin
+                update(java.lang.String)[/([1-4])?[0-9]/] = admin
+                update(java.lang.String,java.lang.String)[/([1-4])?[0-9]/,/.*/] = admin
+                update = manager
+            </config>
+        </conditional>
+        <conditional>
+            <condition>shell</condition>
+            <config name="org.apache.karaf.command.acl.bundle">
+                #
+                # This configuration file defines the ACLs for commands in the bundle subshell
+                #
+                # For an explanation of the syntax of this file, see the file:
+                #   org.apache.karaf.command.acl.system.cfg
+                #
+                # This configuration relies on the fact that 'system' bundles need to be managed
+                # with the
+                #   -f (--force)
+                # flag. Operations with -f need admin permission. Most of these operations without
+                # the 'force' option can be done by a manager.
+                install = admin
+                refresh[/.*[-][f].*/] = admin
+                refresh = manager
+                restart[/.*[-][f].*/] = admin
+                restart = manager
+                start[/.*[-][f].*/] = admin
+                start = manager
+                stop[/.*[-][f].*/] = admin
+                stop = manager
+                uninstall[/.*[-][f].*/] = admin
+                uninstall = manager
+                update[/.*[-][f].*/] = admin
+                update = manager
+                watch = admin
+            </config>
+        </conditional>
+    </feature>
+
+    <feature name="config" description="Provide OSGi ConfigAdmin support" version="${project.version}">
+        <bundle start-level="30" start="true">mvn:org.apache.karaf.config/org.apache.karaf.config.core/${project.version}</bundle>
+        <conditional>
+            <condition>management</condition>
+            <config name="jmx.acl.org.apache.karaf.config">
+                #
+                # JMX ACL specific to the org.apache.karaf:type=config,name=* MBean which maps to the Karaf MBean to interact with the
+                # OSGi Config Admin service.
+                #
+                # For a description of the format of this file, see jmx.acl.cfg
+                #
+                # By default, only an admin can make changes to the JMX ACL and shell command rules, but managers can make
+                # changes to other PIDs.
+                #
+                appendProperty(java.lang.String,java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/,/.*/] = admin
+                appendProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/,/.*/] = admin
+                appendProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/,/.*/] = admin
+                appendProperty(java.lang.String,java.lang.String,java.lang.String) = manager
+                create(java.lang.String)[/jmx[.]acl.*/] = admin
+                create(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/] = admin
+                create(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/] = admin
+                create(java.lang.String) = manager
+                delete(java.lang.String)[/jmx[.]acl.*/] = admin
+                delete(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/] = admin
+                delete(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/] = admin
+                delete(java.lang.String) = manager
+                deleteProperty(java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/] = admin
+                deleteProperty(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/] = admin
+                deleteProperty(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/] = admin
+                deleteProperty(java.lang.String,java.lang.String) = manager
+                setProperty(java.lang.String,java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/,/.*/] = admin
+                setProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/,/.*/] = admin
+                setProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/,/.*/] = admin
+                setProperty(java.lang.String,java.lang.String,java.lang.String) = manager
+                update(java.lang.String,java.util.Map)[/jmx[.]acl.*/,/.*/] = admin
+                update(java.lang.String,java.util.Map)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/] = admin
+                update(java.lang.String,java.util.Map)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/] = admin
+                update(java.lang.String,java.util.Map) = manager
+            </config>
+        </conditional>
+        <conditional>
+            <condition>shell</condition>
+            <config name="org.apache.karaf.command.acl.config">
+                #
+                # This configuration file defines the ACLs for various commands in the config subshell
+                #
+                # For an explanation of the syntax of this file, see the file:
+                #   org.apache.karaf.command.acl.system.cfg
+                #
+                cancel = manager
+                delete = admin
+                edit = manager
+                edit[/.*jmx[.]acl.*/] = admin
+                edit[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin
+                edit[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin
+                property-append = manager
+                property-append[/.*jmx[.]acl.*/] = admin
+                property-append[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin
+                property-append[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin
+                property-delete = manager
+                property-delete[/.*jmx[.]acl.*/] = admin
+                property-delete[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin
+                property-delete[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin
+                property-set = manager
+                property-set[/.*jmx[.]acl.*/] = admin
+                property-set[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin
+                property-set[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin
+                update = manager
+            </config>
+        </conditional>
+    </feature>
+
+    <feature name="diagnostic" description="Provide Diagnostic support" version="${project.version}">
+        <bundle start-level="30" start="true">mvn:org.apache.karaf.diagnostic/org.apache.karaf.diagnostic.core/${project.version}</bundle>
+        <library export="true" type="boot">
+            mvn:org.apache.karaf.diagnostic/org.apache.karaf.diagnostic.boot/${project.version}
+        </library>
+    </feature>
+
+    <feature name="instance" description="Provide Instance support" version="${project.version}">
+        <bundle start-level="30" start="true">mvn:org.apache.karaf.instance/org.apache.karaf.instance.core/${project.version}</bundle>
+    </feature>
+
+    <feature name="jaas" description="Provide JAAS support" version="${project.version}">
+        <config name="org.apache.karaf.jaas">
+            #
+            # Boolean enabling / disabling encrypted passwords
+            #
+            encryption.enabled = false
+
+            #
+            # Encryption Service name
+            #   the default one is 'basic'
+            #   a more powerful one named 'jasypt' is available
+            #       when installing the encryption feature
+            #
+            encryption.name =
+
+            #
+            # Encryption prefix
+            #
+            encryption.prefix = {CRYPT}
+
+            #
+            # Encryption suffix
+            #
+            encryption.suffix = {CRYPT}
+
+            #
+            # Set the encryption algorithm to use in Karaf JAAS login module
+            # Supported encryption algorithms follow:
+            #   MD2
+            #   MD5
+            #   SHA-1
+            #   SHA-256
+            #   SHA-384
+            #   SHA-512
+            #
+            encryption.algorithm = MD5
+
+            #
+            # Encoding of the encrypted password.
+            # Can be:
+            #   hexadecimal
+            #   base64
+            #
+            encryption.encoding = hexadecimal
+        </config>
+        <feature>jaas-boot</feature>
+        <bundle start-level="30" start="true">mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.config/${project.version}</bundle>
+        <bundle start-level="30" start="true">mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.modules/${project.version}</bundle>
+        <conditional>
+            <condition>aries-blueprint</condition>
+            <bundle start-level="30" start="true">mvn:org.apache.karaf.jaas.blueprint/org.apache.karaf.jaas.blueprint.config/${project.version}</bundle>
+        </conditional>
+        <conditional>
+            <condition>shell</condition>
+            <config name="org.apache.karaf.command.acl.jaas">
+                #
+                # This configuration file defines the ACLs for commands in the jaas subshell
+                # Jaas commands commands have no effect until update is called.
+                update = admin
+            </config>
+            <bundle start-level="30" start="true">mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.command/${project.version}</bundle>
+        </conditional>
+    </feature>
+
+    <feature name="log" description="Provide Log support" version="${project.version}">
+        <config name="org.apache.karaf.log">
+            #
+            # This configuration file is used to configure the default values for the log:display
+            # and log:exception-display commands.
+            #
+
+            #
+            # The number of log statements to be displayed using log:display. It also defines the number
+            # of lines searched for exceptions using log:exception-display. You can override this value
+            # at runtime using -n in log:display.
+            #
+            size = I"500"
+
+            #
+            # The pattern used to format the log statement when using log:display. This pattern is according
+            # to the log4j layout. You can override this parameter at runtime using log:display with -p.
+            #
+            pattern = "%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n"
+        </config>
+        <bundle start-level="30" start="true">mvn:org.apache.karaf.log/org.apache.karaf.log.core/${project.version}</bundle>
+    </feature>
+
+    <feature name="package" version="${project.version}" description="Package commands and mbeans">
+        <bundle start-level="30">mvn:org.apache.karaf.package/org.apache.karaf.package.core/${project.version}</bundle>
+    </feature>
+
+    <feature name="service" description="Provide Service support" version="${project.version}">
+        <bundle start-level="30" start="true">mvn:org.apache.karaf.service/org.apache.karaf.service.core/${project.version}</bundle>
+    </feature>
+
+    <feature name="system" description="Provide System support" version="${project.version}">
+        <bundle start-level="30" start="true">mvn:org.apache.karaf.system/org.apache.karaf.system.core/${project.version}</bundle>
+        <conditional>
+            <condition>shell</condition>
+            <config name="org.apache.karaf.command.acl.system">
+                #
+                # This configuration file defines the ACLs for commands in the system subshell
+                #
+                property = admin
+                shutdown = admin
+                start-level[/.*[0-9][0-9][0-9]+.*/] = manager # manager can set startlevels above 100
+                start-level[/[^0-9]*/] = viewer               # viewer can obtain the current start level
+                start-level = admin                           # admin can set any start level, including &lt; 100
+            </config>
+        </conditional>
+    </feature>
+
+    <feature name="http" version="${project.version}" description="Implementation of the OSGI HTTP Service">
+        <feature dependency="true">pax-http-service</feature>
+        <requirement>http-service</requirement>
+    </feature>
+
+    <feature name="httplite" version="${project.version}" description="Felix Httplite OSGi HTTP Service">
+        <bundle start-level="30">mvn:org.apache.felix/org.apache.felix.httplite.complete/${felix.httplite.version}</bundle>
+        <capability>http-service;provider:=felix-httplite</capability>
+    </feature>
+
+    <feature name="pax-http-service" description="Pax-Web OSGi HTTP Service">
+        <feature>pax-http</feature>
+        <bundle start-level="30">mvn:org.apache.karaf.http/org.apache.karaf.http.core/${project.version}</bundle>
+        <capability>http-service;provider:=pax-http</capability>
+        <conditional>
+            <condition>webconsole</condition>
+            <bundle start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.http/${project.version}</bundle>
+        </conditional>
+    </feature>
+
+    <feature name="http-whiteboard" description="Provide HTTP Whiteboard pattern support" version="${project.version}">
+    	<feature>http</feature>
+        <feature>pax-http-whiteboard</feature>
+    </feature>
+
+    <feature name="war" description="Turn Karaf as a full WebContainer" version="${project.version}">
+        <feature>http</feature>
+        <feature>pax-war</feature>
+        <bundle start-level="30">mvn:org.apache.karaf.web/org.apache.karaf.web.core/${project.version}</bundle>
+    </feature>
+    
+    <feature name="jetty" version="${dependency.jetty.version}">
+        <bundle dependency="true" start-level="30">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/${servicemix.specs.version}</bundle>
+        <bundle dependency="true" start-level="30">mvn:${servlet.spec.groupId}/${servlet.spec.artifactId}/${servlet.spec.version}</bundle>
+        <bundle dependency="true" start-level="30">mvn:javax.mail/mail/${javax.mail.version}</bundle>
+        <bundle dependency="true" start-level="30">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo.jta-spec.version}</bundle>
+        <bundle dependency="true" start-level="30">mvn:javax.annotation/javax.annotation-api/${javax.annotation.version}</bundle>
+        <bundle dependency="true" start-level="30">mvn:org.apache.geronimo.specs/geronimo-jaspic_1.0_spec/${geronimo.jaspic-spec.version}</bundle>
+        <bundle dependency="true" start-level="30">mvn:org.ow2.asm/asm-all/${asm.version}</bundle>
+        <bundle dependency="true" start-level="30">mvn:org.apache.aries.spifly/org.apache.aries.spifly.dynamic.bundle/${aries.spifly.version}</bundle>
+        <bundle dependency="true" start-level="30">mvn:org.apache.aries/org.apache.aries.util/${aries.util.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-continuation/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-http/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-io/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-jaspi/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-plus/${dependency.jetty.version}</bundle>
+       	<bundle start-level="30">mvn:org.eclipse.jetty/jetty-jndi/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-rewrite/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-security/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-server/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-servlet/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-servlets/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-util/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-util-ajax/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-webapp/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-jaas/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-xml/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-client/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-deploy/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-jmx/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty.websocket/websocket-server/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty.websocket/websocket-client/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty.websocket/websocket-common/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty.websocket/websocket-servlet/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty.websocket/websocket-api/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty.websocket/javax-websocket-server-impl/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty.websocket/javax-websocket-client-impl/${dependency.jetty.version}</bundle>
+        <bundle start-level="30">mvn:javax.websocket/javax.websocket-api/${dependency.websocket.version}</bundle>
+    </feature>
+
+    <feature name="jetty" version="8.1.14.v20131031">
+        <bundle dependency="true" start-level="30">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/${servicemix.specs.version}</bundle>
+        <bundle dependency="true" start-level="30">mvn:javax.servlet/javax.servlet-api/3.1.0</bundle>
+        <bundle dependency="true" start-level="30">mvn:javax.mail/mail/${javax.mail.version}</bundle>
+        <bundle dependency="true" start-level="30">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo.jta-spec.version}</bundle>
+        <bundle dependency="true" start-level="30">mvn:org.apache.geronimo.specs/geronimo-annotation_1.1_spec/1.0.1</bundle>
+        <bundle dependency="true" start-level="30">mvn:org.apache.geronimo.specs/geronimo-jaspic_1.0_spec/1.1</bundle>
+        <bundle start-level="30">mvn:org.eclipse.jetty.aggregate/jetty-all-server/8.1.14.v20131031</bundle>
+    </feature>
+
+    <feature name="kar" description="Provide KAR (KARaf archive) support" version="${project.version}">
+        <bundle start-level="30">mvn:org.apache.karaf.kar/org.apache.karaf.kar.core/${project.version}</bundle>
+        <conditional>
+            <condition>shell</condition>
+            <config name="org.apache.karaf.command.acl.kar">
+                #
+                # This configuration file defines the ACLs for commands in the kar subshell
+                #
+                # For an explanation of the syntax of this file, see the file:
+                #   org.apache.karaf.command.acl.system.cfg
+                #
+                install = admin
+                uninstall = admin
+            </config>
+        </conditional>
+    </feature>
+
+    <feature name="webconsole" description="Base support of the Karaf WebConsole" version="${project.version}">
+        <feature>jaas-boot</feature>
+        <config name="org.apache.karaf.webconsole">
+            realm=karaf
+        </config>
+        <feature>http</feature>
+        <bundle start-level="30">mvn:org.apache.felix/org.apache.felix.metatype/${felix.metatype.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.console/${project.version}</bundle>
+        <conditional>
+            <condition>instance</condition>
+            <bundle start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.instance/${project.version}</bundle>
+        </conditional>
+        <conditional>
+            <condition>shell</condition>
+            <bundle start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.gogo/${project.version}</bundle>
+        </conditional>
+        <conditional>
+            <condition>feature</condition>
+            <bundle start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.features/${project.version}</bundle>
+        </conditional>
+    </feature>
+
+    <feature name="ssh" description="Provide a SSHd server on Karaf" version="${project.version}">
+        <feature>shell</feature>
+        <feature>jaas</feature>
+        <bundle start="true" start-level="30">mvn:org.apache.sshd/sshd-core/${sshd.version}</bundle>
+        <bundle start="true" start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.not-yet-commons-ssl/0.3.11_1</bundle>
+        <bundle start="true" start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.ssh/${project.version}</bundle>
+    </feature>
+
+    <feature name="management" description="Provide a JMX MBeanServer and a set of MBeans in Karaf" version="${project.version}">
+        <config name="jmx.acl">
+            #
+            # Generic JMX ACL
+            #
+            # This file defines the roles required for MBean operations for MBeans that 
+            # do not have this defined explicitly.
+            #
+            # The definition of ACLs for JMX operations works as follows:
+            #
+            # The required roles for JMX operations are defined in configuration files
+            # read via OSGi ConfigAdmin.
+            #
+            # JMX RBAC-related configuration is prefixed with jmx.acl and based on the
+            # JMX ObjectName that it applies to. For example specific configuration for
+            # an MBean with the following objectName: foo.bar:type=Test can be placed in
+            # a configuration file called jmx.acl.foo.bar.Test.cfg. More generic
+            # configuration can be placed in the domain (e.g. jmx.acl.foo.bar.cfg) or
+            # at the top level (jmx.acl.cfg). A simple configuration file looks like
+            # this:
+            #   test : admin
+            #   getVal : manager, viewer
+            #   
+            # The system looks for required roles using the following process:
+            # The most specific configuration file/pid is tried first. E.g. in the
+            # above example the jmx.acl.foo.bar.Test.cfg is looked at first. In this
+            # configuration, the system looks for a:
+            #   1. Specific match for the current invocation, e.g. test(int)["17"] : role1
+            #   2. Reg exp match for the current invocation, e.g. test(int)[/[0-9]/] : role2
+            #   In both cases the passed argument is converted to a String for the
+            # comparison.
+            #   If any of the above match all the roles with matching definitions
+            # are collected and allowed. If no matches are found the following is tried:
+            #   3. Signature match for the invocation, e.g. test(int) : role3. If
+            # matched the associated roles are used.
+            #   4. Method name match for the invocation, e.g. test : role4. If matched
+            # the associated roles are used.
+            #   5. A method name wildcard match, e.g. te* : role5. For all the
+            # wildcard matches found in the current configuration file, the roles
+            # associated with the longest match are used. So if you have te* and * and
+            # the method invoked is 'test', then the roles defined with te* are used,
+            # not the ones defined with *.
+            # If no matching definition is found in the current configuration file, a 
+            # more general configuration file is looked for. So jmx.acl.foo.bar.cfg is 
+            # tried next, this matches the domain of the MBean. If there is no match 
+            # found in the domain the most generic configuration file is consulted
+            # (jmx.acl.cfg).
+            # If a matching definition is found, this is used and the process will not
+            # look for any other matching definitions. So the most specific definition
+            # always takes precedence.
+            #
+            list* = viewer
+            get* = viewer
+            is* = viewer
+            set* = admin
+            * = admin
+        </config>
+        <config name="jmx.acl.org.apache.karaf.security.jmx">
+            #
+            # JMX ACL specific to the org.apache.karaf:type=security,area=jmx MBean which
+            # can be used to find out whether the currently logged in JMX user can invoke
+            # the requested JMX operations.
+            #
+            # For a description of the format of this file, see jmx.acl.cfg
+            #
+            canInvoke = viewer
+        </config>
+        <config name="jmx.acl.java.lang.Memory">
+            #
+            # JMX ACL specific to the java.lang.Memory MBean
+            #
+            # For a description of the format of this file, see jmx.acl.cfg
+            #
+            gc = manager
+        </config>
+        <config name="jmx.acl.osgi.compendium.cm">
+            #
+            # JMX ACL specific to osgi.compendium.cm MBean
+            #
+            # For a description of the format of this file, see jmx.acl.cfg
+            #
+            # This configuration file configures the management of ConfigAdmin via the standard ConfigAdmin MBean
+            # Such that only an admin can make changes to the JMX ACL rules, but managers can make
+            # changes to other PIDs.
+            #
+            createFactoryConfiguration(java.lang.String)[/jmx[.]acl.*/] = admin
+            createFactoryConfiguration(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin
+            createFactoryConfiguration(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin
+            createFactoryConfiguration(java.lang.String) = manager
+            createFactoryConfigurationForLocation(java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/] = admin
+            createFactoryConfigurationForLocation(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl[.].+/,/.*/] = admin
+            createFactoryConfigurationForLocation(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl[.].+/,/.*/] = admin
+            createFactoryConfigurationForLocation(java.lang.String,java.lang.String) = manager
+            delete(java.lang.String)[/jmx[.]acl.*/] = admin
+            delete(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin
+            delete(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin
+            delete(java.lang.String) = manager
+            deleteConfigurations = admin
+            deleteForLocation(java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/] = admin
+            deleteForLocation(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl[.].+/,/.*/] = admin
+            deleteForLocation(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl[.].+/,/.*/] = admin
+            deleteForLocation(java.lang.String,java.lang.String) = manager
+            update(java.lang.String,javax.management.openmbean.TabularData)[/jmx[.]acl.*/,/.*/] = admin
+            update(java.lang.String,javax.management.openmbean.TabularData)[/org[.]apache[.]karaf[.]command[.]acl[.].+/,/.*/] = admin
+            update(java.lang.String,javax.management.openmbean.TabularData)[/org[.]apache[.]karaf[.]service[.]acl[.].+/,/.*/] = admin
+            update(java.lang.String,javax.management.openmbean.TabularData) = manager
+            updateForLocation(java.lang.String,java.lang.String,javax.management.openmbean.TabularData)[/jmx[.]acl.*/,/.*/,/.*/] = admin
+            updateForLocation(java.lang.String,java.lang.String,javax.management.openmbean.TabularData)[/org[.]apache[.]karaf[.]command[.]acl[.].+/,/.*/,/.*/] = admin
+            updateForLocation(java.lang.String,java.lang.String,javax.management.openmbean.TabularData)[/org[.]apache[.]karaf[.]service[.]acl[.].+/,/.*/,/.*/] = admin
+            updateForLocation(java.lang.String,java.lang.String,javax.management.openmbean.TabularData) = manager
+        </config>
+        <config name="org.apache.karaf.management">
+            #
+            # The properties in this file define the configuration of Apache Karaf's JMX Management
+            #
+
+            #
+            # Port number for RMI registry connection
+            #
+            rmiRegistryPort = 1099
+
+            #
+            # Host for RMI registry
+            #
+            rmiRegistryHost = 127.0.0.1
+
+            #
+            # Port number for RMI server connection
+            #
+            rmiServerPort = 44444
+
+            #
+            # Host for RMI server
+            #
+            rmiServerHost = 127.0.0.1
+
+            #
+            # Name of the JAAS realm used for authentication
+            #
+            jmxRealm = karaf
+
+            #
+            # The service URL for the JMXConnectorServer
+            #
+            serviceUrl = service:jmx:rmi://${rmiServerHost}:${rmiServerPort}/jndi/rmi://${rmiRegistryHost}:${rmiRegistryPort}/karaf-${karaf.name}
+
+            #
+            # Whether any threads started for the JMXConnectorServer should be started as daemon threads
+            #
+            daemon = true
+
+            #
+            # Whether the JMXConnectorServer should be started in a separate thread
+            #
+            threaded = true
+
+            #
+            # The ObjectName used to register the JMXConnectorServer
+            #
+            objectName = connector:name=rmi
+
+            #
+            # Timeout to lookup for the keystore in case of SSL authentication usage
+            #
+            #keyStoreAvailabilityTimeout = 5000
+
+            #
+            # The type of authentication
+            #
+            #authenticatorType = password
+
+            #
+            # Enable or not SSL/TLS
+            #
+            #secured = false
+
+            #
+            # Secure algorithm to use
+            #
+            #secureAlgorithm = default
+
+            #
+            # Secure protocol to use
+            #
+            #secureProtocol = TLS
+
+            #
+            # Keystore to use for secure mode
+            #
+            #keyStore = karaf.ks
+
+            #
+            # Alias of the key to use in the keystore
+            #
+            #keyAlias = karaf
+
+            #
+            # Truststore to use for secure mode
+            #
+            #trustStore = karaf.ts
+
+            #
+            # Create the JMX RMI registry
+            #
+            #createRmiRegistry = true
+
+            #
+            # Locate the JMX RMI registry
+            #
+            #locateRmiRegistry = true
+
+            #
+            # Locate an existing MBean server if possible (usefull when Karaf is embedded)
+            #
+            #locateExistingMBeanServerIfPossible = true
+        </config>
+        <feature>jaas</feature>
+        <bundle dependency="true" start-level="20">mvn:org.apache.aries/org.apache.aries.util/${aries.util.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.karaf.management/org.apache.karaf.management.server/${project.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.aries.jmx/org.apache.aries.jmx.api/${aries.jmx.api.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.aries.jmx/org.apache.aries.jmx.core/${aries.jmx.core.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.aries.jmx/org.apache.aries.jmx.whiteboard/${aries.jmx.whiteboard.version}</bundle>
+        <conditional>
+            <condition>aries-blueprint</condition>
+            <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>
+    </feature>
+
+    <feature name="scheduler" description="Provide a scheduler service in Karaf to fire events" version="${project.version}">
+        <bundle start-level="30">mvn:org.apache.karaf.scheduler/org.apache.karaf.scheduler.core/${project.version}</bundle>
+    </feature>
+
+    <feature name="eventadmin" description="OSGi Event Admin service specification for event-based communication" version="${project.version}">
+        <config name="org.apache.felix.eventadmin.impl.EventAdmin">
+            org.apache.felix.eventadmin.AddTimestamp=true
+            org.apache.felix.eventadmin.AddSubject=true
+        </config>
+        <bundle start-level="5">mvn:org.apache.felix/org.apache.felix.metatype/${felix.metatype.version}</bundle>
+        <bundle start-level="5">mvn:org.apache.karaf.services/org.apache.karaf.services.eventadmin/${project.version}</bundle>
+        <conditional>
+            <condition>shell</condition>
+            <bundle>mvn:org.apache.karaf/org.apache.karaf.event/${project.version}</bundle>
+        </conditional>
+        <conditional>
+            <condition>webconsole</condition>
+            <bundle start-level="30">mvn:org.apache.felix/org.apache.felix.webconsole.plugins.event/${felix.eventadmin.webconsole.plugin.version}</bundle>
+        </conditional>
+    </feature>
+    
+    <feature name="jasypt-encryption" description="Advanced encryption support for Karaf security" version="${project.version}">
+        <feature>jaas</feature>
+        <bundle dependency="true" start-level="30">mvn:commons-codec/commons-codec/${commons-codec.version}</bundle>
+        <bundle dependency="true" start-level="30">mvn:commons-lang/commons-lang/${commons-lang.version}</bundle>
+        <bundle dependency="true" start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jasypt/${jasypt.bundle.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.jasypt/${project.version}</bundle>
+        <conditional>
+            <condition>aries-blueprint</condition>
+            <bundle start-level="30" start="true">mvn:org.apache.karaf.jaas.blueprint/org.apache.karaf.jaas.blueprint.jasypt/${project.version}</bundle>
+        </conditional>
+        <conditional>
+            <condition>spring</condition>
+            <bundle start-level="30" start="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jasypt-spring31/${jasypt.bundle.version}</bundle>
+        </conditional>
+    </feature>
+
+    <feature name="scr" description="Declarative Service support" version="${project.version}">
+        <bundle dependency="true" start-level="30">mvn:org.apache.felix/org.apache.felix.metatype/${felix.metatype.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.felix/org.apache.felix.scr/${felix.scr.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.felix/org.apache.felix.scr.compat/${felix.scr.compat.version}</bundle>
+        <conditional>
+            <condition>management</condition>
+            <bundle start-level="30">mvn:org.apache.karaf.scr/org.apache.karaf.scr.management/${project.version}</bundle>
+        </conditional>
+        <conditional>
+            <condition>webconsole</condition>
+            <bundle start-level="30">mvn:org.apache.felix/org.apache.felix.inventory/${felix.inventory.version}</bundle>
+            <bundle start-level="30">mvn:org.apache.felix/org.apache.felix.webconsole.plugins.ds/${felix.scr.webconsole.plugin.version}</bundle>
+        </conditional>
+        <conditional>
+            <condition>shell</condition>
+            <bundle start-level="30">mvn:org.apache.karaf.scr/org.apache.karaf.scr.command/${project.version}</bundle>
+        </conditional>
+        <conditional>
+            <condition>bundle</condition>
+            <bundle start-level="30">mvn:org.apache.karaf.scr/org.apache.karaf.scr.state/${project.version}</bundle>
+        </conditional>
+        <capability>
+            osgi.service;effective:=active;objectClass=org.apache.felix.scr.ScrService,
+            osgi.extender;osgi.extender="osgi.component";uses:="org.osgi.service.component";version:Version="1.2.1"
+        </capability>
+    </feature>
+
+    <feature name="blueprint-web" description="Provides an OSGI-aware Servlet ContextListener for bootstrapping
+        blueprint inside web-bundle containers" version="${project.version}">
+        <feature>war</feature>
+        <feature>aries-blueprint</feature>
+        <bundle>mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.webosgi/${aries.blueprint.web.version}</bundle>
+    </feature>
+
+    <feature name="wrap" description="Wrap URL handler">
+        <bundle start="true" start-level="5">mvn:org.ops4j.pax.url/pax-url-wrap/${pax.url.version}/jar/uber</bundle>
+    </feature>
+
+    <feature name="profile" description="Profiles support" version="${project.version}">
+        <config name="org.apache.karaf.profile">
+            profilesDirectory = ${karaf.home}/profiles
+        </config>
+        <bundle>mvn:org.apache.karaf.profile/org.apache.karaf.profile.core/${project.version}</bundle>
+        <bundle>mvn:org.apache.karaf.tooling/org.apache.karaf.tools.utils/${project.version}</bundle>
+        <bundle>mvn:commons-io/commons-io/${commons-io.version}</bundle>
+    </feature>
+
+    <feature name="jolokia" description="Jolokia monitoring support" version="${jolokia.version}">
+        <feature>http</feature>
+        <config name="org.jolokia.osgi">
+            org.jolokia.user=karaf
+            org.jolokia.realm=karaf
+            org.jolokia.authMode=jaas
+        </config>
+        <bundle>mvn:org.jolokia/jolokia-osgi/${jolokia.version}</bundle>
+    </feature>
+
+    <feature name="maven" description="Commands for Maven configuration of services from pax-url-aether" version="${project.version}">
+        <feature>shell</feature>
+        <bundle start-level="30" start="true">mvn:org.apache.karaf.maven/org.apache.karaf.maven.core/${project.version}</bundle>
+        <bundle dependency="true">mvn:org.apache.commons/commons-lang3/${commons-lang3.version}</bundle>
+        <config name="org.apache.karaf.command.acl.maven">
+            #
+            # This configuration file defines the ACLs for maven configuration commands
+            #
+            summary[/.*[-][x].*/] = admin
+            summary = viewer
+            http-proxy-list[/.*[-][x].*/] = admin
+            http-proxy-list = viewer
+            repository-list[/.*[-][x].*/] = admin
+            repository-list = viewer
+            http-proxy = admin
+            password = admin
+            repository-add = admin
+            repository-change = admin
+            repository-remove = admin
+        </config>
+    </feature>
+
+    <feature name="standard" description="Wrap feature describing all features part of a standard distribution" version="${project.version}">
+        <feature>wrap</feature>
+        <feature>aries-blueprint</feature>
+        <feature>shell</feature>
+        <feature>shell-compat</feature>
+        <feature>feature</feature>
+        <feature>jaas</feature>
+        <feature>ssh</feature>
+        <feature>management</feature>
+        <feature>bundle</feature>
+        <feature>config</feature>
+        <feature>deployer</feature>
+        <feature>diagnostic</feature>
+        <feature>feature</feature>
+        <feature>instance</feature>
+        <feature>kar</feature>
+        <feature>log</feature>
+        <feature>package</feature>
+        <feature>service</feature>
+        <feature>system</feature>
+    </feature>
+
+    <feature name="minimal" description="Wrap feature describing all features part of a minimal distribution" version="${project.version}">
+        <feature>jaas</feature>
+        <feature>shell</feature>
+        <feature>feature</feature>
+        <feature>ssh</feature>
+        <feature>management</feature>
+        <feature>bundle</feature>
+        <feature>config</feature>
+        <feature>deployer</feature>
+        <feature>diagnostic</feature>
+        <feature>instance</feature>
+        <feature>kar</feature>
+        <feature>log</feature>
+        <feature>package</feature>
+        <feature>service</feature>
+        <feature>system</feature>
+    </feature>
+
+</features>

http://git-wip-us.apache.org/repos/asf/karaf/blob/733c4951/itests/src/test/java/org/apache/karaf/itests/features/XATest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/features/XATest.java b/itests/src/test/java/org/apache/karaf/itests/features/XATest.java
index 72a8399..d005c1d 100644
--- a/itests/src/test/java/org/apache/karaf/itests/features/XATest.java
+++ b/itests/src/test/java/org/apache/karaf/itests/features/XATest.java
@@ -61,6 +61,12 @@ public class XATest extends KarafTestSupport {
         result.add(replaceConfigurationFile("etc/org.ops4j.connectionfactory-artemis.cfg", getConfigFile("/org/apache/karaf/itests/features/org.ops4j.connectionfactory-artemis.cfg")));
         result.add(replaceConfigurationFile("etc/org.ops4j.datasource-derby.cfg", getConfigFile("/org/apache/karaf/itests/features/org.ops4j.datasource-derby.cfg")));
         result.add(replaceConfigurationFile("etc/xa-test-camel.xml", getConfigFile("/org/apache/karaf/itests/features/xa-test-camel.xml")));
+        if (System.getProperty("java.version").startsWith("9")) {
+            //need asm 6.x which support java9 to run this test
+            result.add(replaceConfigurationFile("system/org/apache/karaf/features/standard/" 
+                + version + "/standard-" + version + "-features.xml", 
+                getConfigFile("/etc/feature.xml")));
+        }
         return result.toArray(new Option[result.size()]);
     }
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/733c4951/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 5572e73..469bf04 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1751,7 +1751,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-enforcer-plugin</artifactId>
-                    <version>1.4.1</version>
+                    <version>3.0.0-M1</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
@@ -2314,6 +2314,7 @@
         <profile>
             <id>java9</id>
             <properties>
+                <easymock.version>3.5</easymock.version>
                 <surefire.argLine>--add-opens java.base/java.security=ALL-UNNAMED
                                   --add-opens java.base/java.net=ALL-UNNAMED 
                                   --add-opens java.base/java.lang=ALL-UNNAMED

http://git-wip-us.apache.org/repos/asf/karaf/blob/733c4951/service/guard/pom.xml
----------------------------------------------------------------------
diff --git a/service/guard/pom.xml b/service/guard/pom.xml
index c6214d3..2169d29 100644
--- a/service/guard/pom.xml
+++ b/service/guard/pom.xml
@@ -119,5 +119,16 @@
             </plugin>
         </plugins>
     </build>
+    <profiles>
+        <profile>
+            <id>java9</id>
+            <properties>
+                <asm.version>6.0_BETA</asm.version> 
+            </properties>
+            <activation>
+                <jdk>9</jdk>
+            </activation>
+        </profile>
+    </profiles>
 
 </project>

http://git-wip-us.apache.org/repos/asf/karaf/blob/733c4951/tooling/karaf-maven-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/pom.xml b/tooling/karaf-maven-plugin/pom.xml
index ec6cc30..974c32e 100644
--- a/tooling/karaf-maven-plugin/pom.xml
+++ b/tooling/karaf-maven-plugin/pom.xml
@@ -125,9 +125,18 @@
                     <groupId>org.eclipse.aether</groupId>
                     <artifactId>aether-util</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>org.codehaus.plexus</groupId>
+                    <artifactId>plexus-archiver</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
         <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-archiver</artifactId>
+            <version>3.5</version>
+        </dependency>
+        <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.fileinstall</artifactId>
         </dependency>
@@ -376,6 +385,8 @@
         <profile>
 	        <id>java9</id>
 	        <properties>
+                <plexus-utils.version>3.1.0</plexus-utils.version>
+                <asm.version>6.0_BETA</asm.version>
                 <mvn.opts>--add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED --add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED --add-exports=java.xml.bind/com.sun.xml.internal.bind.v2.runtime=ALL-UNNAMED --add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED --add-modules java.activation,java.xml.ws.annotation,java.corba,java.transaction,java.xml.bind,java.xml.ws -Djava.io.tmpdir=${project.build.directory}</mvn.opts>
 	        </properties>
 	        <activation>


[2/2] karaf git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/karaf

Posted by ff...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/karaf


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

Branch: refs/heads/master
Commit: a6d51d5f6ee37c7c2517c6e45b37d9f58814f58e
Parents: 733c495 dafbc36
Author: Freeman Fang <fr...@gmail.com>
Authored: Sat Sep 30 15:58:54 2017 +0800
Committer: Freeman Fang <fr...@gmail.com>
Committed: Sat Sep 30 15:58:54 2017 +0800

----------------------------------------------------------------------
 .../java/org/apache/karaf/diagnostic/common/LogDumpProvider.java   | 2 +-
 .../src/main/java/org/apache/karaf/profile/assembly/Builder.java   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------