You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2011/11/22 20:28:45 UTC

svn commit: r1205138 - in /jackrabbit/trunk/jackrabbit-spi: pom.xml src/main/java/org/apache/jackrabbit/spi/package-info.java src/main/java/org/apache/jackrabbit/spi/package.html

Author: jukka
Date: Tue Nov 22 19:28:44 2011
New Revision: 1205138

URL: http://svn.apache.org/viewvc?rev=1205138&view=rev
Log:
JCR-1991: Create osgi bundles for all jars

Add explicit OSGi package version information in jackrabbit-spi

Added:
    jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/package-info.java
Removed:
    jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/package.html
Modified:
    jackrabbit/trunk/jackrabbit-spi/pom.xml

Modified: jackrabbit/trunk/jackrabbit-spi/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi/pom.xml?rev=1205138&r1=1205137&r2=1205138&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi/pom.xml (original)
+++ jackrabbit/trunk/jackrabbit-spi/pom.xml Tue Nov 22 19:28:44 2011
@@ -39,13 +39,6 @@
           <groupId>org.apache.felix</groupId>
           <artifactId>maven-bundle-plugin</artifactId>
           <extensions>true</extensions>
-          <configuration>
-            <instructions>
-              <Export-Package>
-                org.apache.jackrabbit.spi;version=${project.version}
-              </Export-Package>
-            </instructions>
-          </configuration>
         </plugin>
       <plugin>
         <artifactId>maven-assembly-plugin</artifactId>
@@ -74,6 +67,11 @@
   
   <dependencies>
     <dependency>
+      <groupId>biz.aQute</groupId>
+      <artifactId>bndlib</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
       <groupId>javax.jcr</groupId>
       <artifactId>jcr</artifactId>
     </dependency>

Added: jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/package-info.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/package-info.java?rev=1205138&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/package-info.java (added)
+++ jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/package-info.java Tue Nov 22 19:28:44 2011
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+
+/**
+ * Defines the interfaces of the JCR SPI (Service Provider Interface).
+ *
+ * <p>
+ * The SPI cuts the JCR stack into two parts:
+ * <ul>
+ * <li>Above the SPI an implementation that wishes to expose the JCR API again
+ * needs to implement the transient item space, the session local namespace
+ * mapping and various conversions from the value representation in the SPI to
+ * the resolved values in the JCR API.</li>
+ * <li>An implementation of the SPI interfaces has to deal with the persistent
+ * view of a JCR repository. This includes almost all aspects of the JSR 170
+ * specification, except the previously stated transient space and the session
+ * local namespace resolution to prefixes.</li>
+ * </ul>
+ *
+ * <h3>Observation</h3>
+ * Because one of the goals of this SPI is to make it easier to implement a
+ * remoting layer using various existing protocols, the observation mechanism
+ * has been design with this goal in mind. Instead of a listener registration
+ * with a callback for each event bundle, the SPI uses a polling mechanism
+ * with a timeout: {@link org.apache.jackrabbit.spi.RepositoryService#getEvents
+ * RepositoryService.getEvents()}. With every call to this method the
+ * repository is advised to return the events that occurred since the last
+ * call. As a reference to the last retrieved
+ * {@link org.apache.jackrabbit.spi.EventBundle} the
+ * {@link org.apache.jackrabbit.spi.SessionInfo} contains a bundle identifier
+ * which is automatically updated on each call to
+ * <code>RepositoryService.getEvents()</code>. While this design allows for
+ * a polling implementation on top of the SPI it is also well suited for a
+ * listener based observation implementation on top of the SPI. With only
+ * little thread synchronization overhead events can be acquired using a
+ * <code>timeout</code> of {@link java.lang.Long#MAX_VALUE}.
+ * <p>
+ * If an SPI implementation does not support observation, the method
+ * <code>RepositoryService.getEvents()</code> will always throw an
+ * {@link javax.jcr.UnsupportedRepositoryOperationException}.
+ */
+@aQute.bnd.annotation.Version("2.4.0")
+package org.apache.jackrabbit.spi;