KARAF-1780 Solve serialization issues in log plugin

git-svn-id: https://svn.apache.org/repos/asf/karaf/webconsole/trunk@1379099 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/LogEntriesDataProvider.java b/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/LogEntriesDataProvider.java
index 755e85e..1e61090 100644
--- a/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/LogEntriesDataProvider.java
+++ b/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/LogEntriesDataProvider.java
@@ -40,7 +40,7 @@
 
     private Options options;
 
-    private transient List<Matcher> matchers;
+    private List<Matcher> matchers;
 
     public LogEntriesDataProvider(LogReaderService logReader, Options options, List<Matcher> matchers) {
         this.logReader = logReader;
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 f7420c5..838d8f5 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
@@ -23,12 +23,7 @@
 
 import org.apache.karaf.webconsole.core.table.PropertyColumnExt;
 import org.apache.karaf.webconsole.osgi.core.shared.OsgiPage;
-import org.apache.karaf.webconsole.osgi.log.search.BundleMatcher;
-import org.apache.karaf.webconsole.osgi.log.search.DateFromMatcher;
-import org.apache.karaf.webconsole.osgi.log.search.DateToMatcher;
 import org.apache.karaf.webconsole.osgi.log.search.Matcher;
-import org.apache.karaf.webconsole.osgi.log.search.MessageMatcher;
-import org.apache.karaf.webconsole.osgi.log.search.PriorityMatcher;
 import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.DefaultDataTable;
@@ -55,6 +50,9 @@
     @PaxWicketBean(name = "logReader")
     private LogReaderService logReader;
 
+    @PaxWicketBean(name = "matchers")
+    private List<Matcher> matchers;
+
     private Options options = new Options();
 
     @SuppressWarnings("serial")
@@ -84,14 +82,6 @@
 
         OptionsForm form = new OptionsForm("filters", model);
 
-        List<Matcher> matchers = Arrays.asList(
-            new PriorityMatcher(),
-            new MessageMatcher(),
-            new BundleMatcher(),
-            new DateFromMatcher(),
-            new DateToMatcher()
-        );
-
         LogEntriesDataProvider provider = new LogEntriesDataProvider(logReader, options, matchers);
         DefaultDataTable<LogEntry> table = new DefaultDataTable<LogEntry>("logs", Arrays.asList(columns), provider, 20);
 
diff --git a/osgi/log/src/main/resources/OSGI-INF/blueprint/log.xml b/osgi/log/src/main/resources/OSGI-INF/blueprint/log.xml
index bedf3cf..84450f0 100644
--- a/osgi/log/src/main/resources/OSGI-INF/blueprint/log.xml
+++ b/osgi/log/src/main/resources/OSGI-INF/blueprint/log.xml
@@ -27,4 +27,22 @@
 
     <reference id="logReader" interface="org.osgi.service.log.LogReaderService" />
 
+    <reference-list id="matchers" interface="org.apache.karaf.webconsole.osgi.log.search.Matcher" availability="optional" />
+
+    <service auto-export="interfaces">
+        <bean class="org.apache.karaf.webconsole.osgi.log.search.PriorityMatcher" />
+    </service>
+    <service auto-export="interfaces">
+        <bean class="org.apache.karaf.webconsole.osgi.log.search.MessageMatcher" />
+    </service>
+    <service auto-export="interfaces">
+        <bean class="org.apache.karaf.webconsole.osgi.log.search.BundleMatcher" />
+    </service>
+    <service auto-export="interfaces">
+        <bean class="org.apache.karaf.webconsole.osgi.log.search.DateFromMatcher" />
+    </service>
+    <service auto-export="interfaces">
+        <bean class="org.apache.karaf.webconsole.osgi.log.search.DateToMatcher" />
+    </service>
+
 </blueprint>