FELIX-1450: Karaf branding and plugins for Felix webconsole
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@801821 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/karaf/assembly/src/main/filtered-resources/features.xml b/karaf/assembly/src/main/filtered-resources/features.xml
index 99c4105..aad78e6 100644
--- a/karaf/assembly/src/main/filtered-resources/features.xml
+++ b/karaf/assembly/src/main/filtered-resources/features.xml
@@ -57,7 +57,10 @@
</config>
<bundle>mvn:org.apache.felix/org.apache.felix.metatype/${felix.metatype.version}</bundle>
<bundle>mvn:org.apache.felix/org.apache.felix.webconsole/${felix.webconsole.version}</bundle>
- <bundle>mvn:org.apache.felix.karaf/org.apache.felix.karaf.webconsole/${version}</bundle>
+ <bundle>mvn:org.apache.felix.karaf.webconsole/org.apache.felix.karaf.webconsole.plugins/${version}</bundle>
+ <!-- TODO: uncomment when FELIX-1133 is resolved
+ <bundle>mvn:org.apache.felix.karaf.webconsole/org.apache.felix.karaf.webconsole.branding/${version}</bundle>
+ -->
</feature>
<feature name="ssh" version="${version}">
<config name="org.apache.felix.karaf.gshell.ssh">
diff --git a/karaf/pom.xml b/karaf/pom.xml
index 27e0e9a..5bdcf6e 100644
--- a/karaf/pom.xml
+++ b/karaf/pom.xml
@@ -182,6 +182,17 @@
<enabled>true</enabled>
</snapshots>
</repository>
+
+ <repository>
+ <id>jansi.snapshot.m2</id>
+ <url>http://jansi.fusesource.org/repo/snapshot</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
</repositories>
<pluginRepositories>
diff --git a/karaf/webconsole/branding/pom.xml b/karaf/webconsole/branding/pom.xml
new file mode 100644
index 0000000..0e6cb76
--- /dev/null
+++ b/karaf/webconsole/branding/pom.xml
@@ -0,0 +1,60 @@
+<?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/maven-v4_0_0.xsd">
+
+ <!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.felix.karaf.webconsole</groupId>
+ <artifactId>webconsole</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.apache.felix.karaf.webconsole</groupId>
+ <artifactId>org.apache.felix.karaf.webconsole.branding</artifactId>
+ <packaging>bundle</packaging>
+ <version>1.2.0-SNAPSHOT</version>
+ <name>Apache Felix Karaf :: Web Console :: Branding</name>
+
+ <description>Apache Felix Karaf branding for the Apache Felix Web Console. This fragment
+ attaches to the org.apache.felix.webconsole bundle to provide branding
+ through the /META-INF/webconsole.properties.
+ </description>
+
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Bundle-DocURL>http://felix.apache.org/site/apache-felix-karaf.html</Bundle-DocURL>
+ <Fragment-Host>org.apache.felix.webconsole</Fragment-Host>
+ <Export-Package>!*</Export-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+
+</project>
diff --git a/karaf/webconsole/branding/src/main/resources/META-INF/webconsole.properties b/karaf/webconsole/branding/src/main/resources/META-INF/webconsole.properties
new file mode 100644
index 0000000..84b3fc4
--- /dev/null
+++ b/karaf/webconsole/branding/src/main/resources/META-INF/webconsole.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.
+#
+
+
+#
+# This file contains branding properties to overwrite the defualt
+# branding of the Apache Felix Web Console when deployed in an
+# Apache Felix Karaf application.
+
+webconsole.product.name = Apache Felix Karaf
+webconsole.product.url = http://felix.apache.org/site/apache-felix-karaf.html
+webconsole.product.image = /res/karaf/imgs/logo.png
+
+webconsole.vendor.name = The Apache Software Foundation
+webconsole.vendor.url = http://www.apache.org
+webconsole.vendor.image = /res/karaf/imgs/logo.png
+
+webconsole.favicon = /res/karaf/imgs/favicon.ico
+webconsole.stylesheet = /res/karaf/ui/admin.css
diff --git a/karaf/webconsole/branding/src/main/resources/res/karaf/ui/admin.css b/karaf/webconsole/branding/src/main/resources/res/karaf/ui/admin.css
new file mode 100644
index 0000000..d836abe
--- /dev/null
+++ b/karaf/webconsole/branding/src/main/resources/res/karaf/ui/admin.css
@@ -0,0 +1,677 @@
+/*
+ * 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.
+ */ /* CSS Document */
+
+a {
+ color: black;
+}
+
+#licenseContent {
+ background-color: white;
+ color: black;
+}
+
+#main {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ color: white;
+ background-color: black;
+ border-collapse: collapse;
+ padding: 0px;
+ margin: 30px;
+ position: absolute;
+ text-align: left;
+ border-color: black;
+}
+
+#lead {
+ /*color: #00678C;*/
+ color: #ffffff;
+ margin: 0px 0px 26px 0px;
+ padding: 0px;
+ height: 100px;
+}
+
+#lead h1 { /*
+ background-image: url(../imgs/banner_left.jpg);
+ background-repeat: no-repeat;
+ */
+ color: white;
+ margin: 0px;
+ padding: 5px 0 0 8px;
+ font-size: 200%;
+ font-weight: bold;
+ line-height: 120%;
+ height: 95px;
+ /* account for 5px top marging to get a total of 100px */
+ float: left;
+}
+
+#lead br {
+ line-height: 20px;
+}
+
+#lead p { /*
+ background-image: url(../imgs/banner_right.jpg);
+ background-repeat: no-repeat;
+ border-left: 1px solid;
+ */
+ margin: 0px;
+ padding: 0px;
+ height: 100px;
+ float: right;
+}
+
+#technav {
+ border-bottom: 1px solid white; /*6181A9*/
+ border-top: 1px solid white;
+ color: white;
+ background-color: black;
+ font-size: 10px;
+ font-weight: bold;
+ /*
+ border-top: 1px solid black;
+ */
+ line-height: 21px;
+ padding: 0;
+ margin: 0;
+}
+
+#technav a {
+ /*
+ display: block;
+ float: left;
+ */
+ text-decoration: none;
+ padding: 3px 10px 3px 10px;
+ color: white;
+ text-decoration: none;
+}
+
+#technav a:hover {
+ background-color: white;
+ color: black;
+}
+
+#technav .technavat {
+ /*
+ display: block;
+ float: left;
+ */
+ text-decoration: none;
+ padding: 3px 10px 3px 10px;
+ background-color: white;/*#B6CAE4;*/
+ color: black;
+}
+
+#claim {
+ color: white;
+ background-color: black;
+ padding: 2px 10px 2px 10px;
+}
+
+#claim p {
+ margin: 0;
+ padding: 0;
+}
+
+#claim a {
+ color: black;
+ background-color: white;
+ text-decoration: none;
+}
+
+/*
+.claimcell A:link {
+ color: #C5E2EE;
+ text-decoration: none;
+}
+
+.claimcell A:visited {
+ color: #C5E2EE;
+ text-decoration: none;
+}
+*/
+#claim a:hover {
+ color: black;
+ background-color: white;
+ border-bottom: 1px solid;
+}
+
+#claim a:active {
+ color: black;
+}
+
+/* old styles */
+table {
+ text-align: left;
+}
+
+table.content {
+ clear: both;
+ font-size: 10px;
+ line-height: 13px;
+ border: 0px solid #66dd44;
+ border-top: 1px solid white;
+ padding: 0px;
+ margin: 0px;
+ margin-top: 26px;
+ margin-bottom: 26px;
+ text-align: left;
+}
+
+tr {
+ border-left: 1px solid white;
+ border-right: 1px solid white;
+}
+
+td.content {
+ color: black;
+ border: 0px solid white;
+ border-bottom: 1px solid white;
+ vertical-align: middle;
+ padding: 5px;
+}
+
+td.aligntop {
+ vertical-align: top;
+}
+
+td.content img {
+ width: 10px;
+ height: 10px;
+}
+
+td.disabled {
+ color: #999999;
+}
+
+th.content {
+ color: black;
+ border: 0px solid white;
+ border-bottom: 1px solid white;
+ text-align: left;
+ padding: 5px;
+ padding-left: 10px;
+}
+
+.right {
+ text-align: right;
+}
+.center {
+ text-align: center;
+}
+
+th.container {
+ color: white;
+ background-color: black;
+ border: 1px solid white;
+}
+
+th.important {
+ color: #B81833;
+}
+
+.important {
+ color: #B81833;
+}
+
+#maintable { /* postion: absolute; */
+ font-size: 10px;
+ line-height: 13px;
+ border: 1px solid #000000;
+ padding: 0px;
+ margin: 0px;
+}
+
+.toolcell {
+ font-size: 10px;
+ color: #999999;
+ line-height: 10px;
+ background-color: #000000;
+ height: 18px;
+ padding: 0px;
+ padding-bottom: 1px;
+ text-align: left;
+}
+
+.toolcell A:link {
+ color: #C5E2EE;
+ text-decoration: none;
+}
+
+.toolcell A:visited {
+ color: #C5E2EE;
+ text-decoration: none;
+}
+
+.toolcell A:hover {
+ color: #99FF33;
+ text-decoration: none;
+ border-bottom: 1px solid;
+}
+
+.toolcell A:active {
+ color: #FFFFFF;
+ text-decoration: none;
+}
+
+.leadcell {
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid #000000;
+ width: 718px;
+ height: 100px;
+ /*background-image: url(../imgs/banner_left.jpg);*/
+ vertical-align: top;
+}
+
+.leadcelltext {
+ position: absolute;
+ border: 0px solid #000000;
+ font-size: 26px;
+ line-height: 32px;
+ margin-top: 5px;
+ margin-left: 8px;
+ color: #ffffff;
+ vertical-align: top;
+}
+
+.logocell {
+ border-left: 1px solid #000000;
+ width: 239px;
+ /*background-image: url(../imgs/banner_right.jpg);*/
+}
+
+#technavcell {
+ font-size: 10px;
+ font-weight: bold;
+ border: 1px solid #000000;
+ border-top: 1px solid #000000;
+ height: 21px;
+ background-color: black;
+}
+
+/*
+#technav A:link {
+ float: left;
+ display: block;
+ color: #ffffff;
+ border: 0px solid #000000;
+ border-right: 1px solid #000000;
+ height: 21px;
+ text-decoration: none;
+ padding: 0px 10px 0px 10px;
+ background-color: #6181A9;
+}
+
+#technav A:visited {
+ float: left;
+ display: block;
+ color: #ffffff;
+ border-right: 1px solid #000000;
+ height: 21px;
+ text-decoration: none;
+ padding: 0px 10px 0px 10px;
+ background-color: #6181A9;
+}
+
+#technav A:hover {
+ float: left;
+ display: block;
+ color: #ffffff;
+ border-right: 1px solid #000000;
+ height: 21px;
+ text-decoration: none;
+ padding: 0px 10px 0px 10px;
+ background-color: #000000;
+}
+
+#technav A:active {
+ float: left;
+ display: block;
+ color: #ffffff;
+ border-right: 1px solid #000000;
+ height: 21px;
+ text-decoration: none;
+ padding: 0px 10px 0px 10px;
+ background-color: #6181A9;
+}
+*/
+.techcontentcell {
+ border: 0px solid #000000;
+ border-top: 1px solid #000000;
+}
+
+.relatedcell {
+ border-left: 1px solid #000000;
+ border-top: 1px solid #000000;
+ background-color: black;
+}
+
+/* CENTRAL CONTENT AREA STYLING */
+.content {
+ position: relative;
+ margin: 25px;
+ font-size: 11px;
+ line-height: 16px;
+ color: black;
+ background-color: white;
+}
+
+.content A:link {
+ color: #336600;
+ text-decoration: underline;
+}
+
+.content A:visited {
+ color: #666666;
+ text-decoration: underline;
+}
+
+.content A:hover {
+ color: blue;
+ background-color: #336600;
+ text-decoration: none;
+}
+
+.content A:active {
+ color: yellow;
+ background-color: white;
+ text-decoration: none;
+}
+
+body {
+ background-color: black;
+ color: white;
+}
+
+/* TEXT STYLING */ /*
+h1, h2, h3, h4, h5, h6, p
+
+ {
+ margin: 0px;
+ margin-bottom: 8px;
+ font-size: 11px;
+ line-height: 16px;
+ font-weight:bold;
+ }
+
+*/ /*
+h1
+ {
+ color: #000000;
+ margin-top: 32px;
+ clear: left;
+ }
+
+
+h2
+ {
+ color: #336699;
+ }
+
+
+h3
+ {
+ color: #336699;
+ }
+*/ /*
+p
+ {
+ font-size: 11px;
+ line-height: 16px;
+ font-weight: normal;
+ color: #000000;
+ }
+*/ /* FORMS */
+form {
+ font-size: 9px;
+ border-top: 1px solid white;
+ border-bottom: 1px solid white;
+ border-left: 1px solid white;
+ border-right: 1px solid white;
+ margin: 0;
+ padding: 0;
+ clear: left;
+}
+
+select,textarea {
+ font-family: Verdana, Arial, Helvetica, san-serif;
+ font-size: 9px;
+ font-weight: normal;
+ display: block;
+ float: left;
+ padding-top: 3px;
+ margin-bottom: 10px;
+}
+
+.input {
+ font-family: Verdana, Arial, Helvetica, san-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ background-color: white;
+ border: 1px solid #999999;
+ /*border-bottom: 1px solid #cccccc;
+ border-right: 1px solid #cccccc;*/
+}
+
+.fileinput {
+ font-family: Verdana, Arial, Helvetica, san-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+}
+
+.submit {
+ cursor: default;
+ width: 60px;
+ font-family: Verdana, Arial, Helvetica, san-serif;
+ font-size: 10px;
+ font-weight: bold;
+ background-color: black;
+ color: white;
+ height: 20px;
+ padding: 0px;
+ padding-bottom: 1px;
+ margin: 0px;
+ border: 1px solid #cfcfcf;
+ border-right: 2px solid #4f4f4f;
+ border-bottom: 2px solid #4f4f4f;
+}
+
+input.important {
+ background-color: black;
+ color: white;
+}
+
+select {
+ color: #184054;
+ background-color: #f0f0f0;
+ border: 0px solid #999999;
+}
+
+textarea {
+ color: #184054;
+ background-color: #f0f0f0;
+ width: 234px;
+ height: 100px;
+ border: 1px solid #999999;
+ border-bottom: 1px solid #cccccc;
+ border-right: 1px solid #cccccc;
+}
+
+.clearleft {
+ clear: left;
+}
+
+.clearboth {
+ clear: both;
+}
+
+.checkradio {
+ background-color: black;
+ width: 20px;
+ padding: 0px;
+ padding-bottom: 10px;
+ margin: 0px;
+ margin-top: 2px;
+ border: 0px solid #999999;
+}
+
+.checkradiotext {
+ font-size: 9px;
+ font-weight: normal;
+ line-height: 11px;
+ width: 100px;
+ color: white;
+ padding: 0px;
+ padding-bottom: 10px;
+ margin: 0px;
+ margin-top: 4px;
+ border: 0px solid #999999;
+}
+
+div.buttons {
+ background-color: black;
+ height: 30px;
+ text-align: right;
+ vertical-align: middle;
+ padding-right: 10px;
+ padding-top: 8px;
+ color: white;
+ font-size: 10px;
+}
+div.buttons select {
+ font-family: Verdana, Arial, Helvetica, san-serif;
+ font-size: 9px;
+ font-weight: normal;
+ display: inline;
+ float:none;
+}
+div.button {
+ display: inline-block;
+ margin-left: 10px;
+}
+div.fullwidth {
+ width: 100%;
+}
+div.statusline {
+ margin-top: 10px;
+ background-color: #3f3f3f;
+ padding-left: 10px;
+ border: 1px solid #cfcfcf;
+ font-family: Verdana, Arial, Helvetica, san-serif;
+ font-size: 11px;
+ font-weight: normal;
+ color: #cfcfcf;
+ line-height: 19px;
+ margin-bottom: 10px;
+}
+div.table {
+ margin-left: 1px;
+}
+div.tablelayout {
+}
+
+/* tables */
+table.tablelayout {
+ border-left: 1px solid white;
+ border-right: 1px solid white;
+ border-collapse: collapse;
+ font-family:arial;
+ background-color: red;
+ font-size: 8pt;
+ width: 100%;
+ text-align: left;
+}
+table.tablelayout tbody tr {
+ border-left: 1px solid #6181A9;
+ border-right: 1px solid #6181A9;
+}
+
+table.tablelayout thead tr th, table.tablelayout tfoot tr th {
+ background-color: #6f6f6f;
+ border: 1px solid #cfcfcf;
+ font-size: 8pt;
+ padding: 4px;
+ color: #cfcfcf;
+}
+table.tablelayout thead tr .header {
+ /*background-image: url(../imgs/bg.gif);*/
+ background-repeat: no-repeat;
+ background-position: center right;
+ cursor: pointer;
+}
+table.tablelayout tbody td {
+ color: black;
+ border: 1px solid #cfcfcf;
+ padding: 4px;
+ background-color: white;
+ vertical-align: top;
+}
+table.tablelayout tbody tr.odd td {
+ background-color: white; /*#F0F0F6*/
+}
+table.tablelayout thead tr .headerSortUp {
+ background-image: url(../imgs/asc.gif);
+}
+table.tablelayout thead tr .headerSortDown {
+ background-image: url(../imgs/desc.gif);
+}
+table.tablelayout thead tr .headerSortDown, table.tablelayout thead tr .headerSortUp {
+background-color: #3f3f3f;/*#8dbdd8*/
+color: #cfcfcf;
+border: 1px solid #cfcfcf;
+}
+.col_Id {
+ width: 40px;
+}
+.col_Status {
+ width: 50px;
+}
+.col_Actions {
+ width: 95px;
+}
+#plugin_content {
+ margin-top: 26px;
+ margin-bottom: 26px;
+}
+.contentheader {
+ border: 0px solid #66dd44;
+ border-bottom: 1px solid black;
+ text-align: left;
+ padding: 5px;
+ padding-left: 10px;
+ color: black;
+ background-color: white;
+}
+.contentline {
+ padding-top: 15px;
+ padding-left:10px;
+ clear: both;
+ width: 100%;
+}
+.contentleft {
+ padding-left: 9px;
+ float: left;
+ width:110px;
+}
+.contentright {
+ display: inline;
+ width: 225px;
+}
diff --git a/karaf/webconsole/plugins/pom.xml b/karaf/webconsole/plugins/pom.xml
new file mode 100644
index 0000000..7025e4d
--- /dev/null
+++ b/karaf/webconsole/plugins/pom.xml
@@ -0,0 +1,100 @@
+<?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/maven-v4_0_0.xsd">
+
+ <!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.felix.karaf.webconsole</groupId>
+ <artifactId>webconsole</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.apache.felix.karaf.webconsole</groupId>
+ <artifactId>org.apache.felix.karaf.webconsole.plugins</artifactId>
+ <packaging>bundle</packaging>
+ <version>1.2.0-SNAPSHOT</version>
+ <name>Apache Felix Karaf :: Web Console :: Plugins</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.webconsole</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix.karaf.gshell</groupId>
+ <artifactId>org.apache.felix.karaf.gshell.features</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.servicemix.bundles</groupId>
+ <artifactId>org.apache.servicemix.bundles.junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.json</groupId>
+ <artifactId>json</artifactId>
+ <version>20070829</version>
+ <scope>compile</scope>
+ <optional>true</optional>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <configuration>
+ <instructions>
+ <Export-Package>org.apache.felix.karaf.webconsole;version=${pom.version}</Export-Package>
+ <Embed-Dependency>
+ <!-- Required for JSON data transfer -->
+ <!-- TODO: this needs to be put in a common place for reuse. -->
+ json
+ </Embed-Dependency>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/karaf/webconsole/src/main/java/org/apache/felix/karaf/webconsole/Feature.java b/karaf/webconsole/plugins/src/main/java/org/apache/felix/karaf/webconsole/Feature.java
similarity index 100%
rename from karaf/webconsole/src/main/java/org/apache/felix/karaf/webconsole/Feature.java
rename to karaf/webconsole/plugins/src/main/java/org/apache/felix/karaf/webconsole/Feature.java
diff --git a/karaf/webconsole/src/main/java/org/apache/felix/karaf/webconsole/FeaturesPlugin.java b/karaf/webconsole/plugins/src/main/java/org/apache/felix/karaf/webconsole/FeaturesPlugin.java
similarity index 100%
rename from karaf/webconsole/src/main/java/org/apache/felix/karaf/webconsole/FeaturesPlugin.java
rename to karaf/webconsole/plugins/src/main/java/org/apache/felix/karaf/webconsole/FeaturesPlugin.java
diff --git a/karaf/webconsole/src/main/resources/OSGI-INF/blueprint/webconsole.xml b/karaf/webconsole/plugins/src/main/resources/OSGI-INF/blueprint/webconsole.xml
similarity index 100%
rename from karaf/webconsole/src/main/resources/OSGI-INF/blueprint/webconsole.xml
rename to karaf/webconsole/plugins/src/main/resources/OSGI-INF/blueprint/webconsole.xml
diff --git a/karaf/webconsole/src/main/resources/res/ui/features.js b/karaf/webconsole/plugins/src/main/resources/res/ui/features.js
similarity index 100%
rename from karaf/webconsole/src/main/resources/res/ui/features.js
rename to karaf/webconsole/plugins/src/main/resources/res/ui/features.js
diff --git a/karaf/webconsole/pom.xml b/karaf/webconsole/pom.xml
index 857fadf..225c074 100644
--- a/karaf/webconsole/pom.xml
+++ b/karaf/webconsole/pom.xml
@@ -28,73 +28,15 @@
<version>1.2.0-SNAPSHOT</version>
</parent>
- <groupId>org.apache.felix.karaf</groupId>
- <artifactId>org.apache.felix.karaf.webconsole</artifactId>
- <packaging>bundle</packaging>
+ <groupId>org.apache.felix.karaf.webconsole</groupId>
+ <artifactId>webconsole</artifactId>
+ <packaging>pom</packaging>
<version>1.2.0-SNAPSHOT</version>
- <name>Apache Felix Karaf :: Web Console Features Plugin</name>
+ <name>Apache Felix Karaf :: Web Console</name>
- <dependencies>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.osgi.core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.osgi.compendium</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.webconsole</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.felix.karaf.gshell</groupId>
- <artifactId>org.apache.felix.karaf.gshell.features</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.servicemix.bundles</groupId>
- <artifactId>org.apache.servicemix.bundles.junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.json</groupId>
- <artifactId>json</artifactId>
- <version>20070829</version>
- <scope>compile</scope>
- <optional>true</optional>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <configuration>
- <instructions>
- <Export-Package>org.apache.felix.karaf.webconsole;version=${pom.version}</Export-Package>
- <Embed-Dependency>
- <!-- Required for JSON data transfer -->
- <!-- TODO: this needs to be put in a common place for reuse. -->
- json
- </Embed-Dependency>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
+ <modules>
+ <module>plugins</module>
+ <module>branding</module>
+ </modules>
</project>