You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by ha...@apache.org on 2015/10/27 00:58:20 UTC
[02/12] incubator-brooklyn git commit: [BROOKLYN-183] Skeleton for
karaf container
[BROOKLYN-183] Skeleton for karaf container
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/b9d5a46f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/b9d5a46f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/b9d5a46f
Branch: refs/heads/master
Commit: b9d5a46f383ee3e13cabce74725db04baede2b24
Parents: 9a80ebe
Author: Hadrian Zbarcea <ha...@apache.org>
Authored: Tue Sep 22 20:05:01 2015 -0400
Committer: Ciprian Ciubotariu <ch...@gmx.net>
Committed: Sun Oct 25 00:58:37 2015 +0300
----------------------------------------------------------------------
karaf/apache-brooklyn/pom.xml | 123 +++++++++++++++++
.../filtered-resources/etc/branding.properties | 35 +++++
.../src/main/resources/etc/custom.properties | 114 ++++++++++++++++
.../resources/etc/org.ops4j.pax.logging.cfg | 46 +++++++
.../src/main/resources/etc/system.properties | 133 +++++++++++++++++++
karaf/features/pom.xml | 54 ++++++++
karaf/features/src/main/resources/features.xml | 12 ++
karaf/pom.xml | 123 +++++++++++++++++
pom.xml | 1 +
9 files changed, 641 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b9d5a46f/karaf/apache-brooklyn/pom.xml
----------------------------------------------------------------------
diff --git a/karaf/apache-brooklyn/pom.xml b/karaf/apache-brooklyn/pom.xml
new file mode 100755
index 0000000..f3374a6
--- /dev/null
+++ b/karaf/apache-brooklyn/pom.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.brooklyn</groupId>
+ <artifactId>brooklyn-karaf</artifactId>
+ <version>0.9.0-SNAPSHOT</version> <!-- BROOKLYN_VERSION -->
+ </parent>
+
+ <artifactId>apache-brooklyn</artifactId>
+ <packaging>karaf-assembly</packaging>
+ <name>Brooklyn Karaf Distro</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.karaf.features</groupId>
+ <artifactId>framework</artifactId>
+ <version>${karaf.version}</version>
+ <type>kar</type>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.karaf.features</groupId>
+ <artifactId>standard</artifactId>
+ <classifier>features</classifier>
+ <version>${karaf.version}</version>
+ <type>xml</type>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.karaf.features</groupId>
+ <artifactId>enterprise</artifactId>
+ <classifier>features</classifier>
+ <version>${karaf.version}</version>
+ <type>xml</type>
+ <scope>runtime</scope>
+ </dependency>
+
+ <!--dependency>
+ <groupId>org.apache.brooklyn</groupId>
+ <artifactId>features</artifactId>
+ <version>${project.version}</version>
+ <type>xml</type>
+ <classifier>features</classifier>
+ <scope>runtime</scope>
+ </dependency-->
+
+ </dependencies>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>false</filtering>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/filtered-resources</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </resource>
+ </resources>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.karaf.tooling</groupId>
+ <artifactId>karaf-maven-plugin</artifactId>
+ <version>${karaf.version}</version>
+ <extensions>true</extensions>
+ <configuration>
+ <bootFeatures>
+ <bootFeature>aries-blueprint</bootFeature>
+ <bootFeature>bundle</bootFeature>
+ <bootFeature>config</bootFeature>
+ <bootFeature>deployer</bootFeature>
+ <bootFeature>diagnostic</bootFeature>
+ <bootFeature>feature</bootFeature>
+ <bootFeature>instance</bootFeature>
+ <bootFeature>jaas</bootFeature>
+ <bootFeature>kar</bootFeature>
+ <bootFeature>log</bootFeature>
+ <bootFeature>management</bootFeature>
+ <bootFeature>package</bootFeature>
+ <bootFeature>service</bootFeature>
+ <bootFeature>shell</bootFeature>
+ <bootFeature>shell-compat</bootFeature>
+ <bootFeature>ssh</bootFeature>
+ <bootFeature>system</bootFeature>
+ <bootFeature>wrap</bootFeature>
+ <!--bootFeature>brooklyn-core</bootFeature-->
+ </bootFeatures>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
+
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b9d5a46f/karaf/apache-brooklyn/src/main/filtered-resources/etc/branding.properties
----------------------------------------------------------------------
diff --git a/karaf/apache-brooklyn/src/main/filtered-resources/etc/branding.properties b/karaf/apache-brooklyn/src/main/filtered-resources/etc/branding.properties
new file mode 100755
index 0000000..714c7db
--- /dev/null
+++ b/karaf/apache-brooklyn/src/main/filtered-resources/etc/branding.properties
@@ -0,0 +1,35 @@
+################################################################################
+#
+# 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.
+#
+################################################################################
+
+welcome = \
+\u001B[33m\u001B[0m\n\
+\u001B[33m _ _ _ \u001B[0m\n\
+\u001B[33m | |__ _ __ ___ ___ | | _| |_ _ _ __ (R) \u001B[0m\n\
+\u001B[33m | '_ \\| '__/ _ \\ / _ \\| |/ / | | | | '_ \\ \u001B[0m\n\
+\u001B[33m | |_) | | | (_) | (_) | <| | |_| | | | | \u001B[0m\n\
+\u001B[33m |_.__/|_| \\___/ \\___/|_|\\_\\_|\\__, |_| |_| \u001B[0m\n\
+\u001B[33m |___/ \u001B[0m\n\
+\u001B[33m \u001B[0m\n\
+\u001B[33m http://brooklyn.incubator.apache.org \u001B[0m\n\
+\u001B[33m (version ${project.version})\u001B[0m\n\
+\u001B[33m\u001B[0m\n\
+\u001B[33mHit '\u001B[1m<tab>\u001B[0m' for a list of available commands\u001B[0m\n\
+\u001B[33mand '\u001B[1m[cmd] --help\u001B[0m' for help on a specific command.\u001B[0m\n\
+\u001B[33mHit '\u001B[1m<ctrl-d>\u001B[0m' or '\u001B[1mosgi:shutdown\u001B[0m' to shutdown\u001B[0m\n\
+\u001B[33m\u001B[0m\n\
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b9d5a46f/karaf/apache-brooklyn/src/main/resources/etc/custom.properties
----------------------------------------------------------------------
diff --git a/karaf/apache-brooklyn/src/main/resources/etc/custom.properties b/karaf/apache-brooklyn/src/main/resources/etc/custom.properties
new file mode 100644
index 0000000..912207f
--- /dev/null
+++ b/karaf/apache-brooklyn/src/main/resources/etc/custom.properties
@@ -0,0 +1,114 @@
+################################################################################
+#
+# 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.
+#
+################################################################################
+
+#
+# You can place any customized configuration here.
+# All the values specified here will override the default value.
+#
+
+karaf.systemBundlesStartLevel=50
+
+org.osgi.framework.bootdelegation=org.apache.karaf.jaas.boot,!com.sun.xml.messaging.saaj.*,!com.sun.xml.internal.bind.*,sun.*,com.sun.*,javax.transaction,javax.transaction.*,org.apache.xalan.processor,org.apache.xpath.jaxp,org.apache.xml.dtm.ref,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.osgi.framework.system.packages.extra = \
+ org.apache.karaf.branding, \
+ com.sun.org.apache.xalan.internal.xsltc.trax, \
+ com.sun.org.apache.xerces.internal.dom, \
+ com.sun.org.apache.xerces.internal.jaxp, \
+ com.sun.org.apache.xerces.internal.xni, \
+ com.sun.jndi.ldap, \
+ org.apache.xalan.extensions; version="2.7.1", \
+ org.apache.xalan.xsltc.compiler; version="2.7.1", \
+ org.apache.xalan.xsltc.cmdline.getopt; version="2.7.1", \
+ org.apache.xalan.xsltc.util; version="2.7.1", \
+ org.apache.xalan.transformer; version="2.7.1", \
+ org.apache.xalan.xsltc.trax; version="2.7.1", \
+ org.apache.xalan.processor; version="2.7.1", \
+ org.apache.xalan.lib; version="2.7.1", \
+ org.apache.xalan.trace; version="2.7.1", \
+ org.apache.xalan.xsltc.compiler.util; version="2.7.1", \
+ org.apache.xalan.templates; version="2.7.1", \
+ org.apache.xalan.xsltc; version="2.7.1", \
+ org.apache.xalan.xsltc.runtime; version="2.7.1", \
+ org.apache.xalan; version="2.7.1", \
+ org.apache.xalan.xslt; version="2.7.1", \
+ org.apache.xalan.lib.sql; version="2.7.1", \
+ org.apache.xalan.xsltc.runtime.output; version="2.7.1", \
+ org.apache.xalan.xsltc.dom; version="2.7.1", \
+ org.apache.xalan.client; version="2.7.1", \
+ org.apache.xalan.xsltc.cmdline; version="2.7.1", \
+ org.apache.xalan.serialize; version="2.7.1", \
+ org.apache.xalan.res; version="2.7.1", \
+ org.apache.xml.dtm.ref; version="2.7.1", \
+ org.apache.xml.dtm; version="2.7.1", \
+ org.apache.xml.dtm.ref.sax2dtm; version="2.7.1", \
+ org.apache.xml.dtm.ref.dom2dtm; version="2.7.1", \
+ org.apache.xml.res; version="2.7.1", \
+ org.apache.xml.serializer.dom3; version="2.7.1", \
+ org.apache.xml.serializer; version="2.7.1", \
+ org.apache.xml.serializer.utils; version="2.7.1", \
+ org.apache.xml.utils.res; version="2.7.1", \
+ org.apache.xml.utils; version="2.7.1", \
+ org.apache.xpath.functions; version="2.7.1", \
+ org.apache.xpath.jaxp; version="2.7.1", \
+ org.apache.xpath.patterns; version="2.7.1", \
+ org.apache.xpath.objects; version="2.7.1", \
+ org.apache.xpath.res; version="2.7.1", \
+ org.apache.xpath; version="2.7.1", \
+ org.apache.xpath.axes; version="2.7.1", \
+ org.apache.xpath.compiler; version="2.7.1", \
+ org.apache.xpath.operations; version="2.7.1", \
+ org.apache.xpath.domapi; version="2.7.1", \
+ org.apache.html.dom; version="2.11.0", \
+ org.apache.wml.dom; version="2.11.0", \
+ org.apache.wml; version="2.11.0", \
+ org.apache.xerces.parsers; version="2.11.0", \
+ org.apache.xerces.impl.dtd.models; version="2.11.0", \
+ org.apache.xerces.xni.parser; version="2.11.0", \
+ org.apache.xerces.impl.dv.xs; version="2.11.0", \
+ org.apache.xerces.impl.xs.traversers; version="2.11.0", \
+ org.apache.xerces.util; version="2.11.0", \
+ org.apache.xerces.impl.dtd; version="2.11.0", \
+ org.apache.xerces.jaxp.validation; version="2.11.0", \
+ org.apache.xerces.dom3.as; version="2.11.0", \
+ org.apache.xerces.impl.dv; version="2.11.0", \
+ org.apache.xerces.jaxp; version="2.11.0", \
+ org.apache.xerces.jaxp.datatype; version="2.11.0", \
+ org.apache.xerces.impl.xpath.regex; version="2.11.0", \
+ org.apache.xerces.xni; version="2.11.0", \
+ org.apache.xerces.impl.msg; version="2.11.0", \
+ org.apache.xerces.impl.dv.util; version="2.11.0", \
+ org.apache.xerces.impl.xs.util; version="2.11.0", \
+ org.apache.xerces.dom; version="2.11.0", \
+ org.apache.xerces.dom.events; version="2.11.0", \
+ org.apache.xerces.impl.xs.opti; version="2.11.0", \
+ org.apache.xerces.impl; version="2.11.0", \
+ org.apache.xerces.xs; version="2.11.0", \
+ org.apache.xerces.impl.io; version="2.11.0", \
+ org.apache.xerces.xpointer; version="2.11.0", \
+ org.apache.xerces.impl.dv.dtd; version="2.11.0", \
+ org.apache.xerces.xinclude; version="2.11.0", \
+ org.apache.xerces.impl.xpath; version="2.11.0", \
+ org.apache.xerces.xs.datatypes; version="2.11.0", \
+ org.apache.xerces.impl.xs.identity; version="2.11.0", \
+ org.apache.xerces.impl.xs.models; version="2.11.0", \
+ org.apache.xerces.xni.grammars; version="2.11.0", \
+ org.apache.xerces.impl.xs; version="2.11.0", \
+ org.apache.xerces.impl.validation; version="2.11.0", \
+ org.apache.xml.serialize; version="2.11.0"
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b9d5a46f/karaf/apache-brooklyn/src/main/resources/etc/org.ops4j.pax.logging.cfg
----------------------------------------------------------------------
diff --git a/karaf/apache-brooklyn/src/main/resources/etc/org.ops4j.pax.logging.cfg b/karaf/apache-brooklyn/src/main/resources/etc/org.ops4j.pax.logging.cfg
new file mode 100755
index 0000000..26de433
--- /dev/null
+++ b/karaf/apache-brooklyn/src/main/resources/etc/org.ops4j.pax.logging.cfg
@@ -0,0 +1,46 @@
+################################################################################
+#
+# 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.
+#
+################################################################################
+
+# Root logger
+log4j.rootLogger=INFO, out, osgi:VmLogAppender
+log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer
+
+# CONSOLE appender not used by default
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32C %4L | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+
+# File appender
+log4j.appender.out=org.apache.log4j.RollingFileAppender
+log4j.appender.out.layout=org.apache.log4j.PatternLayout
+log4j.appender.out.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32C %4L | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+log4j.appender.out.file=${karaf.home}/log/brooklyn.log
+log4j.appender.out.append=true
+log4j.appender.out.maxFileSize=1MB
+log4j.appender.out.maxBackupIndex=10
+
+# Sift appender
+log4j.appender.sift=org.apache.log4j.sift.MDCSiftingAppender
+log4j.appender.sift.key=bundle.name
+log4j.appender.sift.default=brooklyn
+log4j.appender.sift.appender=org.apache.log4j.FileAppender
+log4j.appender.sift.appender.layout=org.apache.log4j.PatternLayout
+log4j.appender.sift.appender.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
+log4j.appender.sift.appender.file=${karaf.data}/log/$\\{bundle.name\\}.log
+log4j.appender.sift.appender.append=true
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b9d5a46f/karaf/apache-brooklyn/src/main/resources/etc/system.properties
----------------------------------------------------------------------
diff --git a/karaf/apache-brooklyn/src/main/resources/etc/system.properties b/karaf/apache-brooklyn/src/main/resources/etc/system.properties
new file mode 100644
index 0000000..a95f167
--- /dev/null
+++ b/karaf/apache-brooklyn/src/main/resources/etc/system.properties
@@ -0,0 +1,133 @@
+################################################################################
+#
+# 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.
+#
+################################################################################
+
+#
+# The properties defined in this file will be made available through system
+# properties at the very beginning of the Karaf's boot process.
+#
+
+
+# Log level when the pax-logging service is not available
+# This level will only be used while the pax-logging service bundle
+# is not fully available.
+# To change log levels, please refer to the org.ops4j.pax.logging.cfg file
+# instead.
+org.ops4j.pax.logging.DefaultServiceLog.level = ERROR
+
+#
+# Name of this Karaf instance.
+#
+karaf.name = brooklyn
+
+#
+# Default repository where bundles will be loaded from before using
+# other Maven repositories. For the full Maven configuration, see
+# the org.ops4j.pax.url.mvn.cfg file.
+#
+karaf.default.repository = system
+
+#
+# Location of a shell script that will be run when starting a shell
+# session. This script can be used to create aliases and define
+# additional commands.
+#
+karaf.shell.init.script = ${karaf.etc}/shell.init.script
+
+#
+# Sets the maximum size of the shell command history. If not set,
+# defaults to 500 entries. Setting to 0 will disable history.
+#
+# karaf.shell.history.maxSize = 0
+
+#
+# Deletes the entire karaf.data directory at every start
+#
+karaf.clean.all = false
+
+#
+# Deletes the karaf.data/cache directory at every start
+#
+karaf.clean.cache = false
+
+#
+# Roles to use when logging into a local Karaf console.
+#
+# The syntax is the following:
+# [classname:]principal
+# where classname is the class name of the principal object
+# (defaults to org.apache.karaf.jaas.modules.RolePrincipal)
+# and principal is the name of the principal of that class
+# (defaults to instance).
+#
+karaf.local.roles = admin,manager,viewer,systembundles
+
+#
+# Set this empty property to avoid errors when validating xml documents.
+#
+xml.catalog.files =
+
+#
+# Suppress the bell in the console when hitting backspace too many times
+# for example
+#
+jline.nobell = true
+
+#
+# ServiceMix specs options
+#
+org.apache.servicemix.specs.debug = false
+org.apache.servicemix.specs.timeout = 0
+
+#
+# Settings for the OSGi 4.3 Weaving
+# By default, we will not weave any classes. Change this setting to include classes
+# that you application needs to have woven.
+#
+org.apache.aries.proxy.weaving.enabled = none
+# Classes not to weave - Aries default + Xerces which is known to have issues.
+org.apache.aries.proxy.weaving.disabled = org.objectweb.asm.*,org.slf4j.*,org.apache.log4j.*,javax.*,org.apache.xerces.*
+
+#
+# By default, only Karaf shell commands are secured, but additional services can be
+# secured by expanding this filter
+#
+karaf.secured.services = (&(osgi.command.scope=*)(osgi.command.function=*))
+
+#
+# Security properties
+#
+# To enable OSGi security, uncomment the properties below,
+# install the framework-security feature and restart.
+#
+#java.security.policy=${karaf.etc}/all.policy
+#org.osgi.framework.security=osgi
+#org.osgi.framework.trust.repositories=${karaf.etc}/trustStore.ks
+
+#
+# HA/Lock configuration
+#
+# Karaf uses a lock mechanism to know which instance is the master (HA)
+# The lock can be on the filesystem (default) or on a database.
+#
+# See http://karaf.apache.org/manual/latest/users-guide/failover.html for details.
+#
+# Even using a single instance, Karaf creates the lock file
+# You can specify the location of the lock file using the
+# karaf.lock.dir=/path/to/the/directory/containing/the/lock
+#
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b9d5a46f/karaf/features/pom.xml
----------------------------------------------------------------------
diff --git a/karaf/features/pom.xml b/karaf/features/pom.xml
new file mode 100755
index 0000000..50dd5a7
--- /dev/null
+++ b/karaf/features/pom.xml
@@ -0,0 +1,54 @@
+<?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">
+
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.brooklyn</groupId>
+ <artifactId>brooklyn-karaf</artifactId>
+ <version>0.9.0-SNAPSHOT</version> <!-- BROOKLYN_VERSION -->
+ </parent>
+
+ <artifactId>brooklyn-features</artifactId>
+ <name>Brooklyn Karaf Features</name>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </resource>
+ </resources>
+
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>1.9.1</version>
+ <executions>
+ <execution>
+ <id>attach-artifacts</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>${project.build.outputDirectory}/features.xml</file>
+ <type>xml</type>
+ <classifier>features</classifier>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
+
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b9d5a46f/karaf/features/src/main/resources/features.xml
----------------------------------------------------------------------
diff --git a/karaf/features/src/main/resources/features.xml b/karaf/features/src/main/resources/features.xml
new file mode 100755
index 0000000..ff843f9
--- /dev/null
+++ b/karaf/features/src/main/resources/features.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="org.apache.brooklyn-${project.version}">
+
+ <repository>mvn:org.apache.karaf.features/standard/${karaf.version}/xml/features</repository>
+ <repository>mvn:org.apache.karaf.features/enterprise/${karaf.version}/xml/features</repository>
+ <repository>mvn:org.apache.karaf.features/spring/${karaf.version}/xml/features</repository>
+
+ <!-- TODO: complete the features set -->
+ <feature name="brooklyn-core" version="${project.version}" resolver="(obr)">
+ <bundle>mvn:org.apache.brooklyn/brooklyn-core/${project.version}</bundle>
+ </feature>
+</features>
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b9d5a46f/karaf/pom.xml
----------------------------------------------------------------------
diff --git a/karaf/pom.xml b/karaf/pom.xml
new file mode 100644
index 0000000..94b7750
--- /dev/null
+++ b/karaf/pom.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.brooklyn</groupId>
+ <artifactId>brooklyn</artifactId>
+ <version>0.9.0-SNAPSHOT</version> <!-- BROOKLYN_VERSION -->
+ </parent>
+
+ <artifactId>brooklyn-karaf</artifactId>
+ <name>Brooklyn Karaf</name>
+ <packaging>pom</packaging>
+
+ <properties>
+ <karaf.version>4.0.1</karaf.version>
+
+ <org.osgi.core.version>6.0.0</org.osgi.core.version>
+ <org.osgi.compendium.version>5.0.0</org.osgi.compendium.version>
+
+ <lifecycle-mapping-plugin.version>1.0.0</lifecycle-mapping-plugin.version>
+
+ <maven.compiler.source>${java.version}</maven.compiler.source>
+ <maven.compiler.target>${java.version}</maven.compiler.target>
+ </properties>
+
+ <modules>
+ <module>features</module>
+ <module>apache-brooklyn</module>
+ </modules>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.m2e</groupId>
+ <artifactId>lifecycle-mapping</artifactId>
+ <version>${lifecycle-mapping-plugin.version}</version>
+ <configuration>
+ <lifecycleMappingMetadata>
+ <pluginExecutions>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <versionRange>[0,)</versionRange>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore />
+ </action>
+ </pluginExecution>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <versionRange>[0,)</versionRange>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore />
+ </action>
+ </pluginExecution>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>org.apache.karaf.tooling</groupId>
+ <artifactId>karaf-maven-plugin</artifactId>
+ <versionRange>[0,)</versionRange>
+ <goals>
+ <goal>assembly</goal>
+ <goal>commands-generate-help</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore />
+ </action>
+ </pluginExecution>
+
+ </pluginExecutions>
+ </lifecycleMappingMetadata>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+
+ <repositories>
+ <repository>
+ <id>servicemix</id>
+ <name>Apache ServiceMix Repository</name>
+ <url>http://svn.apache.org/repos/asf/servicemix/m2-repo</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
+</project>
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b9d5a46f/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 8e4c265..1b55f7b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,7 @@
<module>policy</module>
<module>locations/jclouds</module>
+ <module>karaf</module>
<!-- module>sandbox/cassandra-multicloud-snitch</module -->
<!-- module>sandbox/database</module -->