Author: bdelacretaz
Date: Wed Apr 6 15:16:11 2011
New Revision: 1089486
URL: http://svn.apache.org/viewvc?rev=1089486&view=rev
Log:
STANBOL-146 - WebConsolePlugin added
Added:
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/WebConsolePlugin.java
(with props)
Modified:
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/pom.xml
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/DataFileProviderEvent.java
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/MainDataFileProvider.java
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/resources/OSGI-INF/metatype/metatype.properties
Modified: incubator/stanbol/trunk/commons/stanboltools/datafileprovider/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/stanboltools/datafileprovider/pom.xml?rev=1089486&r1=1089485&r2=1089486&view=diff
==============================================================================
--- incubator/stanbol/trunk/commons/stanboltools/datafileprovider/pom.xml
(original)
+++ incubator/stanbol/trunk/commons/stanboltools/datafileprovider/pom.xml Wed
Apr 6 15:16:11 2011
@@ -75,5 +75,9 @@
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.annotations</artifactId>
</dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </dependency>
</dependencies>
</project>
Modified:
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/DataFileProviderEvent.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/DataFileProviderEvent.java?rev=1089486&r1=1089485&r2=1089486&view=diff
==============================================================================
---
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/DataFileProviderEvent.java
(original)
+++
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/DataFileProviderEvent.java
Wed Apr 6 15:16:11 2011
@@ -25,16 +25,14 @@ public class DataFileProviderEvent {
private final String bundleSymbolicName;
private final String filename;
private final String downloadExplanation;
- private final String loadingClass;
private final String actualFileLocation;
public DataFileProviderEvent(String bundleSymbolicName, String filename,
String downloadExplanation,
- String loadingClass, String actualFileLocation) {
+ String actualFileLocation) {
this.timestamp = new Date();
this.bundleSymbolicName = bundleSymbolicName;
this.filename = filename;
this.downloadExplanation = downloadExplanation;
- this.loadingClass = loadingClass;
this.actualFileLocation = actualFileLocation;
}
@@ -50,9 +48,6 @@ public class DataFileProviderEvent {
sb.append(", filename=");
sb.append(filename);
- sb.append(", loadingClass=");
- sb.append(loadingClass);
-
sb.append(", actualFileLocation=");
sb.append(actualFileLocation);
@@ -79,12 +74,8 @@ public class DataFileProviderEvent {
return downloadExplanation;
}
- /** @return the name of the class which provided the file */
- public String getLoadingClass() {
- return loadingClass;
- }
-
- /** @return the actual location of the file that was loaded, empty if file
was not found */
+ /** @return the actual location of the file that was loaded,
+ * null if file was not found */
public String getActualFileLocation() {
return actualFileLocation;
}
Modified:
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/MainDataFileProvider.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/MainDataFileProvider.java?rev=1089486&r1=1089485&r2=1089486&view=diff
==============================================================================
---
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/MainDataFileProvider.java
(original)
+++
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/MainDataFileProvider.java
Wed Apr 6 15:16:11 2011
@@ -132,7 +132,6 @@ public class MainDataFileProvider implem
String filename, String downloadExplanation) throws IOException {
InputStream result = null;
String fileUrl = null;
- String loadingClass = null;
// First look for the file in our data folder,
// with and without bundle symbolic name prefix
@@ -147,7 +146,6 @@ public class MainDataFileProvider implem
log.debug("File found in data files folder: {}", filename);
result = new FileInputStream(f);
fileUrl = "file://" + f.getAbsolutePath();
- loadingClass = this.getClass().getName();
break;
}
}
@@ -169,7 +167,6 @@ public class MainDataFileProvider implem
log.debug("{} does not provide file {}", dfp, filename);
} else {
fileUrl = dfp.getClass().getName() + "://" + filename;
- loadingClass = dfp.getClass().getName();
}
}
}
@@ -177,7 +174,7 @@ public class MainDataFileProvider implem
// Add event
final DataFileProviderEvent event = new DataFileProviderEvent(
bundleSymbolicName, filename,
- downloadExplanation, loadingClass, fileUrl);
+ downloadExplanation, fileUrl);
synchronized (events) {
if(events.size() >= maxEvents) {
Added:
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/WebConsolePlugin.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/WebConsolePlugin.java?rev=1089486&view=auto
==============================================================================
---
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/WebConsolePlugin.java
(added)
+++
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/WebConsolePlugin.java
Wed Apr 6 15:16:11 2011
@@ -0,0 +1,119 @@
+/*
+ * 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.stanbol.commons.stanboltools.datafileprovider.impl;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.text.SimpleDateFormat;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
+import
org.apache.stanbol.commons.stanboltools.datafileprovider.DataFileProviderEvent;
+import
org.apache.stanbol.commons.stanboltools.datafileprovider.DataFileProviderLog;
+
+/** (Felix) OSGi console plugin that displays DataFileProvider events */
+@SuppressWarnings("serial")
+@Component
+@Service(value=javax.servlet.Servlet.class)
+@Properties({
+ @Property(name="felix.webconsole.label", value="stanbol_datafileprovider",
propertyPrivate=true),
+ @Property(name="felix.webconsole.title", value="Stanbol Data File
Provider", propertyPrivate=true)
+})
+public class WebConsolePlugin extends HttpServlet {
+
+ @Reference
+ private DataFileProviderLog dataFileProviderLog;
+
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse
response)
+ throws ServletException, IOException {
+ final PrintWriter pw = response.getWriter();
+
+ pw.println("<p class='statline ui-state-highlight'>");
+ pw.println("Last " + dataFileProviderLog.size() + " DataFileProvider
events");
+ pw.println("</p>");
+
+ pw.println("<table class='nicetable'>");
+
+ final String [] labels = {
+ "timestamp",
+ "bundle/filename",
+ "actual location/download info"
+ };
+
+ pw.println("<thead><tr>");
+ for(String label : labels) {
+ cell("th", pw, null, label);
+ }
+ pw.println("</tr></thead><tbody>");
+
+ final SimpleDateFormat fmt = new SimpleDateFormat("yyyy/MM/dd
HH:mm:ss");
+
+ for(DataFileProviderEvent e : dataFileProviderLog) {
+ pw.println("<tr>");
+ cell(pw, null, fmt.format(e.getTimestamp()));
+ cell(pw,
+ null, e.getBundleSymbolicName(),
+ "b", e.getFilename());
+ cell(pw,
+ null, e.getActualFileLocation(),
+ "i" , "Download info: " + e.getDownloadExplanation());
+ pw.println("</tr>");
+ }
+ pw.println("</tbody></table>");
+ }
+
+ private static void cell(PrintWriter pw, String...content) {
+ cell("td", pw, content);
+ }
+
+ /** content parameters: tags at even indexes, content at odd indexes */
+ private static void cell(String tag, PrintWriter pw, String...content) {
+ pw.print("<");
+ pw.print(tag);
+ pw.print(">");
+
+ final StringBuilder sb = new StringBuilder();
+ for(int i=0; i < content.length; i+= 2) {
+ if(i > 0) {
+ sb.append("<br/>\n");
+ }
+
+ final String lineTag = content[i];
+ if(lineTag != null) {
+ sb.append("<").append(lineTag).append(">");
+ }
+ sb.append(content[i+1]);
+ if(lineTag != null) {
+ sb.append("</").append(lineTag).append(">");
+ }
+ }
+
+ pw.print(sb.toString());
+ pw.print("<");
+ pw.print(tag);
+ pw.print(">");
+ }
+}
\ No newline at end of file
Propchange:
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/WebConsolePlugin.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/WebConsolePlugin.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision Rev URL
Modified:
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/resources/OSGI-INF/metatype/metatype.properties
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/resources/OSGI-INF/metatype/metatype.properties?rev=1089486&r1=1089485&r2=1089486&view=diff
==============================================================================
---
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/resources/OSGI-INF/metatype/metatype.properties
(original)
+++
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/resources/OSGI-INF/metatype/metatype.properties
Wed Apr 6 15:16:11 2011
@@ -1,4 +1,4 @@
-org.apache.stanbol.commons.stanboltools.datafileprovider.impl.MainDataFileProvider.name
= MainDataFileProvider
+org.apache.stanbol.commons.stanboltools.datafileprovider.impl.MainDataFileProvider.name
= Stanbol Main DataFileProvider
org.apache.stanbol.commons.stanboltools.datafileprovider.impl.MainDataFileProvider.description
= Provider of \
read-only data files for Stanbol components. Delegates to other
DataFileProviders unless the requested \
file is found in its data files directory