Author: reto
Date: Mon Sep 13 09:50:45 2010
New Revision: 996475
URL: http://svn.apache.org/viewvc?rev=996475&view=rev
Log:
CLEREZZA-295: increased visibility of this handy utility by adding it to parent
and to menus
Added:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/src/main/java/org/apache/clerezza/rdf/locking/LockOverviewPermission.java
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/
(props changed)
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/pom.xml
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/src/main/java/org/apache/clerezza/rdf/locking/LockOverview.java
incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml
Propchange:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Sep 13 09:50:45 2010
@@ -0,0 +1 @@
+target
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/pom.xml?rev=996475&r1=996474&r2=996475&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/pom.xml
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/pom.xml
Mon Sep 13 09:50:45 2010
@@ -12,9 +12,8 @@
<version>0.1-incubating-SNAPSHOT</version>
<packaging>bundle</packaging>
- <name>Clerezza - RDF locking</name>
- <description>Provides a web page containig an overview of graph
locks.</description>
-
+ <name>Clerezza - RDF Utility for MGraph lock monitoring</name>
+ <description>Provides a web page containig an overview of locks on
MGraphs.</description>
<dependencies>
<dependency>
<groupId>org.apache.felix</groupId>
@@ -26,6 +25,10 @@
</dependency>
<dependency>
<groupId>org.apache.clerezza</groupId>
+
<artifactId>org.apache.clerezza.platform.dashboard.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.clerezza</groupId>
<artifactId>org.apache.clerezza.platform.typerendering.core</artifactId>
</dependency>
</dependencies>
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/src/main/java/org/apache/clerezza/rdf/locking/LockOverview.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/src/main/java/org/apache/clerezza/rdf/locking/LockOverview.java?rev=996475&r1=996474&r2=996475&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/src/main/java/org/apache/clerezza/rdf/locking/LockOverview.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/src/main/java/org/apache/clerezza/rdf/locking/LockOverview.java
Mon Sep 13 09:50:45 2010
@@ -20,12 +20,16 @@ package org.apache.clerezza.rdf.locking;
import java.io.PrintWriter;
import java.io.StringWriter;
+import java.security.AccessControlException;
+import java.security.AccessController;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
+import org.apache.clerezza.platform.dashboard.GlobalMenuItem;
+import org.apache.clerezza.platform.dashboard.GlobalMenuItemsProvider;
import org.apache.clerezza.rdf.core.UriRef;
import org.apache.clerezza.rdf.core.access.TcManager;
import org.apache.clerezza.rdf.core.access.debug.ReadLockDebug;
@@ -34,16 +38,20 @@ import org.apache.felix.scr.annotations.
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
+import org.apache.felix.scr.annotations.Services;
/**
* Provides an overview page of all locks of all graphs.
* @author mir
*/
@Component()
-...@service(value = Object.class)
+...@services({
+ @Service(value=Object.class),
+ @Service(value=GlobalMenuItemsProvider.class)
+})
@Property(name = "javax.ws.rs", boolValue = true)
-...@path("/locks")
-public class LockOverview {
+...@path("admin/graphs/locks")
+public class LockOverview implements GlobalMenuItemsProvider {
@Reference
TcManager tcManager;
@@ -143,4 +151,18 @@ public class LockOverview {
visit(groups[i], level + 1, threadSet);
}
}
+
+ @Override
+ public Set<GlobalMenuItem> getMenuItems() {
+ Set<GlobalMenuItem> items = new HashSet<GlobalMenuItem>();
+ try {
+ AccessController.checkPermission(
+ new LockOverviewPermission());
+ } catch (AccessControlException e) {
+ return items;
+ }
+ items.add(new GlobalMenuItem("/admin/graphs/locks", "SCM",
"MGraph Locking", 1,
+ "Development"));
+ return items;
+ }
}
Added:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/src/main/java/org/apache/clerezza/rdf/locking/LockOverviewPermission.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/src/main/java/org/apache/clerezza/rdf/locking/LockOverviewPermission.java?rev=996475&view=auto
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/src/main/java/org/apache/clerezza/rdf/locking/LockOverviewPermission.java
(added)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.locking/src/main/java/org/apache/clerezza/rdf/locking/LockOverviewPermission.java
Mon Sep 13 09:50:45 2010
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2010 reto.
+ *
+ * Licensed 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.
+ * under the License.
+ */
+
+package org.apache.clerezza.rdf.locking;
+
+import java.security.Permission;
+import org.apache.clerezza.permissiondescriptions.PermissionInfo;
+
+/**
+ *
+ * @author reto
+ */
+...@permissioninfo(value="Lock Overview Permission", description="Grants
access " +
+ "to the Lock overview Pafe")
+class LockOverviewPermission extends Permission{
+
+ public LockOverviewPermission() {
+ super("LockOverviewPermission");
+ }
+ /**
+ *
+ * @param target ignored
+ * @param action ignored
+ */
+ public LockOverviewPermission(String target, String actions) {
+ super("LockOverviewPermission");
+ }
+
+ @Override
+ public boolean implies(Permission permission) {
+ return equals(permission);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return getClass().equals(obj.getClass());
+ }
+
+ @Override
+ public int hashCode() {
+ return 17587;
+ }
+
+ @Override
+ public String getActions() {
+ return "";
+ }
+}
\ No newline at end of file
Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml?rev=996475&r1=996474&r2=996475&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml Mon Sep 13
09:50:45 2010
@@ -86,6 +86,7 @@
<module>org.apache.clerezza.rdf.jena.sparql</module>
<module>org.apache.clerezza.rdf.jena.storage</module>
<module>org.apache.clerezza.rdf.jena.tdb.storage</module>
+ <module>org.apache.clerezza.rdf.locking</module>
<module>org.apache.clerezza.rdf.ontologies</module>
<module>org.apache.clerezza.rdf.metadata</module>
<module>org.apache.clerezza.rdf.rdfa</module>