Fix compiler warnings for most of the classes. Added serial version ID and @SuppressWarnings where necessary.

git-svn-id: https://svn.apache.org/repos/asf/karaf/webconsole/trunk@1363712 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/CamelPage.java b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/CamelPage.java
index a94958d..65a3a94 100644
--- a/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/CamelPage.java
+++ b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/CamelPage.java
@@ -18,6 +18,11 @@
 
 import org.apache.karaf.webconsole.core.page.SinglePage;
 
+/**
+ * Base page for camel extension pages.
+ */
 public class CamelPage extends SinglePage {
 
+    private static final long serialVersionUID = 1L;
+
 }
diff --git a/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/CamelContextModel.java b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/CamelContextModel.java
index 9e17b33..79c53be 100644
--- a/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/CamelContextModel.java
+++ b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/CamelContextModel.java
@@ -21,8 +21,13 @@
 import org.apache.camel.CamelContext;
 import org.apache.wicket.model.LoadableDetachableModel;
 
+/**
+ * Camel context model.
+ */
 public class CamelContextModel extends LoadableDetachableModel<CamelContext> {
 
+    private static final long serialVersionUID = 1L;
+
     private String name;
     private List<CamelContext> contexts;
 
diff --git a/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/CamelContextsDataProvider.java b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/CamelContextsDataProvider.java
new file mode 100644
index 0000000..10b43f6
--- /dev/null
+++ b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/CamelContextsDataProvider.java
@@ -0,0 +1,52 @@
+/*
+ * 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.camel.internal.context;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.camel.CamelContext;
+import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
+import org.apache.wicket.model.IModel;
+
+/**
+ * Camel context list data provider.
+ */
+public class CamelContextsDataProvider extends SortableDataProvider<CamelContext> {
+
+    private static final long serialVersionUID = 1L;
+
+    private final List<CamelContext> contexts;
+
+    public CamelContextsDataProvider(List<CamelContext> contexts) {
+        this.contexts = contexts;
+    }
+
+    public Iterator<? extends CamelContext> iterator(int first, int count) {
+        return new ArrayList<CamelContext>(contexts).subList(first, first + count).iterator();
+    }
+
+    public int size() {
+        return contexts.size();
+    }
+
+    public IModel<CamelContext> model(CamelContext object) {
+        return new CamelContextModel(contexts, object);
+    }
+}
+
diff --git a/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/CamelContextsPage.java b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/CamelContextsPage.java
index 9e44d14..8de1dac 100644
--- a/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/CamelContextsPage.java
+++ b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/CamelContextsPage.java
@@ -16,9 +16,7 @@
  */
 package org.apache.karaf.webconsole.camel.internal.context;
 
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.camel.CamelContext;
@@ -30,8 +28,6 @@
 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.extensions.markup.html.repeater.data.table.ISortableDataProvider;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.model.IModel;
@@ -39,17 +35,23 @@
 import org.ops4j.pax.wicket.api.PaxWicketBean;
 import org.ops4j.pax.wicket.api.PaxWicketMountPoint;
 
+/**
+ * Camel contexts list page.
+ */
 @PaxWicketMountPoint(mountPoint = "/camel/contexts")
 public class CamelContextsPage extends CamelPage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "contexts")
     private List<CamelContext> contexts;
 
     @PaxWicketBean(name = "tracer")
     private TraceContainer container;
 
+    @SuppressWarnings("unchecked")
     public CamelContextsPage() {
-        @SuppressWarnings("unchecked")
+        @SuppressWarnings("serial")
         IColumn<CamelContext>[] columns = new IColumn[] {
             new OrdinalColumn<CamelContext>(),
             new PropertyColumnExt<CamelContext>("Name", "name"),
@@ -73,21 +75,7 @@
             }
         };
 
-        ISortableDataProvider<CamelContext> provider = new SortableDataProvider<CamelContext>() {
-            public Iterator<? extends CamelContext> iterator(int first, int count) {
-                return new ArrayList<CamelContext>(contexts).subList(first, first + count).iterator();
-            }
-
-            public int size() {
-                return contexts.size();
-            }
-
-            public IModel<CamelContext> model(CamelContext object) {
-                return new CamelContextModel(contexts, object);
-            }
-        };
-
-        add(new DefaultDataTable<CamelContext>("contexts", Arrays.asList(columns), provider, 20));
+        add(new DefaultDataTable<CamelContext>("contexts", Arrays.asList(columns), new CamelContextsDataProvider(contexts), 20));
     }
 
 }
diff --git a/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/ContextActionsPanel.java b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/ContextActionsPanel.java
index 179965c..e6066c0 100644
--- a/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/ContextActionsPanel.java
+++ b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/ContextActionsPanel.java
@@ -28,8 +28,13 @@
 import org.apache.wicket.model.IModel;
 import org.ops4j.pax.wicket.api.PaxWicketBean;
 
+/**
+ * Panel with actions for single camel context.
+ */
 public class ContextActionsPanel extends ActionsPanel<CamelContext> {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "tracer")
     private TraceContainer container;
 
@@ -38,6 +43,7 @@
     }
 
     @Override
+    @SuppressWarnings({"rawtypes", "serial"})
     protected List<Link> getLinks(CamelContext object, String linkId, String labelId) {
         List<Link> links = new ArrayList<Link>();
 
diff --git a/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/DumpPage.java b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/DumpPage.java
index d1c0a05..e8353b5 100644
--- a/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/DumpPage.java
+++ b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/context/DumpPage.java
@@ -31,8 +31,14 @@
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 
+/**
+ * Page with trace view.
+ */
 public class DumpPage extends CamelPage {
 
+    private static final long serialVersionUID = 1L;
+
+    @SuppressWarnings("serial")
     public DumpPage(TraceContainer container, CamelContext context) {
         Tracer tracer = container.getTracer(context);
         List<Map<String, Serializable>> info;
diff --git a/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/tracking/TraceProcessor.java b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/tracking/TraceProcessor.java
index 74f7b51..16c8873 100644
--- a/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/tracking/TraceProcessor.java
+++ b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/tracking/TraceProcessor.java
@@ -50,7 +50,7 @@
         Message msg = exchange.getIn();
         if (msg != null) {
             properties.put("exchangeInId", msg.getMessageId());
-            properties.put("exchangeInHeaders", new HashMap(msg.getHeaders()));
+            properties.put("exchangeInHeaders", new HashMap<String, Object>(msg.getHeaders()));
             Object body = msg.getBody();
             if (body instanceof Serializable) {
                 properties.put("exchangeInBody", (Serializable) body);
@@ -64,7 +64,7 @@
         msg = exchange.getOut();
         if (msg != null) {
             properties.put("exchangeOutId", msg.getMessageId());
-            properties.put("exchangeOutHeaders", new HashMap(msg.getHeaders()));
+            properties.put("exchangeOutHeaders", new HashMap<String, Object>(msg.getHeaders()));
             Object body = msg.getBody();
             if (body instanceof Serializable) {
                 properties.put("exchangeOutBody", (Serializable) body);
diff --git a/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/widget/CamelWidget.java b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/widget/CamelWidget.java
index 7fce73d..a7289b6 100644
--- a/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/widget/CamelWidget.java
+++ b/camel/src/main/java/org/apache/karaf/webconsole/camel/internal/widget/CamelWidget.java
@@ -26,8 +26,14 @@
 import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.markup.html.panel.Panel;
 
+/**
+ * Widget with list of camel contexts.
+ */
 public class CamelWidget extends Panel {
 
+    private static final long serialVersionUID = 1L;
+
+    @SuppressWarnings("serial")
     public CamelWidget(String id, List<CamelContext> contexts) {
         super(id);
 
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java b/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java
index 5402fb1..c57fd92 100644
--- a/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java
@@ -35,6 +35,8 @@
  */
 public class BasePage extends WebPage {
 
+    private static final long serialVersionUID = 1L;
+
     /**
      * Brand provider responsible for l&f customization.
      */
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/dashboard/DashboardPage.java b/core/src/main/java/org/apache/karaf/webconsole/core/dashboard/DashboardPage.java
index e04b07a..6e515a0 100644
--- a/core/src/main/java/org/apache/karaf/webconsole/core/dashboard/DashboardPage.java
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/dashboard/DashboardPage.java
@@ -39,12 +39,11 @@
     @PaxWicketBean(name = "widgets")
     private List<WidgetProvider> widgets;
 
+    @SuppressWarnings("serial")
     public DashboardPage() {
         add(new CssBehavior(DashboardPage.class, "dashboard.css"));
 
         add(new Label("noWidgets", getString("widgets.empty")) {
-            private static final long serialVersionUID = 1L;
-
             @Override
             public boolean isVisible() {
                 return widgets.size() == 0;
@@ -52,8 +51,6 @@
         });
 
         add(new ListView<WidgetProvider>("widgets", new ListModel<WidgetProvider>(widgets)) {
-            private static final long serialVersionUID = 1L;
-
             @Override
             protected void populateItem(ListItem<WidgetProvider> item) {
                 item.add(item.getModelObject().createPanel("widget"));
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/navigation/markup/ModuleTabPanel.java b/core/src/main/java/org/apache/karaf/webconsole/core/navigation/markup/ModuleTabPanel.java
index b8e4299..96c7ccb 100644
--- a/core/src/main/java/org/apache/karaf/webconsole/core/navigation/markup/ModuleTabPanel.java
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/navigation/markup/ModuleTabPanel.java
@@ -21,8 +21,8 @@
 
 import org.apache.karaf.webconsole.core.navigation.ConsoleTabProvider;
 import org.apache.karaf.webconsole.core.util.LinkUtils;
+import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Page;
-import org.apache.wicket.behavior.SimpleAttributeModifier;
 import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
@@ -37,17 +37,16 @@
  */
 public class ModuleTabPanel extends Panel {
 
-    private static final long serialVersionUID = 1491009991152801134L;
+    private static final long serialVersionUID = 1L;
 
     @PaxWicketBean(name = "tabs")
     protected List<ConsoleTabProvider> tabs;
 
+    @SuppressWarnings("serial")
     public ModuleTabPanel(String id) {
         super(id);
 
         IModel<List<Link<Page>>> links = new LoadableDetachableModel<List<Link<Page>>>() {
-            private static final long serialVersionUID = 1L;
-
             @Override
             protected List<Link<Page>> load() {
                 if (tabs == null) {
@@ -64,14 +63,12 @@
         };
 
         add(new ListView<Link<Page>>("moduleLinks", links) {
-            private static final long serialVersionUID = 1L;
-
             @Override
             protected void populateItem(ListItem<Link<Page>> item) {
                 Link<Page> link = item.getModelObject();
                 item.add(link);
                 if (LinkUtils.isActiveTrail(link)) {
-                    item.add(new SimpleAttributeModifier("class", "active"));
+                    item.add(new AttributeModifier("class", "active"));
                 }
             }
         });
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/page/LoginPage.java b/core/src/main/java/org/apache/karaf/webconsole/core/page/LoginPage.java
index cefd5f2..d0b8ab3 100644
--- a/core/src/main/java/org/apache/karaf/webconsole/core/page/LoginPage.java
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/page/LoginPage.java
@@ -25,6 +25,8 @@
  */
 public class LoginPage extends BasePage {
 
+    private static final long serialVersionUID = 1L;
+
     public LoginPage() {
         this(null);
     }
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/page/SecuredPage.java b/core/src/main/java/org/apache/karaf/webconsole/core/page/SecuredPage.java
index a4e8fcd..43e0970 100644
--- a/core/src/main/java/org/apache/karaf/webconsole/core/page/SecuredPage.java
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/page/SecuredPage.java
@@ -27,6 +27,8 @@
 @AuthorizeInstantiation("admin")
 public class SecuredPage extends BasePage {
 
+    private static final long serialVersionUID = 1L;
+
     @Override
     protected Panel createTopPanel(String id) {
         return new NavigationTopPanel(id, getSupportedLocales());
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/page/SidebarPage.java b/core/src/main/java/org/apache/karaf/webconsole/core/page/SidebarPage.java
index ac0fc00..a8a7005 100644
--- a/core/src/main/java/org/apache/karaf/webconsole/core/page/SidebarPage.java
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/page/SidebarPage.java
@@ -27,6 +27,8 @@
  */
 public class SidebarPage extends SecuredPage {
 
+    private static final long serialVersionUID = 1L;
+
     private Panel sidebar;
 
     public SidebarPage() {
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/page/SinglePage.java b/core/src/main/java/org/apache/karaf/webconsole/core/page/SinglePage.java
index cbc30a7..bdf57ea 100644
--- a/core/src/main/java/org/apache/karaf/webconsole/core/page/SinglePage.java
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/page/SinglePage.java
@@ -24,6 +24,8 @@
  */
 public class SinglePage extends SecuredPage {
 
+    private static final long serialVersionUID = 1L;
+
     public SinglePage() {
         add(new ModuleTabPanel("tabs"));
 
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/preferences/PreferencesPage.java b/core/src/main/java/org/apache/karaf/webconsole/core/preferences/PreferencesPage.java
index e0a8609..5833afb 100644
--- a/core/src/main/java/org/apache/karaf/webconsole/core/preferences/PreferencesPage.java
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/preferences/PreferencesPage.java
@@ -33,6 +33,8 @@
 @PaxWicketMountPoint(mountPoint = "/preferences")
 public class PreferencesPage extends SinglePage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "preferencesProviders")
     private List<PanelProvider> providers;
 
diff --git a/core/src/test/java/org/apache/karaf/webconsole/core/TestTargetLocator.java b/core/src/test/java/org/apache/karaf/webconsole/core/TestTargetLocator.java
index 5eab88a..d478342 100644
--- a/core/src/test/java/org/apache/karaf/webconsole/core/TestTargetLocator.java
+++ b/core/src/test/java/org/apache/karaf/webconsole/core/TestTargetLocator.java
@@ -21,6 +21,7 @@
 /**
  * Test target locator for test injections.
  */
+@SuppressWarnings("serial")
 public class TestTargetLocator implements IProxyTargetLocator {
 
     private Object value;
diff --git a/core/src/test/java/org/apache/karaf/webconsole/core/page/SidebarPageTest.java b/core/src/test/java/org/apache/karaf/webconsole/core/page/SidebarPageTest.java
index 9d66de1..963a500 100644
--- a/core/src/test/java/org/apache/karaf/webconsole/core/page/SidebarPageTest.java
+++ b/core/src/test/java/org/apache/karaf/webconsole/core/page/SidebarPageTest.java
@@ -74,6 +74,7 @@
         return AlwaysAuthenticatedWebSession.class;
     }
 
+    @SuppressWarnings("serial")
     static class TestSidebarPage extends SidebarPage {
         public TestSidebarPage(SidebarProvider provider) {
             setSidebarProvider(provider);
diff --git a/core/src/test/java/org/apache/karaf/webconsole/core/page/SinglePageTest.java b/core/src/test/java/org/apache/karaf/webconsole/core/page/SinglePageTest.java
index 5d00710..b0158fd 100644
--- a/core/src/test/java/org/apache/karaf/webconsole/core/page/SinglePageTest.java
+++ b/core/src/test/java/org/apache/karaf/webconsole/core/page/SinglePageTest.java
@@ -205,5 +205,6 @@
     // as ConsoleTabProviders are OSGi services.
     interface SerializableConsoleTabProvider extends Serializable, ConsoleTabProvider {}
 
+    @SuppressWarnings("serial")
     public static class SinglePageExt extends SinglePage {}
 }
diff --git a/core/src/test/java/org/apache/karaf/webconsole/core/test/AlwaysAuthenticatedWebSession.java b/core/src/test/java/org/apache/karaf/webconsole/core/test/AlwaysAuthenticatedWebSession.java
index fb52c25..f7754ec 100644
--- a/core/src/test/java/org/apache/karaf/webconsole/core/test/AlwaysAuthenticatedWebSession.java
+++ b/core/src/test/java/org/apache/karaf/webconsole/core/test/AlwaysAuthenticatedWebSession.java
@@ -24,6 +24,7 @@
  * Dummy session which does not handle authentication, simply returns true for
  * all input values and only one role.
  */
+@SuppressWarnings("serial")
 public class AlwaysAuthenticatedWebSession extends WebConsoleSession {
 
     private Roles roles;
diff --git a/core/src/test/java/org/apache/karaf/webconsole/core/test/BaseLinkAnswer.java b/core/src/test/java/org/apache/karaf/webconsole/core/test/BaseLinkAnswer.java
index bc4c00e..73edfcc 100644
--- a/core/src/test/java/org/apache/karaf/webconsole/core/test/BaseLinkAnswer.java
+++ b/core/src/test/java/org/apache/karaf/webconsole/core/test/BaseLinkAnswer.java
@@ -25,6 +25,7 @@
 /**
  * Base class for link answers in many providers..
  */
+@SuppressWarnings("serial")
 public abstract class BaseLinkAnswer<T> implements IAnswer<T>, Serializable {
 
     public final T answer() throws Throwable {
diff --git a/core/src/test/java/org/apache/karaf/webconsole/core/test/LinkAnswer.java b/core/src/test/java/org/apache/karaf/webconsole/core/test/LinkAnswer.java
index d46768e..48b35e3 100644
--- a/core/src/test/java/org/apache/karaf/webconsole/core/test/LinkAnswer.java
+++ b/core/src/test/java/org/apache/karaf/webconsole/core/test/LinkAnswer.java
@@ -23,6 +23,7 @@
 /**
  * Easy mock answer to return prepared link.
  */
+@SuppressWarnings("serial")
 public class LinkAnswer extends BaseLinkAnswer<Link<Page>> {
 
     private String label;
diff --git a/core/src/test/java/org/apache/karaf/webconsole/core/test/LinksAnswer.java b/core/src/test/java/org/apache/karaf/webconsole/core/test/LinksAnswer.java
index 71fc61a..da2ac6e 100644
--- a/core/src/test/java/org/apache/karaf/webconsole/core/test/LinksAnswer.java
+++ b/core/src/test/java/org/apache/karaf/webconsole/core/test/LinksAnswer.java
@@ -29,6 +29,7 @@
 /**
  * An easy mock answer which returns list of links.
  */
+@SuppressWarnings("serial")
 public class LinksAnswer extends BaseLinkAnswer<List<Link<Page>>> {
 
     private Map<String, Class<? extends WebPage>> links = new LinkedHashMap<String, Class<? extends WebPage>>();
diff --git a/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/navigation/CxfConsoleTabProvider.java b/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/navigation/CxfConsoleTabProvider.java
index 181dcc4..9db1532 100644
--- a/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/navigation/CxfConsoleTabProvider.java
+++ b/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/navigation/CxfConsoleTabProvider.java
@@ -25,6 +25,9 @@
 import org.apache.wicket.Page;
 import org.apache.wicket.markup.html.link.Link;
 
+/**
+ * Navigation provider for console, introduces CXF module.
+ */
 public class CxfConsoleTabProvider implements ConsoleTabProvider {
 
     public List<Link<Page>> getItems(String componentId, String labelId) {
diff --git a/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/BusModel.java b/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/BusModel.java
index 3e94285..317c7fb 100644
--- a/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/BusModel.java
+++ b/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/BusModel.java
@@ -21,8 +21,12 @@
 import org.apache.cxf.Bus;
 import org.apache.wicket.model.LoadableDetachableModel;
 
+/**
+ * Model of CXF bus.
+ */
 public class BusModel extends LoadableDetachableModel<Bus> {
 
+    private static final long serialVersionUID = 1L;
     private List<Bus> buses;
     private String id;
 
diff --git a/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/CxfBusesActionPanel.java b/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/CxfBusesActionPanel.java
index a6de9d2..9858370 100644
--- a/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/CxfBusesActionPanel.java
+++ b/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/CxfBusesActionPanel.java
@@ -27,13 +27,19 @@
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 
+/**
+ * Action panel for single CXF panel.
+ */
 public class CxfBusesActionPanel extends ActionsPanel<Bus> {
 
+    private static final long serialVersionUID = 1L;
+
     public CxfBusesActionPanel(String componentId, IModel<Bus> model) {
         super(componentId, model);
     }
 
     @Override
+    @SuppressWarnings("rawtypes")
     protected List<Link> getLinks(Bus object, String linkId, String labelId) {
         List<Link> links = new ArrayList<Link>();
 
diff --git a/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/CxfServicesPage.java b/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/CxfServicesPage.java
index 259c4ab..a3c4b09 100644
--- a/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/CxfServicesPage.java
+++ b/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/CxfServicesPage.java
@@ -36,11 +36,17 @@
 import org.apache.wicket.model.Model;
 import org.ops4j.pax.wicket.api.PaxWicketBean;
 
+/**
+ * Page representing CXF buses list.
+ */
 public class CxfServicesPage extends SinglePage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "busList")
     private List<Bus> buses;
 
+    @SuppressWarnings("serial")
     public CxfServicesPage() {
         @SuppressWarnings("unchecked")
         IColumn<Bus>[] columns = new IColumn[] {
diff --git a/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/DetailsPage.java b/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/DetailsPage.java
index a8a719a..6df857e 100644
--- a/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/DetailsPage.java
+++ b/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/DetailsPage.java
@@ -39,14 +39,20 @@
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.ops4j.pax.wicket.api.PaxWicketBean;
 
+/**
+ * Page with bus details.
+ */
 public class DetailsPage extends SinglePage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "busList")
     private List<Bus> buses;
 
     private TraceInterceptor traceIn = new TraceInterceptor(Phase.RECEIVE, "in");
     private TraceInterceptor traceOut = new TraceInterceptor(Phase.PRE_STREAM, "out");
 
+    @SuppressWarnings({"serial", "rawtypes"})
     public DetailsPage(PageParameters params) {
         String busId = params.get("busId").toString();
 
@@ -130,9 +136,9 @@
                 });
 
                 Endpoint endpoint = server.getEndpoint();
-                List<Interceptor> inInterceptors = (List) endpoint.getInInterceptors();
-                List<Interceptor> outInterceptors = (List) endpoint.getOutInterceptors();
-                List<Interceptor> faultInterceptors = (List) endpoint.getInFaultInterceptors();
+                List<Interceptor<?>> inInterceptors = (List) endpoint.getInInterceptors();
+                List<Interceptor<?>> outInterceptors = (List) endpoint.getOutInterceptors();
+                List<Interceptor<?>> faultInterceptors = (List) endpoint.getInFaultInterceptors();
 
                 item.add(new InterceptorView("in-interceptors", inInterceptors));
                 item.add(new InterceptorView("out-interceptors", outInterceptors));
diff --git a/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/InterceptorView.java b/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/InterceptorView.java
index 1cdc24a..1b25456 100644
--- a/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/InterceptorView.java
+++ b/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/services/InterceptorView.java
@@ -25,20 +25,25 @@
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 
-public class InterceptorView extends ListView<Interceptor> {
+/**
+ * List of interceptors.
+ */
+public class InterceptorView extends ListView<Interceptor<?>> {
 
-    public InterceptorView(String id, List<Interceptor> interceptors) {
+    private static final long serialVersionUID = 1L;
+
+    public InterceptorView(String id, List<Interceptor<?>> interceptors) {
         super(id, interceptors);
     }
 
     @Override
-    protected void populateItem(ListItem<Interceptor> item) {
+    protected void populateItem(ListItem<Interceptor<?>> item) {
         Interceptor<? extends Message> interceptor = item.getModelObject();
 
         item.add(new Label("class", interceptor.getClass().getName()));
 
         if (interceptor instanceof PhaseInterceptor) {
-            PhaseInterceptor phaseInterceptor = (PhaseInterceptor) interceptor;
+            PhaseInterceptor<?> phaseInterceptor = (PhaseInterceptor<?>) interceptor;
             item.add(new Label("phase", phaseInterceptor.getPhase()));
             item.add(new Label("id", phaseInterceptor.getId()));
         } else {
diff --git a/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/trace/TraceInterceptor.java b/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/trace/TraceInterceptor.java
index 417d900..0e8d51c 100644
--- a/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/trace/TraceInterceptor.java
+++ b/cxf/src/main/java/org/apache/karaf/webconsole/cxf/internal/trace/TraceInterceptor.java
@@ -22,8 +22,13 @@
 import org.apache.cxf.message.Message;
 import org.apache.cxf.phase.AbstractPhaseInterceptor;
 
+/**
+ * Tracing interceptor for CXF.
+ */
 public class TraceInterceptor extends AbstractPhaseInterceptor<Message> implements Serializable {
 
+    private static final long serialVersionUID = 1L;
+
     private String direction;
 
     public TraceInterceptor(String phase, String direction) {
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 1144cb5..26d8d4a 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
@@ -25,6 +25,8 @@
  */
 public class AdminPage extends SinglePage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "adminService")
     protected AdminService admin;
 
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 1dd20c2..212384a 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
@@ -35,6 +35,9 @@
 @PaxWicketMountPoint(mountPoint = "/karaf/admin/create")
 public class CreateInstancePage extends AdminPage {
 
+    private static final long serialVersionUID = 1L;
+
+    @SuppressWarnings("serial")
     public CreateInstancePage() {
         WicketInstance instance = new WicketInstance();
         instance.setSettings(new WicketInstanceSettings());
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 c4f4595..b2af988 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
@@ -31,13 +31,14 @@
  */
 public class InstanceActionsPanel extends ActionsPanel<Instance> {
 
-    private static final long serialVersionUID = 1205787953299100012L;
+    private static final long serialVersionUID = 1L;
 
     public InstanceActionsPanel(String id, IModel<Instance> model) {
         super(id, model);
     }
 
     @Override
+    @SuppressWarnings({"serial", "rawtypes"})
     protected List<Link> getLinks(Instance object, String linkId, final String labelId) {
         List<Link> links = new ArrayList<Link>();
 
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
index d309061..83a0ce5 100644
--- 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
@@ -39,6 +39,8 @@
 @PaxWicketMountPoint(mountPoint = "/karaf/instance")
 public class InstancePage extends AdminPage {
 
+    private static final long serialVersionUID = 1L;
+
     @SuppressWarnings("unchecked")
     public InstancePage() {
         IColumn<Instance>[] columns = new IColumn[] {
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 d4b3cf5..985bfe2 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
@@ -28,6 +28,8 @@
 @PaxWicketMountPoint(mountPoint = "/karaf")
 public class KarafOverviewPage extends SinglePage {
 
+    private static final long serialVersionUID = 1L;
+
     public KarafOverviewPage() {
         setDefaultModel(new CompoundPropertyModel<WicketKaraf>(new WicketKaraf()));
 
diff --git a/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/model/WicketKaraf.java b/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/model/WicketKaraf.java
index 4a733a6..5d4f6c9 100644
--- a/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/model/WicketKaraf.java
+++ b/karaf/core/src/main/java/org/apache/karaf/webconsole/karaf/core/model/WicketKaraf.java
@@ -23,6 +23,8 @@
  */
 public class WicketKaraf implements Serializable {
 
+    private static final long serialVersionUID = 1L;
+
     public String getVersion() {
         return System.getProperty("karaf.version");
     }
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeatureModel.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeatureModel.java
index 1bd285d..0c9797a 100644
--- a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeatureModel.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeatureModel.java
@@ -20,8 +20,13 @@
 import org.apache.karaf.features.FeaturesService;
 import org.apache.wicket.model.LoadableDetachableModel;
 
+/**
+ * Feature model.
+ */
 public class FeatureModel extends LoadableDetachableModel<Feature> {
 
+    private static final long serialVersionUID = 1L;
+
     private FeaturesService service;
     private String version;
     private String name;
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeaturesProvider.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeaturesProvider.java
index c720015..fa4c397 100644
--- a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeaturesProvider.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/FeaturesProvider.java
@@ -29,8 +29,13 @@
 import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
 import org.apache.wicket.model.IModel;
 
+/**
+ * Feature list data provider.
+ */
 public class FeaturesProvider extends SortableDataProvider<Feature> {
 
+    private static final long serialVersionUID = 1L;
+
     private final FeaturesService service;
 
     public FeaturesProvider(FeaturesService service) {
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
index ebe5873..e8e605c 100644
--- 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
@@ -20,8 +20,13 @@
 import org.apache.karaf.webconsole.core.page.SinglePage;
 import org.ops4j.pax.wicket.api.PaxWicketBean;
 
+/**
+ * Base page for karaf features.
+ */
 public class KarafFeaturesPage extends SinglePage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "featuresService")
     protected FeaturesService featuresService;
 
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/MissingFeatureException.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/MissingFeatureException.java
index 1a0ccd0..b25e2f1 100644
--- a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/MissingFeatureException.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/MissingFeatureException.java
@@ -16,8 +16,13 @@
  */
 package org.apache.karaf.webconsole.karaf.feature;
 
+/**
+ * Exception thrown when feature is missing.
+ */
 public class MissingFeatureException extends RuntimeException {
 
+    private static final long serialVersionUID = 1L;
+
     public MissingFeatureException(String name, String version) {
         super("Feature " + name + " with version " + version + " is no longer available");
     }
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/RepositoriesProvider.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/RepositoriesProvider.java
index 0daf07f..155b130 100644
--- a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/RepositoriesProvider.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/RepositoriesProvider.java
@@ -25,8 +25,13 @@
 import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
 import org.apache.wicket.model.IModel;
 
+/**
+ * Data provider for repository list.
+ */
 public class RepositoriesProvider extends SortableDataProvider<Repository> {
 
+    private static final long serialVersionUID = 1L;
+
     private final FeaturesService service;
 
     public RepositoriesProvider(FeaturesService service) {
@@ -36,7 +41,7 @@
 
     public Iterator<Repository> iterator(int first, int count) {
         return Arrays.asList(service.listRepositories())
-                .subList(first, first + count).iterator();
+            .subList(first, first + count).iterator();
     }
 
     public int size() {
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesActionsPanel.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesActionsPanel.java
index ebda174..021ea3d 100644
--- a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesActionsPanel.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesActionsPanel.java
@@ -22,14 +22,19 @@
 import org.apache.karaf.features.Feature;
 import org.apache.karaf.features.FeaturesService;
 import org.apache.karaf.webconsole.core.table.ActionsPanel;
-import org.apache.wicket.behavior.SimpleAttributeModifier;
+import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.model.IModel;
 import org.ops4j.pax.wicket.api.PaxWicketBean;
 
+/**
+ * Actions for single feature.
+ */
 public class FeaturesActionsPanel extends ActionsPanel<Feature> {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "featuresService")
     private FeaturesService featuresService;
 
@@ -38,6 +43,7 @@
     }
 
     @Override
+    @SuppressWarnings({"rawtypes", "serial"})
     protected List<Link> getLinks(Feature object, String linkId, String labelId) {
         Link link = new Link(linkId) {
 
@@ -57,7 +63,7 @@
             }
         };
 
-        link.add(new SimpleAttributeModifier("class", isInstalled(object) ? "icon-eject" : "icon-play"));
+        link.add(new AttributeModifier("class", isInstalled(object) ? "icon-eject" : "icon-play"));
         link.add(new Label(labelId));
 
         // add image to the link
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage.java
index 471b13e..e989728 100644
--- a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage.java
@@ -45,8 +45,11 @@
 @PaxWicketMountPoint(mountPoint = "/karaf/features")
 public class FeaturesPage extends KarafFeaturesPage {
 
+    private static final long serialVersionUID = 1L;
+
     private Map<String, String> feature2repo = new HashMap<String, String>();
 
+    @SuppressWarnings({"rawtypes", "serial"})
     public FeaturesPage() throws Exception {
         add(new CssBehavior(FeaturesPage.class, "features.css"));
 
@@ -65,7 +68,7 @@
 
         List<IColumn<Feature>> columns = new ArrayList<IColumn<Feature>>();
         columns.add(new PropertyColumn<Feature>(new StringResourceModel("table.version", this, version), "version", "version"));
-        columns.add(new PropertyColumn<Feature>(new StringResourceModel("table.name", this, state), "name", "name"));
+        columns.add(new PropertyColumn<Feature>(new StringResourceModel("table.name", this, name), "name", "name"));
         columns.add(new AbstractColumn<Feature>(new StringResourceModel("table.repository", this, repository), "repository") {
             public void populateItem(Item<ICellPopulator<Feature>> cellItem, String componentId, IModel<Feature> rowModel) {
                 cellItem.add(new Label(componentId, feature2repo.get(rowModel.getObject().getId())));
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/RepositoryModel.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/RepositoryModel.java
index cedf1dc..2754a9c 100644
--- a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/RepositoryModel.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/RepositoryModel.java
@@ -22,8 +22,13 @@
 import org.apache.karaf.features.Repository;
 import org.apache.wicket.model.LoadableDetachableModel;
 
+/**
+ * Repository model.
+ */
 public class RepositoryModel extends LoadableDetachableModel<Repository> {
 
+    private static final long serialVersionUID = 1L;
+
     private final FeaturesService service;
     private URI uri;
 
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/RepositoryNotFoundException.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/RepositoryNotFoundException.java
index 9e17786..528f45e 100644
--- a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/RepositoryNotFoundException.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/model/RepositoryNotFoundException.java
@@ -18,8 +18,13 @@
 
 import java.net.URI;
 
+/**
+ * Exception thrown when repository is not found.
+ */
 public class RepositoryNotFoundException extends RuntimeException {
 
+    private static final long serialVersionUID = 1L;
+
     public RepositoryNotFoundException(URI uri) {
         super(uri.toString());
     }
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
index f9457b0..68837c3 100644
--- 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
@@ -29,29 +29,34 @@
 import org.apache.wicket.model.Model;
 import org.ops4j.pax.wicket.api.PaxWicketMountPoint;
 
+/**
+ * Repository input page.
+ */
 @PaxWicketMountPoint(mountPoint = "/karaf/repositories/add")
 public class AddRepositoryPage extends KarafFeaturesPage {
 
+    private static final long serialVersionUID = 1L;
+
+    @SuppressWarnings({"rawtypes", "unchecked", "serial"})
     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();
+                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);
-				}
+                    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
index 2c068fd..7d773f3 100644
--- 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
@@ -28,6 +28,9 @@
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.ResourceModel;
 
+/**
+ * Repository add panel.
+ */
 public class AddRepositoryPanel extends Panel {
 
     private static final long serialVersionUID = 1L;
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesActionPanel.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesActionPanel.java
index b43ec7e..297baea 100644
--- a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesActionPanel.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesActionPanel.java
@@ -28,8 +28,13 @@
 import org.apache.wicket.model.IModel;
 import org.ops4j.pax.wicket.api.PaxWicketBean;
 
+/**
+ * Actions for repository.
+ */
 public class RepositoriesActionPanel extends ActionsPanel<Repository> {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "featuresService")
     private FeaturesService featuresService;
 
@@ -38,6 +43,7 @@
     }
 
     @Override
+    @SuppressWarnings({"rawtypes", "serial"})
     protected List<Link> getLinks(Repository object, String linkId, String labelId) {
         List<Link> links = new ArrayList<Link>();
 
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesPage.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesPage.java
index d3da9ab..097fd20 100644
--- a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesPage.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/repository/RepositoriesPage.java
@@ -35,9 +35,15 @@
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.ops4j.pax.wicket.api.PaxWicketMountPoint;
 
+/**
+ * Page with list of repositories.
+ */
 @PaxWicketMountPoint(mountPoint = "/karaf/repositories")
 public class RepositoriesPage extends KarafFeaturesPage {
 
+    private static final long serialVersionUID = 1L;
+
+    @SuppressWarnings({"rawtypes", "serial", "unchecked"})
     public RepositoriesPage() {
         IColumn<Repository>[] columns = new IColumn[] {
             new OrdinalColumn<Repository>(),
diff --git a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/widget/FeatureWidgetPanel.java b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/widget/FeatureWidgetPanel.java
index 36a97cd..4251998 100644
--- a/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/widget/FeatureWidgetPanel.java
+++ b/karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/widget/FeatureWidgetPanel.java
@@ -24,8 +24,13 @@
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 import org.apache.wicket.markup.html.panel.Panel;
 
+/**
+ * Dashboard panel.
+ */
 public class FeatureWidgetPanel extends Panel {
 
+    private static final long serialVersionUID = 1L;
+
     public FeatureWidgetPanel(String id, FeaturesService service) {
         super(id);
 
diff --git a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintDataProvider.java b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintDataProvider.java
index 56aef1d..a39ad63 100644
--- a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintDataProvider.java
+++ b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintDataProvider.java
@@ -25,8 +25,13 @@
 import org.apache.wicket.model.IModel;
 import org.osgi.framework.ServiceReference;
 
+/**
+ * Data provider for bundle list.
+ */
 public class BlueprintDataProvider extends SortableDataProvider<ServiceReference> {
 
+    private static final long serialVersionUID = 1L;
+
     private final List<ServiceReference> containers;
 
     public BlueprintDataProvider(List<ServiceReference> containers) {
diff --git a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintPage.java b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintPage.java
index 8471ab4..2c10b1d 100644
--- a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintPage.java
+++ b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintPage.java
@@ -24,9 +24,14 @@
 import org.ops4j.pax.wicket.api.PaxWicketMountPoint;
 import org.osgi.framework.ServiceReference;
 
+/**
+ * Blueprint list page.
+ */
 @PaxWicketMountPoint(mountPoint = "/osgi/blueprint")
 public class BlueprintPage extends SinglePage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "containers")
     private List<ServiceReference> containers;
 
diff --git a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintActionProvider.java b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintActionProvider.java
index 35b4f1d..bc26b77 100644
--- a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintActionProvider.java
+++ b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintActionProvider.java
@@ -25,7 +25,9 @@
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.osgi.framework.Bundle;
 
-
+/**
+ * Action provider for blueprint.
+ */
 public class BlueprintActionProvider implements IActionProvider {
 
     private IBlueprintBundleStateTracker tracker;
diff --git a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintColumnProvider.java b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintColumnProvider.java
index 307ed95..2ab809a 100644
--- a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintColumnProvider.java
+++ b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintColumnProvider.java
@@ -39,6 +39,7 @@
         this.tracker = tracker;
     }
 
+    @SuppressWarnings("serial")
     public IColumn<Bundle> getColumn() {
         return new AbstractColumn<Bundle>(Model.of("Blueprint")) {
             public void populateItem(Item<ICellPopulator<Bundle>> cellItem, String componentId, IModel<Bundle> rowModel) {
diff --git a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/details/DetailsPage.java b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/details/DetailsPage.java
index befefc7..28d5bc9 100644
--- a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/details/DetailsPage.java
+++ b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/details/DetailsPage.java
@@ -36,6 +36,9 @@
 @PaxWicketMountPoint(mountPoint = "/osgi/blueprint/details")
 public class DetailsPage extends OsgiPage {
 
+    private static final long serialVersionUID = 1L;
+
+    @SuppressWarnings("serial")
     public DetailsPage(PageParameters params) {
         add(new DraculaBehavior());
         add(new JavaScriptBehavior(DetailsPage.class, "details.js"));
diff --git a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/details/MetadataModel.java b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/details/MetadataModel.java
index 0306934..b4bf6fb 100644
--- a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/details/MetadataModel.java
+++ b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/details/MetadataModel.java
@@ -26,6 +26,9 @@
 import org.osgi.service.blueprint.container.BlueprintContainer;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
 
+/**
+ * Model for blueprint metadata.
+ */
 class MetadataModel extends LoadableDetachableModel<List<ComponentMetadata>> {
 
     private static final long serialVersionUID = 1L;
diff --git a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/BlueprintActionsPanel.java b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/BlueprintActionsPanel.java
index ef60f88..74de833 100644
--- a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/BlueprintActionsPanel.java
+++ b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/BlueprintActionsPanel.java
@@ -28,13 +28,19 @@
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.osgi.framework.ServiceReference;
 
+/**
+ * Actions panel for blueprint.
+ */
 public class BlueprintActionsPanel extends ActionsPanel<ServiceReference> {
 
+    private static final long serialVersionUID = 1L;
+
     public BlueprintActionsPanel(String componentId, IModel<ServiceReference> model) {
         super(componentId, model);
     }
 
     @Override
+    @SuppressWarnings({"rawtypes", "unchecked"})
     protected List<Link> getLinks(ServiceReference object, String linkId, String labelId) {
         PageParameters params = new PageParameters();
         params.add("bundleId", object.getBundle().getBundleId());
diff --git a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/BlueprintDataTable.java b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/BlueprintDataTable.java
index f938fd4..13c3936 100644
--- a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/BlueprintDataTable.java
+++ b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/BlueprintDataTable.java
@@ -28,9 +28,14 @@
 import org.apache.wicket.model.Model;
 import org.osgi.framework.ServiceReference;
 
+/**
+ * Table with blueprint containers.
+ */
 public class BlueprintDataTable extends DefaultDataTable<ServiceReference> {
 
-    @SuppressWarnings({"rawtypes", "unchecked"})
+    private static final long serialVersionUID = 1L;
+
+    @SuppressWarnings({"rawtypes", "unchecked", "serial"})
     private static final List COLUMNS = Arrays.asList(
         new DefaultServiceReferencePropertyColumn("Id", "service.id"),
         new DefaultServiceReferencePropertyColumn("Container", "osgi.blueprint.container.symbolicname"),
@@ -42,6 +47,7 @@
         }
     );
 
+    @SuppressWarnings("unchecked")
     public BlueprintDataTable(String id, ISortableDataProvider<ServiceReference> dataProvider, int rowsPerPage) {
         super(id, COLUMNS, dataProvider, rowsPerPage);
     }
diff --git a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/DefaultServiceReferencePropertyColumn.java b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/DefaultServiceReferencePropertyColumn.java
index 0252871..ab39e82 100644
--- a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/DefaultServiceReferencePropertyColumn.java
+++ b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/DefaultServiceReferencePropertyColumn.java
@@ -18,8 +18,13 @@
 
 import org.apache.wicket.markup.html.basic.Label;
 
+/**
+ * Column representing given property from service reference.
+ */
 public class DefaultServiceReferencePropertyColumn extends ServiceReferencePropertyColumn {
 
+    private static final long serialVersionUID = 1L;
+
     public DefaultServiceReferencePropertyColumn(String displayModel, String sortProperty) {
         super(displayModel, sortProperty);
     }
diff --git a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/ServiceReferencePropertyColumn.java b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/ServiceReferencePropertyColumn.java
index ea23e34..0841b64 100644
--- a/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/ServiceReferencePropertyColumn.java
+++ b/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/view/ServiceReferencePropertyColumn.java
@@ -24,8 +24,13 @@
 import org.apache.wicket.model.Model;
 import org.osgi.framework.ServiceReference;
 
+/**
+ * Column representing single service reference property.
+ */
 public abstract class ServiceReferencePropertyColumn extends AbstractColumn<ServiceReference> {
 
+    private static final long serialVersionUID = 1L;
+
     public ServiceReferencePropertyColumn(String displayModel, String sortProperty) {
         super(Model.of(displayModel), sortProperty);
     }
diff --git a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationEditPage.java b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationEditPage.java
index b55cb0c..05f6ba9 100644
--- a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationEditPage.java
+++ b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationEditPage.java
@@ -36,13 +36,19 @@
 import org.osgi.service.cm.Configuration;
 import org.osgi.service.cm.ConfigurationAdmin;
 
+/**
+ * Configuration edit page.
+ */
 @PaxWicketMountPoint(mountPoint = "/osgi/configuration/edit")
 public class ConfigurationEditPage extends OsgiPage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "configurationAdmin")
     private ConfigurationAdmin configurationAdmin;
     private String pid;
 
+    @SuppressWarnings("serial")
     public ConfigurationEditPage(PageParameters params) {
         pid = params.get("pid").toString();
 
diff --git a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationProvider.java b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationProvider.java
index 9145d9b..4a1fff0 100644
--- a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationProvider.java
+++ b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationProvider.java
@@ -26,8 +26,13 @@
 import org.osgi.service.cm.Configuration;
 import org.osgi.service.cm.ConfigurationAdmin;
 
+/**
+ * Data provider for configuration list.
+ */
 public class ConfigurationProvider extends SortableDataProvider<Configuration> {
 
+    private static final long serialVersionUID = 1L;
+
     private Configuration[] configurations = new Configuration[0];
     private ConfigurationAdmin configurationAdmin;
 
diff --git a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationRemovePage.java b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationRemovePage.java
index 4aeb111..93fcdd9 100644
--- a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationRemovePage.java
+++ b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationRemovePage.java
@@ -31,6 +31,8 @@
 @PaxWicketMountPoint(mountPoint = "/osgi/configuration/remove")
 public class ConfigurationRemovePage extends OsgiPage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "configurationAdmin")
     private ConfigurationAdmin configurationAdmin;
     private String pid;
diff --git a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationsPage.java b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationsPage.java
index c846953..fdc4b53 100644
--- a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationsPage.java
+++ b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationsPage.java
@@ -23,9 +23,14 @@
 import org.ops4j.pax.wicket.api.PaxWicketMountPoint;
 import org.osgi.service.cm.ConfigurationAdmin;
 
+/**
+ * Base page for configuration admin extension.
+ */
 @PaxWicketMountPoint(mountPoint = "/osgi/configuration")
 public class ConfigurationsPage extends OsgiPage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "configurationAdmin")
     private ConfigurationAdmin configurationAdmin;
 
diff --git a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/model/ConfigurationModel.java b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/model/ConfigurationModel.java
index 2cc4fad..839ac93 100644
--- a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/model/ConfigurationModel.java
+++ b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/model/ConfigurationModel.java
@@ -22,8 +22,13 @@
 import org.osgi.service.cm.Configuration;
 import org.osgi.service.cm.ConfigurationAdmin;
 
+/**
+ * Model for configuration objects.
+ */
 public class ConfigurationModel extends LoadableDetachableModel<Configuration> {
 
+    private static final long serialVersionUID = 1L;
+
     private String pid;
     private ConfigurationAdmin configurationAdmin;
 
diff --git a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/model/ConfigurationNotFoundException.java b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/model/ConfigurationNotFoundException.java
index 1fdc6a4..35c7b46 100644
--- a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/model/ConfigurationNotFoundException.java
+++ b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/model/ConfigurationNotFoundException.java
@@ -16,8 +16,13 @@
  */
 package org.apache.karaf.webconsole.osgi.config.model;
 
+/**
+ * Exception thrown when configuration is not found.
+ */
 public class ConfigurationNotFoundException extends RuntimeException {
 
+    private static final long serialVersionUID = 1L;
+
     public ConfigurationNotFoundException(String pid) {
         super(pid);
     }
diff --git a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/model/ConfigurationsModel.java b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/model/ConfigurationsModel.java
index 91177ff..50e26ea 100644
--- a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/model/ConfigurationsModel.java
+++ b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/model/ConfigurationsModel.java
@@ -20,8 +20,13 @@
 import org.osgi.service.cm.Configuration;
 import org.osgi.service.cm.ConfigurationAdmin;
 
+/**
+ * Model for configurations.
+ */
 public class ConfigurationsModel extends LoadableDetachableModel<Configuration[]> {
 
+    private static final long serialVersionUID = 1L;
+
     private final ConfigurationAdmin configurationAdmin;
 
     public ConfigurationsModel(ConfigurationAdmin configurationAdmin) {
diff --git a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/ConfigurationRemoveForm.java b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/ConfigurationRemoveForm.java
index b8f511e..0335dee 100644
--- a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/ConfigurationRemoveForm.java
+++ b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/ConfigurationRemoveForm.java
@@ -31,6 +31,8 @@
  */
 public class ConfigurationRemoveForm extends Form<Configuration> {
 
+    private static final long serialVersionUID = 1L;
+
     public ConfigurationRemoveForm(String id, IModel<Configuration> model) {
         super(id, model);
 
diff --git a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/ConfigurationsActionPanel.java b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/ConfigurationsActionPanel.java
index c6ec01a..fda40ff 100644
--- a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/ConfigurationsActionPanel.java
+++ b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/ConfigurationsActionPanel.java
@@ -30,14 +30,19 @@
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.osgi.service.cm.Configuration;
 
-@SuppressWarnings("rawtypes")
+/**
+ * Action panel for configuration.
+ */
 class ConfigurationsActionPanel extends ActionsPanel<Configuration> {
 
+    private static final long serialVersionUID = 1L;
+
     public ConfigurationsActionPanel(String componentId, IModel<Configuration> model) {
         super(componentId, model);
     }
 
     @Override
+    @SuppressWarnings("rawtypes")
     protected List<Link> getLinks(Configuration object, String linkId, String labelId) {
         PageParameters params = new PageParameters();
         params.add("pid", object.getPid());
diff --git a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/ConfigurationsDataTable.java b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/ConfigurationsDataTable.java
index c57b8b5..4911867 100644
--- a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/ConfigurationsDataTable.java
+++ b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/ConfigurationsDataTable.java
@@ -33,9 +33,11 @@
 /**
  * Datatable which shows list of configurations from OSGi {@link ConfigurationAdmin}.
  */
-@SuppressWarnings({"rawtypes", "unchecked"})
 public class ConfigurationsDataTable extends DefaultDataTable<Configuration> {
 
+    private static final long serialVersionUID = 1L;
+
+    @SuppressWarnings({"rawtypes", "serial", "unchecked"})
     private static List COLUMNS = Arrays.asList(
         new PropertyColumn<Configuration>(Model.of("pid"), "pid"),
         new AbstractColumn<Configuration>(Model.of("operations")) {
@@ -45,6 +47,7 @@
         }
     );
 
+    @SuppressWarnings("unchecked")
     public ConfigurationsDataTable(String id, ISortableDataProvider<Configuration> dataProvider, int rowsPerPage) {
         super(id, COLUMNS, dataProvider, rowsPerPage);
     }
diff --git a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/FactoryPidItem.java b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/FactoryPidItem.java
index 454011d..68c7e5a 100644
--- a/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/FactoryPidItem.java
+++ b/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/view/FactoryPidItem.java
@@ -21,8 +21,13 @@
 import org.apache.wicket.model.IModel;
 import org.osgi.service.cm.Configuration;
 
+/**
+ * Item which add "factory" class to configuration produced my configuration factory.
+ */
 public class FactoryPidItem extends OddEvenItem<Configuration> {
 
+    private static final long serialVersionUID = 1L;
+
     public FactoryPidItem(String id, int index, IModel<Configuration> model) {
         super(id, index, model);
     }
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/FrameworkPage.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/FrameworkPage.java
index 7ca5453..42caec2 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/FrameworkPage.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/FrameworkPage.java
@@ -31,6 +31,8 @@
 @AuthorizeInstantiation({"admin", "osgi-user", "osgi-developer"})
 public class FrameworkPage extends OsgiPage {
 
+    private static final long serialVersionUID = 1L;
+
     public FrameworkPage() {
         setDefaultModel(new CompoundPropertyModel<Bundle>(new SystemBundleModel(context)));
 
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/SingleBundlePage.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/SingleBundlePage.java
index fb33c0f..27e55ee 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/SingleBundlePage.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/SingleBundlePage.java
@@ -35,6 +35,8 @@
 @PaxWicketMountPoint(mountPoint = "/osgi/bundle/detail")
 public class SingleBundlePage extends OsgiPage {
 
+    private static final long serialVersionUID = 1L;
+
     public static String BUNDLE_ID = "bundleId";
 
     private long bundleId;
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/install/InstallBundlePage.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/install/InstallBundlePage.java
index e34d372..8580328 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/install/InstallBundlePage.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/install/InstallBundlePage.java
@@ -31,6 +31,8 @@
 @PaxWicketMountPoint(mountPoint = "/osgi/bundle/add")
 public class InstallBundlePage extends OsgiPage {
 
+    private static final long serialVersionUID = 1L;
+
     public InstallBundlePage() {
         IModel<WicketInstallModel> model = of(new WicketInstallModel());
 
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/install/InstallBundlePanel.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/install/InstallBundlePanel.java
index a5c6c69..a9f5452 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/install/InstallBundlePanel.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/install/InstallBundlePanel.java
@@ -18,11 +18,10 @@
 
 import static org.apache.wicket.model.Model.of;
 
-import org.apache.karaf.webconsole.core.behavior.RemoveAttributeBehavior;
 import org.apache.karaf.webconsole.core.form.LabelBorder;
+import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
-import org.apache.wicket.behavior.SimpleAttributeModifier;
 import org.apache.wicket.markup.html.form.CheckBox;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.RequiredTextField;
@@ -62,7 +61,7 @@
                     } else {
                         onUnchecked();
                     }
-                    target.addComponent(file);
+                    target.add(file);
                 }
             }
         };
@@ -72,7 +71,7 @@
 
         file = new FileUploadField("file");
         file.setLabel(of("Bundle file"));
-        file.add(new SimpleAttributeModifier("disabled", "disabled"));
+        file.add(new AttributeModifier("disabled", "disabled"));
         file.setOutputMarkupId(true);
         border = new LabelBorder("fileGroup", file);
         form.add(border);
@@ -81,10 +80,10 @@
     }
 
     protected void onChecked() {
-        file.add(new RemoveAttributeBehavior("disabled"));
+        file.add(AttributeModifier.remove("disabled"));
     }
 
     protected void onUnchecked() {
-        file.add(new SimpleAttributeModifier("disabled", "disabled"));
+        file.add(new AttributeModifier("disabled", "disabled"));
     }
 }
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundleActionsPanel.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundleActionsPanel.java
index 074774c..e7233d1 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundleActionsPanel.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundleActionsPanel.java
@@ -29,7 +29,7 @@
 import org.apache.karaf.webconsole.osgi.core.bundle.list.link.UpdateLink;
 import org.apache.karaf.webconsole.osgi.core.shared.State;
 import org.apache.karaf.webconsole.osgi.core.spi.IActionProvider;
-import org.apache.wicket.behavior.SimpleAttributeModifier;
+import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.model.IModel;
@@ -62,7 +62,7 @@
 
         // details link
         Link link = SingleBundlePage.createLink(linkId, object);
-        link.add(new Label("label", "").add(new SimpleAttributeModifier("class", "icon-info-sign")));
+        link.add(new Label("label", "").add(new AttributeModifier("class", "icon-info-sign")));
 
         links.add(link);
 
@@ -87,38 +87,38 @@
 
     private Link createUninstallLink(String linkId, String labelId) {
         Link link = new UninstallLink(linkId, getModel());
-        link.add(new Label(labelId, "").add(new SimpleAttributeModifier("class", "icon-eject")));
+        link.add(new Label(labelId, "").add(new AttributeModifier("class", "icon-eject")));
         return link;
     }
 
     private Link createRefreshLink(String linkId, String labelId) {
         Link link = new RefreshLink(linkId, getModel());
-        link.add(new Label(labelId, "").add(new SimpleAttributeModifier("class", "icon-refresh")));
+        link.add(new Label(labelId, "").add(new AttributeModifier("class", "icon-refresh")));
         return link;
     }
 
     private Link createUpdateLink(String linkId, String labelId) {
         Link link = new UpdateLink(linkId, getModel());
         //link.add(new SimpleAttributeModifier("title", getLocalizer().getString("bundle.update.link", this, getModel())));
-        link.add(new Label(labelId, "").add(new SimpleAttributeModifier("class", "icon-retweet")));
+        link.add(new Label(labelId, "").add(new AttributeModifier("class", "icon-retweet")));
         return link;
     }
 
     private Link createResolveLink(String linkId, String labelId) {
         Link link = new ResolveLink(linkId, getModel());
-        link.add(new Label(labelId, "").add(new SimpleAttributeModifier("class", "icon-step-forward")));
+        link.add(new Label(labelId, "").add(new AttributeModifier("class", "icon-step-forward")));
         return link;
     }
 
     private Link createStartLink(String linkId, String labelId) {
         Link link = new StartLink(linkId, getModel());
-        link.add(new Label(labelId, "").add(new SimpleAttributeModifier("class", "icon-play")));
+        link.add(new Label(labelId, "").add(new AttributeModifier("class", "icon-play")));
         return link;
     }
 
     private Link createStopLink(String linkId, String labelId) {
         Link link = new StopLink(linkId, getModel());
-        link.add(new Label(labelId, "").add(new SimpleAttributeModifier("class", "icon-pause")));
+        link.add(new Label(labelId, "").add(new AttributeModifier("class", "icon-pause")));
         return link;
     }
 }
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundlePage.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundlePage.java
index e138416..81fce1d 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundlePage.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundlePage.java
@@ -50,6 +50,8 @@
 @PaxWicketMountPoint(mountPoint = "/osgi/bundle")
 public class BundlePage extends OsgiPage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "columnProviders")
     private List<IColumnProvider> columnProviders;
 
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/SinglePackagePage.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/SinglePackagePage.java
index 0c6139e..d6fe385 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/SinglePackagePage.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/SinglePackagePage.java
@@ -32,9 +32,14 @@
 import org.osgi.service.packageadmin.ExportedPackage;
 import org.osgi.service.packageadmin.PackageAdmin;
 
+/**
+ * Single package page.
+ */
 @PaxWicketMountPoint(mountPoint = "/osgi/package/detail")
 public class SinglePackagePage extends OsgiPage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "packageAdmin")
     private PackageAdmin admin;
 
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/PackagePanel.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/PackagePanel.java
index 3821f14..90def5d 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/PackagePanel.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/PackagePanel.java
@@ -18,7 +18,7 @@
 
 import org.apache.felix.utils.manifest.Clause;
 import org.apache.karaf.webconsole.osgi.core.pkg.SinglePackagePage;
-import org.apache.wicket.behavior.SimpleAttributeModifier;
+import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 import org.apache.wicket.markup.html.panel.Panel;
@@ -59,7 +59,7 @@
 
         ExportedPackage exportedPackage = admin.getExportedPackage(pkg);
         if (exportedPackage == null) {
-            link.add(new SimpleAttributeModifier("class", "error"));
+            link.add(new AttributeModifier("class", "error"));
         }
 
         add(link);
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/ResolutionPanel.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/ResolutionPanel.java
index 7c1e7f5..dbd3de5 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/ResolutionPanel.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/ResolutionPanel.java
@@ -17,7 +17,7 @@
 package org.apache.karaf.webconsole.osgi.core.pkg.column;
 
 import org.apache.felix.utils.manifest.Clause;
-import org.apache.wicket.behavior.SimpleAttributeModifier;
+import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
@@ -46,10 +46,10 @@
 
         add(new Label("resolution", resolution).setRenderBodyOnly(true));
         Label icon = new Label("icon", "");
-        icon.add(new SimpleAttributeModifier("class", css));
+        icon.add(new AttributeModifier("class", css));
         add(icon);
 
-        add(new SimpleAttributeModifier("title", "Resolution is " + resolution));
+        add(new AttributeModifier("title", "Resolution is " + resolution));
     }
 
 }
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/list/PackagePage.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/list/PackagePage.java
index 5add819..219d345 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/list/PackagePage.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/list/PackagePage.java
@@ -30,9 +30,14 @@
 import org.osgi.service.packageadmin.ExportedPackage;
 import org.osgi.service.packageadmin.PackageAdmin;
 
+/**
+ * Package list page.
+ */
 @PaxWicketMountPoint(mountPoint = "/osgi/package")
 public class PackagePage extends OsgiPage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "packageAdmin")
     private PackageAdmin admin;
 
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/ExportServiceTable.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/ExportServiceTable.java
index f6df4d6..794d6e3 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/ExportServiceTable.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/ExportServiceTable.java
@@ -32,6 +32,7 @@
 
     private static final long serialVersionUID = 1L;
 
+    @SuppressWarnings("unchecked")
     private static IColumn<ServiceReference>[] columns = new IColumn[] {
         new ServicePropertyColumn("Service Id", Constants.SERVICE_ID),
         new ObjectClassColumn(Model.of("Object classes")),
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/ImportServiceTable.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/ImportServiceTable.java
index ad7b2b3..a7d3366 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/ImportServiceTable.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/ImportServiceTable.java
@@ -32,6 +32,7 @@
 
     private static final long serialVersionUID = 1L;
 
+    @SuppressWarnings("unchecked")
     private static IColumn<ServiceReference>[] columns = new IColumn[] {
         new ServicePropertyColumn("Service Id", Constants.SERVICE_ID),
         new ObjectClassColumn(Model.of("Object classes")),
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/ServiceDetailPage.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/ServiceDetailPage.java
index 37a30e2..833250b 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/ServiceDetailPage.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/ServiceDetailPage.java
@@ -30,6 +30,8 @@
  */
 public class ServiceDetailPage extends OsgiPage {
 
+    private static final long serialVersionUID = 1L;
+
     public ServiceDetailPage(PageParameters parameters) {
         long serviceId = parameters.get("id").toLong();
 
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/list/ServicePage.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/list/ServicePage.java
index d7ccdc4..b295062 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/list/ServicePage.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/list/ServicePage.java
@@ -38,6 +38,8 @@
 @PaxWicketMountPoint(mountPoint = "/osgi/service")
 public class ServicePage extends OsgiPage {
 
+    private static final long serialVersionUID = 1L;
+
     public ServicePage() {
         List<IColumn<ServiceReference>> columns = new ArrayList<IColumn<ServiceReference>>();
         columns.add(new ServicePropertyColumn("Service Id", Constants.SERVICE_ID));
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/MissingServiceReferenceException.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/MissingServiceReferenceException.java
index 982507d..a8f6c4a 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/MissingServiceReferenceException.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/MissingServiceReferenceException.java
@@ -21,6 +21,8 @@
  */
 public class MissingServiceReferenceException extends RuntimeException {
 
+    private static final long serialVersionUID = 1L;
+
     public MissingServiceReferenceException(String symbolicName, Long serviceId) {
         super("Bundle " + symbolicName + " doesn't register service with id " + serviceId);
     }
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/OsgiPage.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/OsgiPage.java
index 11a0a4d..4dc53c2 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/OsgiPage.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/OsgiPage.java
@@ -25,6 +25,8 @@
  */
 public abstract class OsgiPage extends SinglePage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "blueprintBundleContext")
     protected BundleContext context;
 
diff --git a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/spi/IColumnProvider.java b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/spi/IColumnProvider.java
index f8ef2f1..aa3c76d 100644
--- a/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/spi/IColumnProvider.java
+++ b/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/spi/IColumnProvider.java
@@ -16,12 +16,10 @@
  */
 package org.apache.karaf.webconsole.osgi.core.spi;
 
-import java.io.Serializable;
-
 import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
 import org.osgi.framework.Bundle;
 
-public interface IColumnProvider extends Serializable {
+public interface IColumnProvider {
 
     IColumn<Bundle> getColumn();
 
diff --git a/osgi/event/src/main/java/org/apache/karaf/webconsole/osgi/event/EventsPage.java b/osgi/event/src/main/java/org/apache/karaf/webconsole/osgi/event/EventsPage.java
index 8114fed..a74a81e 100644
--- a/osgi/event/src/main/java/org/apache/karaf/webconsole/osgi/event/EventsPage.java
+++ b/osgi/event/src/main/java/org/apache/karaf/webconsole/osgi/event/EventsPage.java
@@ -29,11 +29,13 @@
 import org.ops4j.pax.wicket.api.PaxWicketMountPoint;
 
 /**
- * Events admin.
+ * Event admin page.
  */
 @PaxWicketMountPoint(mountPoint = "/osgi/event")
 public class EventsPage extends OsgiPage {
 
+    private static final long serialVersionUID = 1L;
+
     public EventsPage() {
         List<IColumn<EventTopicInfo>> columns = new ArrayList<IColumn<EventTopicInfo>>();
         columns.add(new OrdinalColumn<EventTopicInfo>());
diff --git a/osgi/event/src/main/java/org/apache/karaf/webconsole/osgi/event/model/EventTopicInfo.java b/osgi/event/src/main/java/org/apache/karaf/webconsole/osgi/event/model/EventTopicInfo.java
index e55e344..c2482e4 100644
--- a/osgi/event/src/main/java/org/apache/karaf/webconsole/osgi/event/model/EventTopicInfo.java
+++ b/osgi/event/src/main/java/org/apache/karaf/webconsole/osgi/event/model/EventTopicInfo.java
@@ -23,6 +23,8 @@
  */
 public class EventTopicInfo implements Serializable {
 
+    private static final long serialVersionUID = 1L;
+
     private String topic;
     private int consumers;
 
diff --git a/osgi/event/src/main/java/org/apache/karaf/webconsole/osgi/event/model/EventTopicsProvider.java b/osgi/event/src/main/java/org/apache/karaf/webconsole/osgi/event/model/EventTopicsProvider.java
index 10ce7f6..8df9cfe 100644
--- a/osgi/event/src/main/java/org/apache/karaf/webconsole/osgi/event/model/EventTopicsProvider.java
+++ b/osgi/event/src/main/java/org/apache/karaf/webconsole/osgi/event/model/EventTopicsProvider.java
@@ -34,6 +34,8 @@
  */
 public class EventTopicsProvider  extends SortableDataProvider<EventTopicInfo> {
 
+    private static final long serialVersionUID = 1L;
+
     private Map<String, EventTopicInfo> topics = new HashMap<String, EventTopicInfo>();
 
     public EventTopicsProvider(BundleContext context) {
diff --git a/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/LogsPage.java b/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/LogsPage.java
index fd549d3..f7420c5 100644
--- a/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/LogsPage.java
+++ b/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/LogsPage.java
@@ -50,11 +50,14 @@
 @PaxWicketMountPoint(mountPoint = "/osgi/log")
 public class LogsPage extends OsgiPage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "logReader")
     private LogReaderService logReader;
 
     private Options options = new Options();
 
+    @SuppressWarnings("serial")
     public LogsPage() {
         CompoundPropertyModel<Options> model = new CompoundPropertyModel<Options>(new PropertyModel<Options>(this, "options"));
         setDefaultModel(model);
diff --git a/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/OptionsForm.java b/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/OptionsForm.java
index 3957bf5..4e2fb2c 100644
--- a/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/OptionsForm.java
+++ b/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/OptionsForm.java
@@ -35,6 +35,7 @@
 
     private static final long serialVersionUID = 1L;
 
+    @SuppressWarnings("serial")
     public OptionsForm(String id, CompoundPropertyModel<Options> model) {
         super(id, model);
 
diff --git a/osgi/scr/src/main/java/org/apache/karaf/webconsole/osgi/scr/ScrColumn.java b/osgi/scr/src/main/java/org/apache/karaf/webconsole/osgi/scr/ScrColumn.java
index fe72357..88052d6 100644
--- a/osgi/scr/src/main/java/org/apache/karaf/webconsole/osgi/scr/ScrColumn.java
+++ b/osgi/scr/src/main/java/org/apache/karaf/webconsole/osgi/scr/ScrColumn.java
@@ -32,6 +32,8 @@
  */
 public class ScrColumn extends AbstractColumn<Bundle> {
 
+    private static final long serialVersionUID = 1L;
+
     private ScrService scr;
 
     public ScrColumn(ScrService scr, String title) {
diff --git a/osgi/scr/src/main/java/org/apache/karaf/webconsole/osgi/scr/ScrColumnPanel.java b/osgi/scr/src/main/java/org/apache/karaf/webconsole/osgi/scr/ScrColumnPanel.java
index 2ec80e0..e1dafba 100644
--- a/osgi/scr/src/main/java/org/apache/karaf/webconsole/osgi/scr/ScrColumnPanel.java
+++ b/osgi/scr/src/main/java/org/apache/karaf/webconsole/osgi/scr/ScrColumnPanel.java
@@ -30,6 +30,8 @@
  */
 public class ScrColumnPanel extends Panel {
 
+    private static final long serialVersionUID = 1L;
+
     public ScrColumnPanel(String id, Component[] components) {
         super(id);
 
diff --git a/osgi/scr/src/main/java/org/apache/karaf/webconsole/osgi/scr/ScrColumnProvider.java b/osgi/scr/src/main/java/org/apache/karaf/webconsole/osgi/scr/ScrColumnProvider.java
index 3624d26..29cd5c4 100644
--- a/osgi/scr/src/main/java/org/apache/karaf/webconsole/osgi/scr/ScrColumnProvider.java
+++ b/osgi/scr/src/main/java/org/apache/karaf/webconsole/osgi/scr/ScrColumnProvider.java
@@ -25,8 +25,6 @@
  */
 public class ScrColumnProvider extends ScrComponent implements IColumnProvider {
 
-    private static final long serialVersionUID = 1L;
-
     public IColumn<Bundle> getColumn() {
         return new ScrColumn(scr, "SCR");
     }
diff --git a/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/DetailsPage.java b/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/DetailsPage.java
index 8be83e8..bb094d2 100644
--- a/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/DetailsPage.java
+++ b/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/DetailsPage.java
@@ -40,6 +40,9 @@
  */
 public class DetailsPage extends SinglePage {
 
+    private static final long serialVersionUID = 1L;
+
+    @SuppressWarnings("serial")
     public DetailsPage(Exchange object) {
         add(new CssBehavior(DetailsPage.class, "message.css"));
 
diff --git a/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/EndpointsPage.java b/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/EndpointsPage.java
index c287ca7..8ee4ebf 100644
--- a/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/EndpointsPage.java
+++ b/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/EndpointsPage.java
@@ -38,6 +38,9 @@
  */
 public class EndpointsPage extends ServiceMixPage {
 
+    private static final long serialVersionUID = 1L;
+
+    @SuppressWarnings({"unchecked", "serial"})
     public EndpointsPage() {
         IColumn<Map<String, Object>>[] columns = new IColumn[] {
             new OrdinalColumn<Map<String, Object>>(),
diff --git a/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ExchangeActionsPanel.java b/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ExchangeActionsPanel.java
index 007fdac..d4d9cf3 100644
--- a/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ExchangeActionsPanel.java
+++ b/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ExchangeActionsPanel.java
@@ -31,11 +31,14 @@
  */
 public class ExchangeActionsPanel extends ActionsPanel<Exchange> {
 
+    private static final long serialVersionUID = 1L;
+
     public ExchangeActionsPanel(String componentId, IModel<Exchange> model) {
         super(componentId, model);
     }
 
     @Override
+    @SuppressWarnings({"rawtypes", "serial"})
     protected List<Link> getLinks(final Exchange object, String linkId, String labelId) {
         List<Link> links = new ArrayList<Link>();
 
diff --git a/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ExchangeModel.java b/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ExchangeModel.java
index 8372e7a..7d85215 100644
--- a/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ExchangeModel.java
+++ b/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ExchangeModel.java
@@ -26,6 +26,8 @@
  */
 public class ExchangeModel extends LoadableDetachableModel<Exchange> {
 
+    private static final long serialVersionUID = 1L;
+
     /**
      * Listener - it keeps references.
      */
diff --git a/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.java b/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.java
index dcb3d78..f887b4e 100644
--- a/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.java
+++ b/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.java
@@ -26,6 +26,8 @@
  */
 public class ServiceMixPage extends SidebarPage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "nmr")
     protected NMR nmr;
 
diff --git a/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/TrackNmrPage.java b/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/TrackNmrPage.java
index 29adb4b..e3f7905 100644
--- a/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/TrackNmrPage.java
+++ b/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/TrackNmrPage.java
@@ -38,10 +38,12 @@
  */
 public class TrackNmrPage extends ServiceMixPage {
 
+    private static final long serialVersionUID = 1L;
+
     @PaxWicketBean(name = "tracker")
     private ITrackingExchangeListener listener;
 
-    @SuppressWarnings({"unchecked", "rawtypes"})
+    @SuppressWarnings({"unchecked", "serial", "rawtypes"})
     public TrackNmrPage() {
         IColumn<Exchange>[] columns = new IColumn[] {
             new PropertyColumnExt<Exchange>("Id", "id"),
diff --git a/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/TrackingExchangeListener.java b/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/TrackingExchangeListener.java
index 7ff246d..99edca9 100644
--- a/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/TrackingExchangeListener.java
+++ b/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/TrackingExchangeListener.java
@@ -16,7 +16,6 @@
  */
 package org.apache.karaf.webconsole.servicemix.internal;
 
-import java.io.Serializable;
 import java.util.Deque;
 import java.util.LinkedList;
 
@@ -25,7 +24,7 @@
 /**
  * Implementation of tracking listener which keeps last few exchanges.
  */
-public class TrackingExchangeListener implements ITrackingExchangeListener, Serializable {
+public class TrackingExchangeListener implements ITrackingExchangeListener {
 
     private final int maxSize;
     private Deque<Exchange> exchanges = new LinkedList<Exchange>();