Clean up karaf modules:
- admin
- features
Add support for bootstrap, removed sidebar dependency. Updated itests.
git-svn-id: https://svn.apache.org/repos/asf/karaf/webconsole/trunk@1242785 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/assembly/src/main/resources/features.xml b/assembly/src/main/resources/features.xml
index 9ce91ac..c3e9d9a 100644
--- a/assembly/src/main/resources/features.xml
+++ b/assembly/src/main/resources/features.xml
@@ -67,7 +67,9 @@
<feature name="webconsole-karaf" version="${project.version}" description="Karaf WebConsole Features">
<details>Karaf bundle will contain all the pages and java classes about content specific to Karaf like features,repositories and obr.</details>
<feature>webconsole-core</feature>
- <bundle>mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.karaf/${project.version}</bundle>
+ <bundle>mvn:org.apache.karaf.webconsole.karaf/org.apache.karaf.webconsole.karaf.core/${project.version}</bundle>
+ <bundle>mvn:org.apache.karaf.webconsole.karaf/org.apache.karaf.webconsole.karaf.admin/${project.version}</bundle>
+ <bundle>mvn:org.apache.karaf.webconsole.karaf/org.apache.karaf.webconsole.karaf.feature/${project.version}</bundle>
</feature>
<feature name="webconsole-blueprint" version="${project.version}" description="Karaf WebConsole Blueprint">
diff --git a/itest/pom.xml b/itest/pom.xml
index 6d87ee7..dc34bac 100644
--- a/itest/pom.xml
+++ b/itest/pom.xml
@@ -33,7 +33,7 @@
<dependencies>
<dependency>
<groupId>org.apache.karaf.webconsole</groupId>
- <artifactId>features</artifactId>
+ <artifactId>apache-karaf-webconsole</artifactId>
<version>${project.version}</version>
<classifier>features</classifier>
<type>xml</type>
@@ -78,18 +78,18 @@
<build>
<plugins>
- <plugin>
- <groupId>org.apache.servicemix.tooling</groupId>
- <artifactId>depends-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>generate-depends-file</id>
- <goals>
- <goal>generate-depends-file</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
+ <plugin>
+ <groupId>org.apache.servicemix.tooling</groupId>
+ <artifactId>depends-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>generate-depends-file</id>
+ <goals>
+ <goal>generate-depends-file</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/itest/src/test/java/org/apache/karaf/webconsole/itest/FeaturesIntegrationTest.java b/itest/src/test/java/org/apache/karaf/webconsole/itest/FeaturesIntegrationTest.java
index 5579716..8a3cd41 100644
--- a/itest/src/test/java/org/apache/karaf/webconsole/itest/FeaturesIntegrationTest.java
+++ b/itest/src/test/java/org/apache/karaf/webconsole/itest/FeaturesIntegrationTest.java
@@ -50,7 +50,7 @@
@Configuration
public Option[] config() {
String karafVersion = MavenUtils.getArtifactVersion("org.apache.karaf", "karaf");
- String webconsoleVersion = MavenUtils.getArtifactVersion("org.apache.karaf.webconsole", "features");
+ String webconsoleVersion = MavenUtils.getArtifactVersion("org.apache.karaf.webconsole", "apache-karaf-webconsole");
return new Option[] {
karafDistributionConfiguration().frameworkUrl(
maven().groupId("org.apache.karaf").artifactId("apache-karaf").version(karafVersion).type("zip")
@@ -68,7 +68,11 @@
@Test
public void someTest() throws Exception {
- String url = maven("org.apache.karaf.webconsole", "features").version(featuresVersion).classifier("features").type("xml").getURL();
+ String url = maven("org.apache.karaf.webconsole", "apache-karaf-webconsole")
+ .version(featuresVersion)
+ .classifier("features")
+ .type("xml")
+ .getURL();
features.addRepository(new URI(url));
diff --git a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/AdminPage.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/AdminPage.java
index d699b75..785e280 100644
--- a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/AdminPage.java
+++ b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/AdminPage.java
@@ -1,16 +1,15 @@
package org.apache.karaf.webconsole.karaf.admin;
import org.apache.karaf.admin.AdminService;
-import org.apache.karaf.webconsole.core.page.SidebarPage;
+import org.apache.karaf.webconsole.core.page.SinglePage;
import org.ops4j.pax.wicket.api.PaxWicketBean;
-public class AdminPage extends SidebarPage {
+public class AdminPage extends SinglePage {
@PaxWicketBean(name = "adminService")
protected AdminService admin;
public AdminPage() {
- setSidebarProvider(new AdminSidebarProvider());
}
}
diff --git a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/AdminSidebarProvider.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/AdminSidebarProvider.java
deleted file mode 100644
index 4077324..0000000
--- a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/AdminSidebarProvider.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.apache.karaf.webconsole.karaf.admin;
-
-import static org.apache.karaf.webconsole.core.util.LinkUtils.createPageLink;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.karaf.webconsole.core.navigation.SidebarProvider;
-import org.apache.karaf.webconsole.core.widget.WidgetProvider;
-import org.apache.karaf.webconsole.karaf.admin.create.CreateInstancePage;
-import org.apache.karaf.webconsole.karaf.admin.list.InstancesPage;
-import org.apache.wicket.Page;
-import org.apache.wicket.markup.html.link.Link;
-
-public class AdminSidebarProvider implements SidebarProvider {
-
- @SuppressWarnings("unchecked")
- public List<Link<Page>> getItems(String componentId, String labelId) {
- return Arrays.asList(
- createPageLink(componentId, labelId, "Create instance", CreateInstancePage.class)
- );
- }
-
- public Link<Page> getMasterPageLink(String linkId, String labelId) {
- return createPageLink(linkId, labelId, "Instances", InstancesPage.class);
- }
-
- public List<WidgetProvider> getWidgetProviders() {
- return Collections.emptyList();
- }
-
-}
diff --git a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/create/CreateInstancePage.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/create/CreateInstancePage.java
index e02005f..3126251 100644
--- a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/create/CreateInstancePage.java
+++ b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/create/CreateInstancePage.java
@@ -1,10 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.apache.karaf.webconsole.karaf.admin.create;
import static org.apache.wicket.model.Model.of;
import org.apache.karaf.webconsole.karaf.admin.AdminPage;
-import org.apache.karaf.webconsole.karaf.admin.model.InstanceSettingsExt;
-import org.apache.karaf.webconsole.karaf.admin.model.KarafInstance;
+import org.apache.karaf.webconsole.karaf.admin.model.WicketInstanceSettings;
+import org.apache.karaf.webconsole.karaf.admin.model.WicketInstance;
import org.apache.karaf.webconsole.karaf.admin.settings.InstanceSettingsPanel;
import org.apache.wicket.Session;
import org.apache.wicket.markup.html.form.Button;
@@ -13,24 +29,27 @@
import org.apache.wicket.model.CompoundPropertyModel;
import org.ops4j.pax.wicket.api.PaxWicketMountPoint;
+/**
+ * Create instance page.
+ */
@PaxWicketMountPoint(mountPoint = "/karaf/admin/create")
public class CreateInstancePage extends AdminPage {
public CreateInstancePage() {
- KarafInstance instance = new KarafInstance();
- instance.setSettings(new InstanceSettingsExt());
+ WicketInstance instance = new WicketInstance();
+ instance.setSettings(new WicketInstanceSettings());
- CompoundPropertyModel<KarafInstance> model = new CompoundPropertyModel<KarafInstance>(instance);
+ CompoundPropertyModel<WicketInstance> model = new CompoundPropertyModel<WicketInstance>(instance);
- Form<KarafInstance> form = new Form<KarafInstance>("instance", model);
+ Form<WicketInstance> form = new Form<WicketInstance>("instance", model);
form.add(new TextField<String>("name"));
- form.add(new InstanceSettingsPanel("settings", of(new InstanceSettingsExt())));
+ form.add(new InstanceSettingsPanel("settings", of(new WicketInstanceSettings())));
form.add(new Button("submit") {
@Override
public void onSubmit() {
try {
- KarafInstance instance = (KarafInstance) getForm().getModelObject();
+ WicketInstance instance = (WicketInstance) getForm().getModelObject();
admin.createInstance(instance.getName(), instance.getSettings());
} catch (Exception e) {
e.printStackTrace();
diff --git a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/list/InstanceActionsPanel.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/list/InstanceActionsPanel.java
index 807819f..c4f4595 100644
--- a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/list/InstanceActionsPanel.java
+++ b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/list/InstanceActionsPanel.java
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.apache.karaf.webconsole.karaf.admin.list;
import java.util.ArrayList;
@@ -10,8 +26,13 @@
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.model.IModel;
+/**
+ * Instance actions.
+ */
public class InstanceActionsPanel extends ActionsPanel<Instance> {
+ private static final long serialVersionUID = 1205787953299100012L;
+
public InstanceActionsPanel(String id, IModel<Instance> model) {
super(id, model);
}
diff --git a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/list/InstancePage.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/list/InstancePage.java
new file mode 100644
index 0000000..d5fb7f5
--- /dev/null
+++ b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/list/InstancePage.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.webconsole.karaf.admin.list;
+
+import static org.apache.wicket.model.Model.of;
+
+import org.apache.karaf.admin.Instance;
+import org.apache.karaf.webconsole.core.table.OrdinalColumn;
+import org.apache.karaf.webconsole.core.table.PropertyColumnExt;
+import org.apache.karaf.webconsole.karaf.admin.AdminPage;
+import org.apache.karaf.webconsole.karaf.admin.model.InstanceDataProvider;
+import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.DefaultDataTable;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
+import org.apache.wicket.markup.repeater.Item;
+import org.apache.wicket.model.IModel;
+import org.ops4j.pax.wicket.api.PaxWicketMountPoint;
+
+/**
+ * Page which shows all karaf instances.
+ */
+@PaxWicketMountPoint(mountPoint = "/karaf/instance")
+public class InstancePage extends AdminPage {
+
+ @SuppressWarnings("unchecked")
+ public InstancePage() {
+ IColumn<Instance>[] columns = new IColumn[] {
+ new OrdinalColumn<Instance>(),
+ new PropertyColumnExt<Instance>("PID", "pid"),
+ new PropertyColumnExt<Instance>("Name", "name"),
+ new PropertyColumnExt<Instance>("Root", "root"),
+ new PropertyColumnExt<Instance>("State", "state"),
+ new PropertyColumnExt<Instance>("Location", "location"),
+ new AbstractColumn<Instance>(of("Actions")) {
+ private static final long serialVersionUID = 1L;
+
+ public void populateItem(Item<ICellPopulator<Instance>> cellItem, String componentId, IModel<Instance> rowModel) {
+ cellItem.add(new InstanceActionsPanel(componentId, rowModel));
+ }
+ }
+ };
+
+ add(new DefaultDataTable<Instance>("instances", columns, new InstanceDataProvider(admin), 20));
+ }
+
+}
diff --git a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/list/InstancesPage.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/list/InstancesPage.java
deleted file mode 100644
index d09829c..0000000
--- a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/list/InstancesPage.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.apache.karaf.webconsole.karaf.admin.list;
-
-import static org.apache.wicket.model.Model.of;
-
-import org.apache.karaf.admin.Instance;
-import org.apache.karaf.webconsole.core.table.OrdinalColumn;
-import org.apache.karaf.webconsole.core.table.PropertyColumnExt;
-import org.apache.karaf.webconsole.core.table.advanced.AdvancedDataTable;
-import org.apache.karaf.webconsole.core.table.advanced.ColumnList;
-import org.apache.karaf.webconsole.karaf.admin.AdminPage;
-import org.apache.karaf.webconsole.karaf.admin.model.InstancesDataProvider;
-import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
-import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
-import org.apache.wicket.markup.repeater.Item;
-import org.apache.wicket.model.IModel;
-import org.ops4j.pax.wicket.api.PaxWicketBean;
-import org.osgi.service.prefs.PreferencesService;
-
-public class InstancesPage extends AdminPage {
-
- @PaxWicketBean(name = "preferencesService")
- private PreferencesService preferences;
-
- public InstancesPage() {
- ColumnList<Instance> columns = new ColumnList<Instance>(preferences.getUserPreferences("karaf"));
-
- columns.addColumn(new OrdinalColumn<Instance>());
- columns.addColumn(new PropertyColumnExt<Instance>("PID", "pid"));
- columns.addColumn(new PropertyColumnExt<Instance>("Name", "name"));
- columns.addColumn(new PropertyColumnExt<Instance>("Root", "root"));
- columns.addColumn(new PropertyColumnExt<Instance>("State", "state"));
- columns.addColumn(new PropertyColumnExt<Instance>("Location", "location"));
- columns.addColumn(new AbstractColumn<Instance>(of("Actions")) {
- public void populateItem(Item<ICellPopulator<Instance>> cellItem, String componentId, IModel<Instance> rowModel) {
- cellItem.add(new InstanceActionsPanel(componentId, rowModel));
- }
- });
-
- add(new AdvancedDataTable<Instance>("instances", columns, new InstancesDataProvider(admin), 20));
- }
-
-}
diff --git a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/InstanceDataProvider.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/InstanceDataProvider.java
new file mode 100644
index 0000000..80bca50
--- /dev/null
+++ b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/InstanceDataProvider.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.webconsole.karaf.admin.model;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.karaf.admin.AdminService;
+import org.apache.karaf.admin.Instance;
+import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
+import org.apache.wicket.model.IModel;
+
+/**
+ * Data provider for instances list.
+ */
+public class InstanceDataProvider extends SortableDataProvider<Instance> {
+
+ private static final long serialVersionUID = 1L;
+
+ private AdminService admin;
+
+ public InstanceDataProvider(AdminService admin) {
+ this.admin = admin;
+ }
+
+ public Iterator<? extends Instance> iterator(int first, int count) {
+ List<Instance> list = new ArrayList<Instance>();
+ Collections.addAll(list, admin.getInstances());
+ return list.subList(first, count).iterator();
+ }
+
+ public int size() {
+ return admin.getInstances().length;
+ }
+
+ public IModel<Instance> model(Instance object) {
+ return new InstanceModel(admin, object);
+ }
+
+}
diff --git a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/InstanceModel.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/InstanceModel.java
index 2e776fa..2535342 100644
--- a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/InstanceModel.java
+++ b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/InstanceModel.java
@@ -1,11 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.apache.karaf.webconsole.karaf.admin.model;
import org.apache.karaf.admin.AdminService;
import org.apache.karaf.admin.Instance;
import org.apache.wicket.model.LoadableDetachableModel;
+/**
+ * Karaf instance model.
+ */
public class InstanceModel extends LoadableDetachableModel<Instance> {
+ private static final long serialVersionUID = 1L;
+
private AdminService admin;
private String name;
diff --git a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/InstanceSettingsExt.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/InstanceSettingsExt.java
deleted file mode 100644
index 9398988..0000000
--- a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/InstanceSettingsExt.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.apache.karaf.webconsole.karaf.admin.model;
-
-import java.io.Serializable;
-
-import org.apache.karaf.admin.InstanceSettings;
-
-public class InstanceSettingsExt extends InstanceSettings implements Serializable {
-
- public InstanceSettingsExt() {
- super(0, 0, 0, "", "", null, null);
- }
-
-}
diff --git a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/InstancesDataProvider.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/InstancesDataProvider.java
deleted file mode 100644
index 0d9b92f..0000000
--- a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/InstancesDataProvider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.apache.karaf.webconsole.karaf.admin.model;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.karaf.admin.AdminService;
-import org.apache.karaf.admin.Instance;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
-import org.apache.wicket.model.IModel;
-
-public class InstancesDataProvider extends SortableDataProvider<Instance> {
-
- private AdminService admin;
-
- public InstancesDataProvider(AdminService admin) {
- this.admin = admin;
- }
-
- public Iterator<? extends Instance> iterator(int first, int count) {
- List<Instance> list = new ArrayList<Instance>();
- Collections.addAll(list, admin.getInstances());
- return list.subList(first, count).iterator();
- }
-
- public int size() {
- return admin.getInstances().length;
- }
-
- public IModel<Instance> model(Instance object) {
- return new InstanceModel(admin, object);
- }
-
-}
diff --git a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/KarafInstance.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/KarafInstance.java
deleted file mode 100644
index db9ff47..0000000
--- a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/KarafInstance.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.apache.karaf.webconsole.karaf.admin.model;
-
-import java.io.Serializable;
-
-public class KarafInstance implements Serializable {
-
- private String name;
-
- private InstanceSettingsExt settings;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public InstanceSettingsExt getSettings() {
- return settings;
- }
-
- public void setSettings(InstanceSettingsExt settings) {
- this.settings = settings;
- }
-
-}
diff --git a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/WicketInstance.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/WicketInstance.java
new file mode 100644
index 0000000..ae17947
--- /dev/null
+++ b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/WicketInstance.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.webconsole.karaf.admin.model;
+
+import java.io.Serializable;
+
+/**
+ * Serializable instance for wicket.
+ */
+public class WicketInstance implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private String name;
+
+ private WicketInstanceSettings settings;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public WicketInstanceSettings getSettings() {
+ return settings;
+ }
+
+ public void setSettings(WicketInstanceSettings settings) {
+ this.settings = settings;
+ }
+
+}
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/MissingFeatureException.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/WicketInstanceSettings.java
similarity index 66%
copy from karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/MissingFeatureException.java
copy to karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/WicketInstanceSettings.java
index 464b478..67198f5 100644
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/MissingFeatureException.java
+++ b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/model/WicketInstanceSettings.java
@@ -14,12 +14,21 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.webconsole.karaf.features;
+package org.apache.karaf.webconsole.karaf.admin.model;
-public class MissingFeatureException extends RuntimeException {
+import java.io.Serializable;
- public MissingFeatureException(String name, String version) {
- super("Feature " + name + " with version " + version + " is no longer available");
+import org.apache.karaf.admin.InstanceSettings;
+
+/**
+ * Wicket instance settings, serializable.
+ */
+public class WicketInstanceSettings extends InstanceSettings implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ public WicketInstanceSettings() {
+ super(0, 0, 0, "", "", null, null);
}
}
diff --git a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/navigation/AdminNavigationProvider.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/navigation/AdminNavigationProvider.java
index 79094c3..47f9531 100644
--- a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/navigation/AdminNavigationProvider.java
+++ b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/navigation/AdminNavigationProvider.java
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.apache.karaf.webconsole.karaf.admin.navigation;
import static org.apache.karaf.webconsole.core.util.LinkUtils.createPageLink;
@@ -6,15 +22,18 @@
import java.util.List;
import org.apache.karaf.webconsole.core.navigation.NavigationProvider;
-import org.apache.karaf.webconsole.karaf.admin.list.InstancesPage;
+import org.apache.karaf.webconsole.karaf.admin.list.InstancePage;
import org.apache.wicket.Page;
import org.apache.wicket.markup.html.link.Link;
+/**
+ * Navigation provider for admin module.
+ */
public class AdminNavigationProvider implements NavigationProvider {
public List<Link<Page>> getItems(String componentId, String labelId) {
List<Link<Page>> links = new ArrayList<Link<Page>>();
- links.add(createPageLink(componentId, labelId, "Instances", InstancesPage.class));
+ links.add(createPageLink(componentId, labelId, "Instances", InstancePage.class));
return links;
}
diff --git a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/settings/InstanceSettingsForm.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/settings/InstanceSettingsForm.java
index 95b48cd..cd853f6 100644
--- a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/settings/InstanceSettingsForm.java
+++ b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/settings/InstanceSettingsForm.java
@@ -1,16 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.apache.karaf.webconsole.karaf.admin.settings;
-import org.apache.karaf.webconsole.karaf.admin.model.InstanceSettingsExt;
+import org.apache.karaf.webconsole.karaf.admin.model.WicketInstanceSettings;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
-public class InstanceSettingsForm extends Form<InstanceSettingsExt> {
+/**
+ * Instance settings modification form.
+ */
+public class InstanceSettingsForm extends Form<WicketInstanceSettings> {
- public InstanceSettingsForm(String id, IModel<InstanceSettingsExt> model) {
- super(id, new CompoundPropertyModel<InstanceSettingsExt>(model));
+ private static final long serialVersionUID = 1L;
+
+ public InstanceSettingsForm(String id, IModel<WicketInstanceSettings> model) {
+ super(id, new CompoundPropertyModel<WicketInstanceSettings>(model));
add(new TextField<Integer>("sshPort"));
add(new TextField<Integer>("rmiRegistryPort"));
diff --git a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/settings/InstanceSettingsPanel.java b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/settings/InstanceSettingsPanel.java
index 4fb73de..20efbf1 100644
--- a/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/settings/InstanceSettingsPanel.java
+++ b/karaf/admin/src/main/java/org/apache/karaf/webconsole/karaf/admin/settings/InstanceSettingsPanel.java
@@ -1,12 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.apache.karaf.webconsole.karaf.admin.settings;
-import org.apache.karaf.webconsole.karaf.admin.model.InstanceSettingsExt;
+import org.apache.karaf.webconsole.karaf.admin.model.WicketInstanceSettings;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
+/**
+ * Panel to wrap instance settings.
+ */
public class InstanceSettingsPanel extends Panel {
- public InstanceSettingsPanel(String id, IModel<InstanceSettingsExt> model) {
+ private static final long serialVersionUID = 1L;
+
+ public InstanceSettingsPanel(String id, IModel<WicketInstanceSettings> model) {
super(id, model);
add(new InstanceSettingsForm("settings", model));
diff --git a/karaf/admin/src/main/resources/OSGI-INF/blueprint/admin.xml b/karaf/admin/src/main/resources/OSGI-INF/blueprint/admin.xml
index 311bf13..aeddb0b 100644
--- a/karaf/admin/src/main/resources/OSGI-INF/blueprint/admin.xml
+++ b/karaf/admin/src/main/resources/OSGI-INF/blueprint/admin.xml
@@ -26,6 +26,4 @@
<reference id="adminService" interface="org.apache.karaf.admin.AdminService"/>
- <reference id="preferencesService" interface="org.osgi.service.prefs.PreferencesService" />
-
</blueprint>
\ No newline at end of file
diff --git a/karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/create/CreateInstancePage.html b/karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/create/CreateInstancePage.html
index 9dd9b38..6d5d34d 100644
--- a/karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/create/CreateInstancePage.html
+++ b/karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/create/CreateInstancePage.html
@@ -15,23 +15,15 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd" >
- <wicket:head>
- <title>Karaf WebConsole</title>
- </wicket:head>
+<wicket:extend xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd" >
+ <h1>Create new instance</h1>
- <body>
- <wicket:extend>
- <h1>Create new instance</h1>
+ <form wicket:id="instance">
+ Name<br />
+ <input type="text" wicket:id="name" />
- <form wicket:id="instance">
- Name<br />
- <input type="text" wicket:id="name" />
+ <div wicket:id="settings"></div>
- <div wicket:id="settings"></div>
-
- <input wicket:id="submit" type="submit" />
- </form>
- </wicket:extend>
- </body>
-</html>
+ <input wicket:id="submit" type="submit" />
+ </form>
+</wicket:extend>
\ No newline at end of file
diff --git a/karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/list/InstancesPage.html b/karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/list/InstancePage.html
similarity index 64%
copy from karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/list/InstancesPage.html
copy to karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/list/InstancePage.html
index 92019f1..b05fc1a 100644
--- a/karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/list/InstancesPage.html
+++ b/karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/list/InstancePage.html
@@ -15,17 +15,18 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd" >
- <wicket:head>
- <title>Karaf WebConsole</title>
- </wicket:head>
+<wicket:extend xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+ <div class="row-fluid">
+ <h1 class="pull-left">Instances</h1>
- <body>
- <wicket:extend>
- <h1>Instances</h1>
+ <div class="btn-group pull-right">
+ <a class="btn btn-primary">
+ <i class="icon-plus icon-white"></i>
+ New instance
+ </a>
+ </div>
+ </div>
- <table wicket:id="instances" class="table table-striped table-condensed" />
+ <table wicket:id="instances" class="table table-striped table-condensed" />
- </wicket:extend>
- </body>
-</html>
+</wicket:extend>
\ No newline at end of file
diff --git a/karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/settings/InstanceSettingsPanel.html b/karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/settings/InstanceSettingsPanel.html
index 44d71a9..ec2218a 100644
--- a/karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/settings/InstanceSettingsPanel.html
+++ b/karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/settings/InstanceSettingsPanel.html
@@ -15,29 +15,23 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd" >
- <wicket:head>
- <title>Karaf WebConsole</title>
- </wicket:head>
+<wicket:panel xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+ <form wicket:id="settings">
+ SSH port<br />
+ <input type="text" wicket:id="sshPort" />
- <wicket:panel>
- <form wicket:id="settings">
- SSH port<br />
- <input type="text" wicket:id="sshPort" />
+ <h2>RMI Connector</h2>
+ Registry port<br />
+ <input type="text" wicket:id="rmiRegistryPort" />
+ Server port<br />
+ <input type="text" wicket:id="rmiServerPort" />
- <h2>RMI Connector</h2>
- Registry port<br />
- <input type="text" wicket:id="rmiRegistryPort" />
- Server port<br />
- <input type="text" wicket:id="rmiServerPort" />
+ <h2>Runtime</h2>
+ Java process options<br />
+ <textarea wicket:id="javaOpts"></textarea>
- <h2>Runtime</h2>
- Java process options<br />
- <textarea wicket:id="javaOpts"></textarea>
-
- <h2>Read only properties</h2>
- Instance location<br />
- <input type="text" wicket:id="location" />
- </form>
- </wicket:panel>
-</html>
+ <h2>Read only properties</h2>
+ Instance location<br />
+ <input type="text" wicket:id="location" />
+ </form>
+</wicket:panel>
diff --git a/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/KarafOverviewPage.java b/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/KarafOverviewPage.java
index 1e81495..b8de15f 100644
--- a/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/KarafOverviewPage.java
+++ b/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/KarafOverviewPage.java
@@ -1,16 +1,16 @@
package org.apache.karaf.webconsole.karaf.core;
-import org.apache.karaf.webconsole.core.page.SecuredPage;
-import org.apache.karaf.webconsole.karaf.core.model.Karaf;
+import org.apache.karaf.webconsole.core.page.SinglePage;
+import org.apache.karaf.webconsole.karaf.core.model.WicketKaraf;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.CompoundPropertyModel;
import org.ops4j.pax.wicket.api.PaxWicketMountPoint;
@PaxWicketMountPoint(mountPoint = "/karaf")
-public class KarafOverviewPage extends SecuredPage {
+public class KarafOverviewPage extends SinglePage {
public KarafOverviewPage() {
- setDefaultModel(new CompoundPropertyModel<Karaf>(new Karaf()));
+ setDefaultModel(new CompoundPropertyModel<WicketKaraf>(new WicketKaraf()));
add(new Label("version"));
diff --git a/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/model/Karaf.java b/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/model/WicketKaraf.java
similarity index 93%
rename from karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/model/Karaf.java
rename to karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/model/WicketKaraf.java
index f01a280..1bf3706 100644
--- a/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/model/Karaf.java
+++ b/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/model/WicketKaraf.java
@@ -2,7 +2,7 @@
import java.io.Serializable;
-public class Karaf implements Serializable {
+public class WicketKaraf implements Serializable {
public String getVersion() {
return System.getProperty("karaf.version");
diff --git a/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/navigation/KarafConsoleTabProvider.java b/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/navigation/KarafConsoleTabProvider.java
index 4e2f241..64149f3 100644
--- a/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/navigation/KarafConsoleTabProvider.java
+++ b/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/navigation/KarafConsoleTabProvider.java
@@ -12,12 +12,12 @@
public class KarafConsoleTabProvider implements ConsoleTabProvider {
- public List<Link<Page>> getItems(String componentId, String labelId) {
- return Collections.emptyList();
- }
-
public Link<Page> getModuleLink(String componentId, String labelId) {
return createPageLink(componentId, labelId, "Karaf", KarafOverviewPage.class);
}
+ public List<Link<Page>> getItems(String componentId, String labelId) {
+ return Collections.emptyList();
+ }
+
}
diff --git a/karaf/features/NOTICE b/karaf/feature/NOTICE
similarity index 100%
rename from karaf/features/NOTICE
rename to karaf/feature/NOTICE
diff --git a/karaf/features/pom.xml b/karaf/feature/pom.xml
similarity index 94%
rename from karaf/features/pom.xml
rename to karaf/feature/pom.xml
index ce757d1..fb58d24 100644
--- a/karaf/features/pom.xml
+++ b/karaf/feature/pom.xml
@@ -26,8 +26,8 @@
</parent>
<groupId>org.apache.karaf.webconsole.karaf</groupId>
- <artifactId>org.apache.karaf.webconsole.karaf.features</artifactId>
- <name>Apache Karaf :: WebConsole :: Karaf :: Features</name>
+ <artifactId>org.apache.karaf.webconsole.karaf.feature</artifactId>
+ <name>Apache Karaf :: WebConsole :: Karaf :: Feature</name>
<packaging>bundle</packaging>
<dependencies>
@@ -53,7 +53,7 @@
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Import-Package>
- !org.apache.karaf.webconsole.karaf.features*,
+ !org.apache.karaf.webconsole.karaf.feature*,
*,
<!-- transient dependencies -->
org.ops4j.pax.wicket.api,
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/FeatureModel.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeatureModel.java
similarity index 96%
rename from karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/FeatureModel.java
rename to karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeatureModel.java
index f0202fa..1bd285d 100644
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/FeatureModel.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeatureModel.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.webconsole.karaf.features;
+package org.apache.karaf.webconsole.karaf.feature;
import org.apache.karaf.features.Feature;
import org.apache.karaf.features.FeaturesService;
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeatureUtil.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeatureUtil.java
new file mode 100644
index 0000000..3b59517
--- /dev/null
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeatureUtil.java
@@ -0,0 +1,40 @@
+package org.apache.karaf.webconsole.karaf.feature;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.url.URLConstants;
+import org.osgi.service.url.URLStreamHandlerService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Utility class to work with feature related tasks.
+ */
+public class FeatureUtil {
+
+ private static Logger logger = LoggerFactory.getLogger(FeatureUtil.class);
+
+ public static Set<String> getAllowedProtocols(BundleContext context) {
+ Set<String> protocols = new HashSet<String>();
+
+ try {
+ ServiceReference[] references = context.getAllServiceReferences(URLStreamHandlerService.class.getName(),
+ "(!(" + URLConstants.URL_HANDLER_PROTOCOL + "=*))");
+ for (ServiceReference reference : references) {
+ Object property = reference.getProperty(URLConstants.URL_HANDLER_PROTOCOL);
+ if (property != null) {
+ protocols.add((String) property);
+ }
+ }
+ } catch (InvalidSyntaxException e) {
+ logger.error("Exception during scanning the services", e);
+ }
+
+ return protocols;
+ }
+
+}
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/FeaturesProvider.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeaturesProvider.java
similarity index 97%
rename from karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/FeaturesProvider.java
rename to karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeaturesProvider.java
index a864ef7..3a0fad7 100644
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/FeaturesProvider.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeaturesProvider.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.webconsole.karaf.features;
+package org.apache.karaf.webconsole.karaf.feature;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/KarafFeaturesPage.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/KarafFeaturesPage.java
new file mode 100644
index 0000000..e46c7bc
--- /dev/null
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/KarafFeaturesPage.java
@@ -0,0 +1,19 @@
+package org.apache.karaf.webconsole.karaf.feature;
+
+import org.apache.karaf.features.FeaturesService;
+import org.apache.karaf.webconsole.core.page.SinglePage;
+import org.ops4j.pax.wicket.api.PaxWicketBean;
+
+public class KarafFeaturesPage extends SinglePage {
+
+ @PaxWicketBean(name = "featuresService")
+ protected FeaturesService featuresService;
+
+ //@PaxWicketBean(name = "featuresSidebar")
+ //protected SidebarProvider featuresSidebar;
+
+ public KarafFeaturesPage() {
+ //setSidebarProvider(featuresSidebar);
+ }
+
+}
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/MissingFeatureException.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/MissingFeatureException.java
similarity index 94%
rename from karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/MissingFeatureException.java
rename to karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/MissingFeatureException.java
index 464b478..1a0ccd0 100644
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/MissingFeatureException.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/MissingFeatureException.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.webconsole.karaf.features;
+package org.apache.karaf.webconsole.karaf.feature;
public class MissingFeatureException extends RuntimeException {
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/RepositoriesProvider.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/RepositoriesProvider.java
similarity index 92%
rename from karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/RepositoriesProvider.java
rename to karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/RepositoriesProvider.java
index 86f640f..0daf07f 100644
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/RepositoriesProvider.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/RepositoriesProvider.java
@@ -14,14 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.webconsole.karaf.features;
+package org.apache.karaf.webconsole.karaf.feature;
import java.util.Arrays;
import java.util.Iterator;
import org.apache.karaf.features.FeaturesService;
import org.apache.karaf.features.Repository;
-import org.apache.karaf.webconsole.karaf.features.model.RepositoryModel;
+import org.apache.karaf.webconsole.karaf.feature.model.RepositoryModel;
import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
import org.apache.wicket.model.IModel;
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/feature/FeaturesActionsPanel.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesActionsPanel.java
similarity index 96%
rename from karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/feature/FeaturesActionsPanel.java
rename to karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesActionsPanel.java
index 0b175ab..ebda174 100644
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/feature/FeaturesActionsPanel.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesActionsPanel.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.webconsole.karaf.features.feature;
+package org.apache.karaf.webconsole.karaf.feature.feature;
import java.util.Arrays;
import java.util.List;
@@ -57,7 +57,7 @@
}
};
- link.add(new SimpleAttributeModifier("class", isInstalled(object) ? "installed" : "uninstalled"));
+ link.add(new SimpleAttributeModifier("class", isInstalled(object) ? "icon-eject" : "icon-play"));
link.add(new Label(labelId));
// add image to the link
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/feature/FeaturesPage.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage.java
similarity index 95%
rename from karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/feature/FeaturesPage.java
rename to karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage.java
index 0f24ae4..e4f3871 100644
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/feature/FeaturesPage.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.webconsole.karaf.features.feature;
+package org.apache.karaf.webconsole.karaf.feature.feature;
import java.util.ArrayList;
import java.util.HashMap;
@@ -23,8 +23,8 @@
import org.apache.karaf.features.Feature;
import org.apache.karaf.features.Repository;
-import org.apache.karaf.webconsole.karaf.features.FeaturesProvider;
-import org.apache.karaf.webconsole.karaf.features.KarafFeaturesPage;
+import org.apache.karaf.webconsole.karaf.feature.FeaturesProvider;
+import org.apache.karaf.webconsole.karaf.feature.KarafFeaturesPage;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.DefaultDataTable;
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/model/RepositoryModel.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/RepositoryModel.java
similarity index 96%
rename from karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/model/RepositoryModel.java
rename to karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/RepositoryModel.java
index f1741fb..cedf1dc 100644
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/model/RepositoryModel.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/RepositoryModel.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.webconsole.karaf.features.model;
+package org.apache.karaf.webconsole.karaf.feature.model;
import java.net.URI;
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/model/RepositoryNotFoundException.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/RepositoryNotFoundException.java
similarity index 94%
rename from karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/model/RepositoryNotFoundException.java
rename to karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/RepositoryNotFoundException.java
index 7f5b7bd..9e17786 100644
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/model/RepositoryNotFoundException.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/RepositoryNotFoundException.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.webconsole.karaf.features.model;
+package org.apache.karaf.webconsole.karaf.feature.model;
import java.net.URI;
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/WicketRepository.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/WicketRepository.java
new file mode 100644
index 0000000..8d826cd
--- /dev/null
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/WicketRepository.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.webconsole.karaf.feature.model;
+
+import java.io.Serializable;
+import java.net.URI;
+
+import org.apache.karaf.features.Feature;
+import org.apache.karaf.features.Repository;
+
+/**
+ * An implementation of karaf feature {@link Repository} which is used only to
+ * specify URI. All other operations are unsupported.
+ */
+public class WicketRepository implements Repository, Serializable {
+
+ private static final long serialVersionUID = 1L;
+ private URI uri;
+
+ public URI getURI() {
+ return uri;
+ }
+
+ public void setUri(URI uri) {
+ this.uri = uri;
+ }
+
+ public String getName() {
+ throw new UnsupportedOperationException();
+ }
+
+ public URI[] getRepositories() throws Exception {
+ throw new UnsupportedOperationException();
+ }
+
+ public Feature[] getFeatures() throws Exception {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isValid() {
+ throw new UnsupportedOperationException();
+ }
+
+}
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/navigation/FeaturesNavigationProvider.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/navigation/FeatureNavigationProvider.java
similarity index 85%
rename from karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/navigation/FeaturesNavigationProvider.java
rename to karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/navigation/FeatureNavigationProvider.java
index bb36469..986d4aa 100644
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/navigation/FeaturesNavigationProvider.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/navigation/FeatureNavigationProvider.java
@@ -14,21 +14,21 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.webconsole.karaf.features.navigation;
+package org.apache.karaf.webconsole.karaf.feature.navigation;
import java.util.ArrayList;
import java.util.List;
import org.apache.karaf.webconsole.core.navigation.NavigationProvider;
-import org.apache.karaf.webconsole.karaf.features.feature.FeaturesPage;
-import org.apache.karaf.webconsole.karaf.features.repository.RepositoriesPage;
+import org.apache.karaf.webconsole.karaf.feature.feature.FeaturesPage;
+import org.apache.karaf.webconsole.karaf.feature.repository.RepositoriesPage;
import org.apache.wicket.Page;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.model.ResourceModel;
-public class FeaturesNavigationProvider implements NavigationProvider {
+public class FeatureNavigationProvider implements NavigationProvider {
public List<Link<Page>> getItems(String componentId, String labelId) {
List<Link<Page>> items = new ArrayList<Link<Page>>();
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/AddRepositoryPage.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/AddRepositoryPage.java
new file mode 100644
index 0000000..f9457b0
--- /dev/null
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/AddRepositoryPage.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.webconsole.karaf.feature.repository;
+
+import java.net.URI;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.karaf.features.Repository;
+import org.apache.karaf.webconsole.karaf.feature.KarafFeaturesPage;
+import org.apache.karaf.webconsole.karaf.feature.model.WicketRepository;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.SubmitLink;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.ops4j.pax.wicket.api.PaxWicketMountPoint;
+
+@PaxWicketMountPoint(mountPoint = "/karaf/repositories/add")
+public class AddRepositoryPage extends KarafFeaturesPage {
+
+ public AddRepositoryPage() {
+ final IModel<Repository> model = new Model(new WicketRepository());
+
+ final Form<Repository> form = new Form<Repository>("form", model);
+ form.add(new AddRepositoryPanel("repository", model));
+ form.add(new SubmitLink("submit") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onSubmit() {
+ URI uri = model.getObject().getURI();
+ try {
+ featuresService.addRepository(uri);
+ } catch (Exception e) {
+ Map<String, Object> map = new HashMap<String, Object>();
+ map.put("uri", uri);
+ form.error("Can not create repository " + e.getMessage(), map);
+ }
+ }
+ });
+ add(form);
+ }
+
+}
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/AddRepositoryPanel.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/AddRepositoryPanel.java
new file mode 100644
index 0000000..2d78c70
--- /dev/null
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/AddRepositoryPanel.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.webconsole.karaf.feature.repository;
+
+import java.net.URI;
+
+import org.apache.karaf.features.FeaturesService;
+import org.apache.karaf.features.Repository;
+import org.apache.karaf.webconsole.core.form.LabelBorder;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.ResourceModel;
+import org.ops4j.pax.wicket.api.PaxWicketBean;
+
+public class AddRepositoryPanel extends Panel {
+
+ private static final long serialVersionUID = 1L;
+
+ @PaxWicketBean(name = "featuresService")
+ private FeaturesService featuresService;
+
+ private TextField<URI> uri;
+
+ public AddRepositoryPanel(String id, IModel<Repository> model) {
+ super(id);
+
+ Form<Repository> form = new Form<Repository>("add", new CompoundPropertyModel<Repository>(model));
+ uri = new TextField<URI>("uri");
+ uri.setRequired(true);
+
+ LabelBorder border = new LabelBorder("border", new ResourceModel("feature.repository.uri"), uri);
+ border.setHelp(new ResourceModel("feature.repository.uri.help"));
+ form.add(border);
+ add(form);
+ }
+
+
+}
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/repository/RepositoriesActionPanel.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesActionPanel.java
similarity index 96%
rename from karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/repository/RepositoriesActionPanel.java
rename to karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesActionPanel.java
index 66440f8..b43ec7e 100644
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/repository/RepositoriesActionPanel.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesActionPanel.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.webconsole.karaf.features.repository;
+package org.apache.karaf.webconsole.karaf.feature.repository;
import java.util.ArrayList;
import java.util.List;
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/repository/RepositoriesPage.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesPage.java
similarity index 77%
rename from karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/repository/RepositoriesPage.java
rename to karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesPage.java
index e78dca4..1661a41 100644
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/repository/RepositoriesPage.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesPage.java
@@ -14,12 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.webconsole.karaf.features.repository;
+package org.apache.karaf.webconsole.karaf.feature.repository;
import org.apache.karaf.features.Repository;
import org.apache.karaf.webconsole.core.table.OrdinalColumn;
-import org.apache.karaf.webconsole.karaf.features.KarafFeaturesPage;
-import org.apache.karaf.webconsole.karaf.features.RepositoriesProvider;
+import org.apache.karaf.webconsole.karaf.feature.KarafFeaturesPage;
+import org.apache.karaf.webconsole.karaf.feature.RepositoriesProvider;
+import org.apache.wicket.RequestCycle;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.AjaxFallbackLink;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.DefaultDataTable;
@@ -46,6 +49,17 @@
}
};
+ add(new AjaxFallbackLink("addRepository") {
+ @Override
+ public void onClick(AjaxRequestTarget target) {
+// if (target != null) {
+// target.addComponent(new AddRepositoryPanel(id, model));
+// } else {
+ RequestCycle.get().setResponsePage(AddRepositoryPage.class);
+// }
+ }
+ });
+
add(new DefaultDataTable<Repository>("repositories", columns, new RepositoriesProvider(featuresService), 20));
}
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/sidebar/KarafFeaturesSidebar.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/sidebar/KarafFeatureSidebar.java
similarity index 83%
rename from karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/sidebar/KarafFeaturesSidebar.java
rename to karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/sidebar/KarafFeatureSidebar.java
index f21f32c..2504265 100644
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/sidebar/KarafFeaturesSidebar.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/sidebar/KarafFeatureSidebar.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.webconsole.karaf.features.sidebar;
+package org.apache.karaf.webconsole.karaf.feature.sidebar;
import static org.apache.karaf.webconsole.core.util.LinkUtils.createPageLink;
@@ -24,16 +24,16 @@
import org.apache.karaf.webconsole.core.navigation.SidebarProvider;
import org.apache.karaf.webconsole.core.widget.WidgetProvider;
-import org.apache.karaf.webconsole.karaf.features.feature.FeaturesPage;
-import org.apache.karaf.webconsole.karaf.features.repository.AddRepositoryPage;
-import org.apache.karaf.webconsole.karaf.features.repository.RepositoriesPage;
+import org.apache.karaf.webconsole.karaf.feature.feature.FeaturesPage;
+import org.apache.karaf.webconsole.karaf.feature.repository.AddRepositoryPage;
+import org.apache.karaf.webconsole.karaf.feature.repository.RepositoriesPage;
import org.apache.wicket.Page;
import org.apache.wicket.markup.html.link.Link;
/**
* Karaf features sidebar.
*/
-public class KarafFeaturesSidebar implements SidebarProvider {
+public class KarafFeatureSidebar implements SidebarProvider {
@SuppressWarnings("unchecked")
public List<Link<Page>> getItems(String componentId, String labelId) {
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/widget/FeaturesWidgetPanel.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/widget/FeatureWidgetPanel.java
similarity index 83%
rename from karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/widget/FeaturesWidgetPanel.java
rename to karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/widget/FeatureWidgetPanel.java
index f196cf3..36a97cd 100644
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/widget/FeaturesWidgetPanel.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/widget/FeatureWidgetPanel.java
@@ -14,19 +14,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.webconsole.karaf.features.widget;
+package org.apache.karaf.webconsole.karaf.feature.widget;
import org.apache.karaf.features.Feature;
import org.apache.karaf.features.FeaturesService;
-import org.apache.karaf.webconsole.karaf.features.feature.FeaturesPage;
-import org.apache.karaf.webconsole.karaf.features.repository.RepositoriesPage;
+import org.apache.karaf.webconsole.karaf.feature.feature.FeaturesPage;
+import org.apache.karaf.webconsole.karaf.feature.repository.RepositoriesPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.panel.Panel;
-public class FeaturesWidgetPanel extends Panel {
+public class FeatureWidgetPanel extends Panel {
- public FeaturesWidgetPanel(String id, FeaturesService service) {
+ public FeatureWidgetPanel(String id, FeaturesService service) {
super(id);
try {
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/widget/KarafFeaturesWidgetProvider.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/widget/KarafFeatureWidgetProvider.java
similarity index 81%
rename from karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/widget/KarafFeaturesWidgetProvider.java
rename to karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/widget/KarafFeatureWidgetProvider.java
index 4fc4cb0..65f1c8a 100644
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/widget/KarafFeaturesWidgetProvider.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/widget/KarafFeatureWidgetProvider.java
@@ -14,22 +14,22 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.webconsole.karaf.features.widget;
+package org.apache.karaf.webconsole.karaf.feature.widget;
import org.apache.karaf.features.FeaturesService;
import org.apache.karaf.webconsole.core.widget.WidgetProvider;
import org.apache.wicket.markup.html.panel.Panel;
-public class KarafFeaturesWidgetProvider implements WidgetProvider {
+public class KarafFeatureWidgetProvider implements WidgetProvider {
private final FeaturesService service;
- public KarafFeaturesWidgetProvider(FeaturesService service) {
+ public KarafFeatureWidgetProvider(FeaturesService service) {
this.service = service;
}
public Panel createPanel(String id) {
- return new FeaturesWidgetPanel(id, service);
+ return new FeatureWidgetPanel(id, service);
}
}
diff --git a/karaf/features/src/main/resources/OSGI-INF/blueprint/features.xml b/karaf/feature/src/main/resources/OSGI-INF/blueprint/feature.xml
similarity index 88%
rename from karaf/features/src/main/resources/OSGI-INF/blueprint/features.xml
rename to karaf/feature/src/main/resources/OSGI-INF/blueprint/feature.xml
index 781c5f4..71404e0 100644
--- a/karaf/features/src/main/resources/OSGI-INF/blueprint/features.xml
+++ b/karaf/feature/src/main/resources/OSGI-INF/blueprint/feature.xml
@@ -21,7 +21,7 @@
<service-properties>
<entry key="extends" value="karaf" />
</service-properties>
- <bean class="org.apache.karaf.webconsole.karaf.features.navigation.FeaturesNavigationProvider" />
+ <bean class="org.apache.karaf.webconsole.karaf.feature.navigation.FeatureNavigationProvider" />
</service>
<reference id="featuresService" interface="org.apache.karaf.features.FeaturesService"/>
@@ -32,10 +32,10 @@
</service-properties>
</service>
- <bean id="widgetProvider" class="org.apache.karaf.webconsole.karaf.features.widget.KarafFeaturesWidgetProvider">
+ <bean id="widgetProvider" class="org.apache.karaf.webconsole.karaf.feature.widget.KarafFeatureWidgetProvider">
<argument ref="featuresService" />
</bean>
- <bean id="featuresSidebar" class="org.apache.karaf.webconsole.karaf.features.sidebar.KarafFeaturesSidebar" />
+ <bean id="featuresSidebar" class="org.apache.karaf.webconsole.karaf.feature.sidebar.KarafFeatureSidebar" />
</blueprint>
diff --git a/karaf/feature/src/main/resources/OSGI-INF/l10n/webconsole_pl.properties b/karaf/feature/src/main/resources/OSGI-INF/l10n/webconsole_pl.properties
new file mode 100644
index 0000000..89cac00
--- /dev/null
+++ b/karaf/feature/src/main/resources/OSGI-INF/l10n/webconsole_pl.properties
@@ -0,0 +1,3 @@
+feature.repository.uri URI Repozytorium
+feature.repository.uri.help Mozesz okreslic URI repozytorium cech. Reposytorium to plik \
+xml ktory zawiera definicje jednostek wdrozenia.
\ No newline at end of file
diff --git a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/feature/FeaturesPage.html b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage.html
similarity index 100%
rename from karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/feature/FeaturesPage.html
rename to karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage.html
diff --git a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/feature/FeaturesPage.properties b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage.properties
similarity index 100%
rename from karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/feature/FeaturesPage.properties
rename to karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage.properties
diff --git a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/feature/FeaturesPage_de.properties b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage_de.properties
similarity index 100%
rename from karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/feature/FeaturesPage_de.properties
rename to karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage_de.properties
diff --git a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/feature/FeaturesPage_fr.properties b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage_fr.properties
similarity index 100%
rename from karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/feature/FeaturesPage_fr.properties
rename to karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage_fr.properties
diff --git a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/feature/features.css b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/feature/features.css
similarity index 100%
rename from karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/feature/features.css
rename to karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/feature/features.css
diff --git a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/feature/images/feature_install.png b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/feature/images/feature_install.png
similarity index 100%
rename from karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/feature/images/feature_install.png
rename to karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/feature/images/feature_install.png
Binary files differ
diff --git a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/feature/images/feature_uninstall.png b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/feature/images/feature_uninstall.png
similarity index 100%
rename from karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/feature/images/feature_uninstall.png
rename to karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/feature/images/feature_uninstall.png
Binary files differ
diff --git a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/navigation/package_fr.properties b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/navigation/package_fr.properties
similarity index 100%
rename from karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/navigation/package_fr.properties
rename to karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/navigation/package_fr.properties
diff --git a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/repository/RepositoriesPage.html b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/repository/AddRepositoryPage.html
similarity index 65%
rename from karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/repository/RepositoriesPage.html
rename to karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/repository/AddRepositoryPage.html
index d0b8d73..9ed2420 100644
--- a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/repository/RepositoriesPage.html
+++ b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/repository/AddRepositoryPage.html
@@ -15,16 +15,17 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd" >
- <wicket:head>
- <title>Karaf WebConsole</title>
- </wicket:head>
+<wicket:extend xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+ <h1>Add feature repository</h1>
- <body>
- <wicket:extend>
- <h1>Feature Repositories</h1>
- <table wicket:id="repositories" class="table table-striped table-condensed"/>
- </wicket:extend>
- </body>
+ <form wicket:id="form">
-</html>
+ <div wicket:id="repository"></div>
+
+ <div class="form-actions">
+ <input type="submit" wicket:id="submit" class="btn btn-primary" value="Create" />
+ <input type="reset" class="btn" value="Reset" />
+ </div>
+ </form>
+
+</wicket:extend>
\ No newline at end of file
diff --git a/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/repository/AddRepositoryPage.properties b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/repository/AddRepositoryPage.properties
new file mode 100644
index 0000000..6561485
--- /dev/null
+++ b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/repository/AddRepositoryPage.properties
@@ -0,0 +1,3 @@
+feature.repository.uri Repository URI
+feature.repository.uri.help You can specify an URI to feature repository. The \
+feature repository is XML file which contains definition of deployment units.
\ No newline at end of file
diff --git a/karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/list/InstancesPage.html b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/repository/AddRepositoryPanel.html
similarity index 67%
rename from karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/list/InstancesPage.html
rename to karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/repository/AddRepositoryPanel.html
index 92019f1..10554d4 100644
--- a/karaf/admin/src/main/resources/org/apache/karaf/webconsole/karaf/admin/list/InstancesPage.html
+++ b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/repository/AddRepositoryPanel.html
@@ -15,17 +15,13 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd" >
- <wicket:head>
- <title>Karaf WebConsole</title>
- </wicket:head>
-
- <body>
- <wicket:extend>
- <h1>Instances</h1>
-
- <table wicket:id="instances" class="table table-striped table-condensed" />
-
- </wicket:extend>
- </body>
-</html>
+<wicket:panel xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+ <form wicket:id="add">
+ <fieldset>
+ <legend>Feature details</legend>
+ <div class="control-group" wicket:id="border">
+ <input type="text" class="input-xlarge" id="uri" wicket:id="uri" />
+ </div>
+ </fieldset>
+ </form>
+</wicket:panel>
\ No newline at end of file
diff --git a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/repository/RepositoriesPage.html b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesPage.html
similarity index 62%
copy from karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/repository/RepositoriesPage.html
copy to karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesPage.html
index d0b8d73..5512771 100644
--- a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/repository/RepositoriesPage.html
+++ b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesPage.html
@@ -15,16 +15,19 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd" >
- <wicket:head>
- <title>Karaf WebConsole</title>
- </wicket:head>
+<wicket:extend xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
- <body>
- <wicket:extend>
- <h1>Feature Repositories</h1>
- <table wicket:id="repositories" class="table table-striped table-condensed"/>
- </wicket:extend>
- </body>
+ <div class="row-fluid">
+ <h1 class="pull-left">Feature Repositories</h1>
-</html>
+ <div class="pull-right">
+ <a class="btn btn-primary" wicket:id="addRepository">
+ <i class="icon-plus"></i>
+ Add repository
+ </a>
+ </div>
+ </div>
+
+ <table wicket:id="repositories" class="table table-striped table-condensed"/>
+
+</wicket:extend>
\ No newline at end of file
diff --git a/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/widget/FeatureWidgetPanel.html b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/widget/FeatureWidgetPanel.html
new file mode 100644
index 0000000..8863518
--- /dev/null
+++ b/karaf/feature/src/main/resources/org/apache/karaf/webconsole/karaf/feature/widget/FeatureWidgetPanel.html
@@ -0,0 +1,32 @@
+<?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.
+-->
+<wicket:panel xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+ <div class="span3 widget">
+ <h3>Karaf Features</h3>
+ <p>
+ You have <span wicket:id="featuresCount">10</span> features.
+ <span wicket:id="installedCount">10</span> installed and
+ <span wicket:id="uninstalledCount">10</span> waiting for installation.
+ </p>
+
+ <p>
+ <a wicket:id="featuresLink">Go to feature management</a>
+ <a wicket:id="repositoriesLink">Go to repository management</a>
+ </p>
+ </div>
+</wicket:panel>
\ No newline at end of file
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/KarafFeaturesPage.java b/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/KarafFeaturesPage.java
deleted file mode 100644
index f330639..0000000
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/KarafFeaturesPage.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.apache.karaf.webconsole.karaf.features;
-
-import org.apache.karaf.features.FeaturesService;
-import org.apache.karaf.webconsole.core.navigation.SidebarProvider;
-import org.apache.karaf.webconsole.core.page.SidebarPage;
-import org.ops4j.pax.wicket.api.PaxWicketBean;
-
-public class KarafFeaturesPage extends SidebarPage {
-
- @PaxWicketBean(name = "featuresService")
- protected FeaturesService featuresService;
-
- @PaxWicketBean(name = "featuresSidebar")
- protected SidebarProvider featuresSidebar;
-
- public KarafFeaturesPage() {
- setSidebarProvider(featuresSidebar);
- }
-
-}
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/repository/AddRepositoryForm.java b/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/repository/AddRepositoryForm.java
deleted file mode 100644
index 2653ccc..0000000
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/repository/AddRepositoryForm.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.webconsole.karaf.features.repository;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import org.apache.karaf.features.FeaturesService;
-import org.apache.karaf.features.Repository;
-import org.apache.karaf.webconsole.core.form.LabelBorder;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.form.SubmitLink;
-import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.model.Model;
-import org.ops4j.pax.wicket.api.PaxWicketBean;
-
-public class AddRepositoryForm extends Form<Repository> {
-
- @PaxWicketBean(name = "featuresService")
- private FeaturesService featuresService;
-
- private TextField<String> uri;
-
- public AddRepositoryForm(String id) {
- super(id);
-
- uri = new TextField<String>("uri", Model.of("mvn:")) {
- @Override
- public boolean isRequired() {
- return true;
- }
- };
-
- LabelBorder border = new LabelBorder("border");
- border.add(new Label("label", "Repository URI"));
- border.add(uri);
-
- add(border);
-
- add(new SubmitLink("submit"));
- }
-
- @Override
- protected void onSubmit() {
- String add = uri.getModelObject();
- try {
- URI uri = new URI(add);
- featuresService.addRepository(uri);
-
- getSession().info("New repository with uri " + uri + " added");
- getRequestCycle().setResponsePage(RepositoriesPage.class);
- } catch (URISyntaxException e) {
- error("Cannot parse give uri " + e.getMessage());
- } catch (Exception e) {
- error("FeaturesService reported an error " + e.getMessage());
- }
- }
-
-}
diff --git a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/repository/AddRepositoryPage.java b/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/repository/AddRepositoryPage.java
deleted file mode 100644
index 9b1c77b..0000000
--- a/karaf/features/src/main/java/org/apache/karaf/webconsole/karaf/features/repository/AddRepositoryPage.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.webconsole.karaf.features.repository;
-
-import org.apache.karaf.webconsole.karaf.features.KarafFeaturesPage;
-import org.ops4j.pax.wicket.api.PaxWicketMountPoint;
-
-@PaxWicketMountPoint(mountPoint = "/karaf/repositories/add")
-public class AddRepositoryPage extends KarafFeaturesPage {
-
- public AddRepositoryPage() {
- add(new AddRepositoryForm("add"));
- }
-
-}
diff --git a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/repository/AddRepositoryPage.html b/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/repository/AddRepositoryPage.html
deleted file mode 100644
index 213fe99..0000000
--- a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/repository/AddRepositoryPage.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<?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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd" >
- <wicket:head>
- <title>Karaf WebConsole</title>
- </wicket:head>
-
- <body>
- <wicket:extend>
- <h1>Add feature repository</h1>
-
- <form wicket:id="add">
- <span wicket:id="border">
- <input type="text" wicket:id="uri" value="mvn:foo/bar/1.0.0/xml/features" />
- </span>
-
- <input type="submit" wicket:id="submit" value="Confirm" />
- </form>
-
- </wicket:extend>
- </body>
-
-</html>
diff --git a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/widget/FeaturesWidgetPanel.html b/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/widget/FeaturesWidgetPanel.html
deleted file mode 100644
index aa01e3f..0000000
--- a/karaf/features/src/main/resources/org/apache/karaf/webconsole/karaf/features/widget/FeaturesWidgetPanel.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<?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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title>Karaf WebConsole</title>
-</head>
-<body>
-
- <wicket:panel>
- <div class="grid_3 widget">
- <h3>Karaf Features</h3>
- <p>
- You have <span wicket:id="featuresCount">10</span> features.
- <span wicket:id="installedCount">10</span> installed and
- <span wicket:id="uninstalledCount">10</span> waiting for installation.
- </p>
-
- <p>
- <a wicket:id="featuresLink">Go to feature management</a>
- <a wicket:id="repositoriesLink">Go to repository management</a>
- </p>
- </div>
- </wicket:panel>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/karaf/pom.xml b/karaf/pom.xml
index 05c5020..15aa438 100644
--- a/karaf/pom.xml
+++ b/karaf/pom.xml
@@ -33,7 +33,7 @@
<modules>
<module>core</module>
<module>admin</module>
- <module>features</module>
+ <module>feature</module>
</modules>
<dependencyManagement>