Author: reto
Date: Tue Jun 8 12:28:25 2010
New Revision: 952633
URL: http://svn.apache.org/viewvc?rev=952633&view=rev
Log:
CLEREZZA-231: added clerezza.platform project
Added:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/pom.xml
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/org/
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/org/apache/
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/org/apache/clerezza/
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/org/apache/clerezza/platform/
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/org/apache/clerezza/platform/BootMonitor.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/resources/
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/test/
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/test/java/
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml?rev=952633&r1=952632&r2=952633&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
Tue Jun 8 12:28:25 2010
@@ -112,6 +112,11 @@
-->
<dependency>
<groupId>org.apache.clerezza</groupId>
+ <artifactId>org.apache.clerezza.platform</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.clerezza</groupId>
<artifactId>org.apache.clerezza.platform.usermanager</artifactId>
<scope>runtime</scope>
</dependency>
Added:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/pom.xml?rev=952633&view=auto
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/pom.xml
(added)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/pom.xml
Tue Jun 8 12:28:25 2010
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.clerezza</groupId>
+ <artifactId>org.apache.clerezza.parent</artifactId>
+ <version>0.2-incubating-SNAPSHOT</version>
+ </parent>
+ <groupId>org.apache.clerezza</groupId>
+ <artifactId>org.apache.clerezza.platform</artifactId>
+ <packaging>bundle</packaging>
+ <version>0.1-incubating-SNAPSHOT</version>
+ <name>Clerezza - Platform</name>
+ <description>Artifact with dependencies to the clerezza platform
components
+ providing documentation and boot-status monitoring.</description>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+
<artifactId>org.apache.felix.scr.annotations</artifactId>
+ </dependency>
+ </dependencies>
+</project>
+
Added:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/org/apache/clerezza/platform/BootMonitor.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/org/apache/clerezza/platform/BootMonitor.java?rev=952633&view=auto
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/org/apache/clerezza/platform/BootMonitor.java
(added)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/org/apache/clerezza/platform/BootMonitor.java
Tue Jun 8 12:28:25 2010
@@ -0,0 +1,98 @@
+/*
+ * 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.clerezza.platform;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+import org.apache.felix.scr.annotations.Reference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.apache.felix.scr.annotations.ReferencePolicy;
+
+/**
+ * This component logs a message when Apache Clerezza was launched
successfully.
+ *
+ * @author reto
+ */
+/*
+ * For now this is done with hardcoded dependencies to services which are
+ * considered to be necessary for clerezza to be considered operational. This
+ * includes a hard-coded number of jax-rs resources. When this conditions are
+ * met the messages is logged after a period of 1 second during which no
+ * additional root resource has been registered.
+ *
+ *
+ * A more generic system might require the bundle providing the service marking
+ * a service as required component of the Apache Clerezza Platform
+ *
+ * see thread starting at
http://www.mail-archive.com/[email protected]/msg07647.html
+ */
+
+...@component(enabled=true, immediate=true)
+...@reference(name="jaxrsResource",
+ cardinality=ReferenceCardinality.OPTIONAL_MULTIPLE,
+ policy=ReferencePolicy.DYNAMIC,
+ referenceInterface=Object.class,
+ target="(javax.ws.rs=true)")
+public class BootMonitor {
+
+ private Set<Object> rootResources =
+ Collections.synchronizedSet(new HashSet<Object>());
+
+ /**
+ * true when the user has been notified that clerezza started
+ */
+ private boolean started = false;
+
+ private final Logger logger =
LoggerFactory.getLogger(BootMonitor.class);
+
+ protected void bindJaxrsResource(Object p) {
+ rootResources.add(p);
+ if (!started && (rootResources.size() == 35)) {
+ Thread t = new Thread() {
+ @Override
+ public void run() {
+ int lastSize = 0;
+ for (int i = 0; i < 100; i++) {
+ if (rootResources.size() ==
lastSize) {
+ started = true;
+ logger.info("The Apache
Clerezza Platform is now operational.");
+ return;
+ }
+ lastSize = rootResources.size();
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException
ex) {
+ throw new
RuntimeException();
+ }
+ }
+ }
+ };
+ t.start();
+ }
+ }
+
+ protected void unbindJaxrsResource(Object p) {
+ rootResources.remove(p);
+ }
+
+}
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=952633&r1=952632&r2=952633&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml Tue Jun 8
12:28:25 2010
@@ -37,6 +37,7 @@
<module>org.apache.clerezza.maven-jaxrs-report-plugin</module>
<module>org.apache.clerezza.maven-ontologies-plugin</module>
<module>org.apache.clerezza.maven-pladoc-plugin</module>
+ <module>org.apache.clerezza.platform</module>
<module>org.apache.clerezza.platform.accountcontrolpanel</module>
<module>org.apache.clerezza.platform.concepts</module>
<module>org.apache.clerezza.platform.config</module>
@@ -629,6 +630,11 @@
</dependency>
<dependency>
<groupId>org.apache.clerezza</groupId>
+
<artifactId>org.apache.clerezza.platform</artifactId>
+ <version>0.1-incubating-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.clerezza</groupId>
<artifactId>org.apache.clerezza.platform.usermanager</artifactId>
<version>0.13-incubating-SNAPSHOT</version>
</dependency>