You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2009/08/31 10:54:32 UTC
svn commit: r809506 - in /sling/trunk/installer/jcr/jcrinstall: ./
src/main/java/org/apache/sling/jcr/jcrinstall/impl/
src/main/resources/OSGI-INF/metatype/
src/test/java/org/apache/sling/jcr/jcrinstall/impl/
Author: bdelacretaz
Date: Mon Aug 31 08:54:32 2009
New Revision: 809506
URL: http://svn.apache.org/viewvc?rev=809506&view=rev
Log:
SLING-1078 - remove dependency on o.a.s.jcr.resource
Modified:
sling/trunk/installer/jcr/jcrinstall/pom.xml
sling/trunk/installer/jcr/jcrinstall/src/main/java/org/apache/sling/jcr/jcrinstall/impl/JcrInstaller.java
sling/trunk/installer/jcr/jcrinstall/src/main/resources/OSGI-INF/metatype/metatype.properties
sling/trunk/installer/jcr/jcrinstall/src/test/java/org/apache/sling/jcr/jcrinstall/impl/MiscUtil.java
Modified: sling/trunk/installer/jcr/jcrinstall/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/installer/jcr/jcrinstall/pom.xml?rev=809506&r1=809505&r2=809506&view=diff
==============================================================================
--- sling/trunk/installer/jcr/jcrinstall/pom.xml (original)
+++ sling/trunk/installer/jcr/jcrinstall/pom.xml Mon Aug 31 08:54:32 2009
@@ -58,6 +58,7 @@
<Private-Package>org.apache.sling.jcr.jcrinstall.impl.*</Private-Package>
<Sling-Nodetypes>SLING-INF/nodetypes/osgiconfig.cnd</Sling-Nodetypes>
<Sling-Namespaces>sling=http://sling.apache.org/jcr/sling/1.0</Sling-Namespaces>
+ <Embed-Dependency>*;artifactId=org.apache.sling.commons.osgi</Embed-Dependency>
</instructions>
</configuration>
</plugin>
@@ -75,12 +76,12 @@
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.jcr.resource</artifactId>
+ <artifactId>org.apache.sling.jcr.api</artifactId>
<version>2.0.2-incubator</version>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.jcr.api</artifactId>
+ <artifactId>org.apache.sling.commons.osgi</artifactId>
<version>2.0.2-incubator</version>
</dependency>
<dependency>
Modified: sling/trunk/installer/jcr/jcrinstall/src/main/java/org/apache/sling/jcr/jcrinstall/impl/JcrInstaller.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/jcr/jcrinstall/src/main/java/org/apache/sling/jcr/jcrinstall/impl/JcrInstaller.java?rev=809506&r1=809505&r2=809506&view=diff
==============================================================================
--- sling/trunk/installer/jcr/jcrinstall/src/main/java/org/apache/sling/jcr/jcrinstall/impl/JcrInstaller.java (original)
+++ sling/trunk/installer/jcr/jcrinstall/src/main/java/org/apache/sling/jcr/jcrinstall/impl/JcrInstaller.java Mon Aug 31 08:54:32 2009
@@ -29,9 +29,8 @@
import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.commons.osgi.OsgiUtil;
import org.apache.sling.jcr.api.SlingRepository;
-import org.apache.sling.jcr.resource.JcrResourceResolverFactory;
import org.apache.sling.osgi.installer.InstallableResource;
import org.apache.sling.osgi.installer.OsgiInstaller;
import org.apache.sling.runmode.RunMode;
@@ -86,12 +85,6 @@
*/
private OsgiInstaller installer;
- /** This class looks for installable resources under the search
- * paths of the Sling ResourceResolver (by default: /libs and /apps)
- * @scr.reference
- */
- private JcrResourceResolverFactory resourceResolverFactory;
-
/** Default regexp for watched folders */
public static final String DEFAULT_FOLDER_NAME_REGEXP = ".*/install$";
@@ -104,6 +97,15 @@
* @scr.property valueRef="DEFAULT_FOLDER_MAX_DEPTH" type="Integer"
*/
public static final String PROP_INSTALL_FOLDER_MAX_DEPTH = "sling.jcrinstall.folder.max.depth";
+
+ /** Configurable search path. We could get it from the ResourceResolver, but
+ * introducing a dependency on this just to get those values is too much
+ * for this module that's meant to bootstrap other services.
+ *
+ * @scr.property values.1="/apps" values.2="/libs"
+ */
+ public static final String PROP_SEARCH_PATH = "sling.jcrinstall.search.path";
+ public static final String [] DEFAULT_SEARCH_PATH = { "/apps/", "/libs/" };
public static final int DEFAULT_FOLDER_MAX_DEPTH = 4;
private int maxWatchedFolderDepth;
@@ -144,14 +146,21 @@
converters.add(new FileNodeConverter());
converters.add(new ConfigNodeConverter());
- // Get root paths for installable resources, from ResourceResolver
- final ResourceResolver rr = resourceResolverFactory.getResourceResolver(session);
- final String [] roots = rr.getSearchPath();
- for(int i=0; i < roots.length; i++) {
- if(!roots[i].startsWith("/")) {
- roots[i] = "/" + roots[i];
- }
- log.info("Using root folder {} (provided by ResourceResolver)", roots[i]);
+ // Get search paths, and make sure each part starts and ends with a /
+ String [] roots = OsgiUtil.toStringArray(context.getProperties().get(PROP_SEARCH_PATH));
+ if (roots == null) {
+ roots = DEFAULT_SEARCH_PATH;
+ }
+ for (int i = 0; i < roots.length; i++) {
+ if (!roots[i].startsWith("/")) {
+ roots[i] = "/" + roots[i];
+ }
+ if (!roots[i].endsWith("/")) {
+ roots[i] += "/";
+ }
+ }
+ for(int i = 0; i < roots.length; i++) {
+ log.info("Configured root folder: {}", roots[i]);
}
// Configurable max depth, system property (via bundle context) overrides default value
Modified: sling/trunk/installer/jcr/jcrinstall/src/main/resources/OSGI-INF/metatype/metatype.properties
URL: http://svn.apache.org/viewvc/sling/trunk/installer/jcr/jcrinstall/src/main/resources/OSGI-INF/metatype/metatype.properties?rev=809506&r1=809505&r2=809506&view=diff
==============================================================================
--- sling/trunk/installer/jcr/jcrinstall/src/main/resources/OSGI-INF/metatype/metatype.properties (original)
+++ sling/trunk/installer/jcr/jcrinstall/src/main/resources/OSGI-INF/metatype/metatype.properties Mon Aug 31 08:54:32 2009
@@ -36,4 +36,9 @@
having a name that match this regular expression (under the root paths, which are defined \
by the ResourceResolver search path) for resources to install. Folders having names \
that match this expression, followed by dotted run mode selectors (like "install.author.production") \
- are also included.
\ No newline at end of file
+ are also included.
+
+sling.jcrinstall.search.path.name = Search Path
+sling.jcrinstall.search.path.description = List of paths under which jcrinstall looks \
+ for installable resources. Combined with the installations folders name regexp \
+ to select folders for scanning.
\ No newline at end of file
Modified: sling/trunk/installer/jcr/jcrinstall/src/test/java/org/apache/sling/jcr/jcrinstall/impl/MiscUtil.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/jcr/jcrinstall/src/test/java/org/apache/sling/jcr/jcrinstall/impl/MiscUtil.java?rev=809506&r1=809505&r2=809506&view=diff
==============================================================================
--- sling/trunk/installer/jcr/jcrinstall/src/test/java/org/apache/sling/jcr/jcrinstall/impl/MiscUtil.java (original)
+++ sling/trunk/installer/jcr/jcrinstall/src/test/java/org/apache/sling/jcr/jcrinstall/impl/MiscUtil.java Mon Aug 31 08:54:32 2009
@@ -25,13 +25,11 @@
import java.util.Iterator;
import java.util.Map;
-import javax.jcr.Session;
import javax.servlet.http.HttpServletRequest;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.jcr.api.SlingRepository;
-import org.apache.sling.jcr.resource.JcrResourceResolverFactory;
import org.apache.sling.osgi.installer.OsgiInstaller;
import org.jmock.Expectations;
import org.jmock.Mockery;
@@ -90,13 +88,6 @@
}
}
- static class MockJcrResourceResolverFactory implements JcrResourceResolverFactory {
-
- public ResourceResolver getResourceResolver(Session arg0) {
- return new MockResourceResolver();
- }
- }
-
/** Set a non-public Field */
static void setField(Object target, String fieldName, Object value) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
final Field f = target.getClass().getDeclaredField(fieldName);
@@ -108,7 +99,6 @@
static JcrInstaller getJcrInstaller(SlingRepository repository, OsgiInstaller osgiInstaller) throws Exception {
final JcrInstaller installer = new JcrInstaller();
setField(installer, "repository", repository);
- setField(installer, "resourceResolverFactory", new MockJcrResourceResolverFactory());
setField(installer, "installer", osgiInstaller);
setField(installer, "runMode", new MockRunMode(RUN_MODES));
@@ -172,4 +162,4 @@
}
throw new Exception("JcrInstaller thread did not signal its end (timeout=" + timeoutMsec + " msec)");
}
-}
+}
\ No newline at end of file