You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2017/08/09 15:27:11 UTC
svn commit: r1804544 [1/2] - in /sling/trunk/bundles/jcr/contentloader: ./
src/main/java/org/apache/sling/jcr/contentloader/
src/main/java/org/apache/sling/jcr/contentloader/internal/
src/main/java/org/apache/sling/jcr/contentloader/internal/readers/ s...
Author: cziegeler
Date: Wed Aug 9 15:27:11 2017
New Revision: 1804544
URL: http://svn.apache.org/viewvc?rev=1804544&view=rev
Log:
SLING-7040 : Update commons lang 2.x to 3.5
Removed:
sling/trunk/bundles/jcr/contentloader/src/main/resources/
Modified:
sling/trunk/bundles/jcr/contentloader/pom.xml
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentCreator.java
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentImportListener.java
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentImporter.java
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentReader.java
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentTypeUtil.java
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ImportOptions.java
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/BaseImportLoader.java
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentReaderWhiteboard.java
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/OrderedJsonReader.java
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/XmlReader.java
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/ZipReader.java
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/package-info.java
sling/trunk/bundles/jcr/contentloader/src/test/java/org/apache/sling/jcr/contentloader/internal/BundleContentLoaderTest.java
sling/trunk/bundles/jcr/contentloader/src/test/java/org/apache/sling/jcr/contentloader/it/ContentBundleTestBase.java
sling/trunk/bundles/jcr/contentloader/src/test/java/org/apache/sling/jcr/contentloader/it/PaxExamUtilities.java
Modified: sling/trunk/bundles/jcr/contentloader/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/pom.xml?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/pom.xml (original)
+++ sling/trunk/bundles/jcr/contentloader/pom.xml Wed Aug 9 15:27:11 2017
@@ -19,338 +19,347 @@
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
+ <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.sling</groupId>
- <artifactId>sling</artifactId>
- <version>26</version>
- <relativePath />
- </parent>
+ <parent>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>sling</artifactId>
+ <version>31</version>
+ <relativePath />
+ </parent>
- <artifactId>org.apache.sling.jcr.contentloader</artifactId>
- <version>2.2.5-SNAPSHOT</version>
- <packaging>bundle</packaging>
+ <artifactId>org.apache.sling.jcr.contentloader</artifactId>
+ <version>2.2.5-SNAPSHOT</version>
+ <packaging>bundle</packaging>
- <name>Apache Sling Initial Content Loader</name>
- <description>This bundle provides initial content installation through bundles.</description>
+ <name>Apache Sling Initial Content Loader</name>
+ <description>This bundle provides initial content installation through bundles.</description>
- <properties>
- <exam.version>3.5.0</exam.version>
- <url.version>1.5.2</url.version>
- <bundle.file.name>${basedir}/target/${project.build.finalName}.jar</bundle.file.name>
- <sling.launchpad.version>7</sling.launchpad.version>
- <pax.vm.options>-Xmx256M -XX:MaxPermSize=256m</pax.vm.options>
- <dump.test.bundles>false</dump.test.bundles>
- <sling.java.version>7</sling.java.version>
- <!-- argLine needs to be here so that jacoco plugin adds its own stuff to it -->
- <argLine>${pax.vm.options}</argLine>
- </properties>
+ <properties>
+ <exam.version>4.11.0</exam.version>
+ <url.version>2.5.2</url.version>
+ <bundle.file.name>${basedir}/target/${project.build.finalName}.jar</bundle.file.name>
+ <sling.launchpad.version>9</sling.launchpad.version>
+ <pax.vm.options>-Xmx256M -XX:MaxPermSize=256m</pax.vm.options>
+ <dump.test.bundles>false</dump.test.bundles>
+ <!-- argLine needs to be here so that jacoco plugin adds its own stuff to it -->
+ <argLine>${pax.vm.options}</argLine>
+ </properties>
- <scm>
- <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/contentloader</connection>
- <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/contentloader</developerConnection>
- <url>http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader</url>
- </scm>
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/contentloader</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/contentloader</developerConnection>
+ <url>http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader</url>
+ </scm>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-scr-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <extensions>true</extensions>
- <configuration>
- <instructions>
- <Bundle-Category>
- sling,
- jcr,
- jackrabbit
- </Bundle-Category>
- <Private-Package>
- org.apache.sling.jcr.contentloader.internal.*,
- org.kxml2.io,
- org.xmlpull.v1
- </Private-Package>
- <Embed-Dependency>
- kxml2,
- org.apache.sling.jcr.contentparser;inline="org/apache/sling/jcr/contentparser/impl/JsonTicksConverter.class"
- </Embed-Dependency>
- </instructions>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>src/test/**/*.json</exclude>
- <exclude>src/test/**/*.ordered-json</exclude>
- <exclude>src/test/**/*.xml</exclude>
- <exclude>src/test/**/*.txt</exclude>
- <exclude>jackrabbit/**</exclude>
- <exclude>derby.log</exclude>
- </excludes>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-failsafe-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>integration-test</goal>
- <goal>verify</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <systemPropertyVariables>
- <java.protocol.handler.pkgs>org.ops4j.pax.url</java.protocol.handler.pkgs>
- <bundle.file.name>${bundle.file.name}</bundle.file.name>
- <sling.launchpad.version>${sling.launchpad.version}</sling.launchpad.version>
- <dump.test.bundles>${dump.test.bundles}</dump.test.bundles>
- </systemPropertyVariables>
- <classpathDependencyExcludes>
- <!-- The osgi.org dependencies cause trouble with pax exam -->
- <classpathDependencyExcludes>org.osgi:org.osgi.core</classpathDependencyExcludes>
- <classpathDependencyExcludes>org.osgi:org.osgi.compendium</classpathDependencyExcludes>
- </classpathDependencyExcludes>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.servicemix.tooling</groupId>
- <artifactId>depends-maven-plugin</artifactId>
- <version>1.3.1</version>
- <executions>
- <execution>
- <id>generate-depends-file</id>
- <goals>
- <goal>generate-depends-file</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Bundle-Category>
+ sling,
+ jcr,
+ jackrabbit
+ </Bundle-Category>
+ <Private-Package>
+ org.apache.sling.jcr.contentloader.internal.*,
+ org.kxml2.io,
+ org.xmlpull.v1
+ </Private-Package>
+ <Embed-Dependency>
+ kxml2,
+ org.apache.sling.jcr.contentparser;inline="org/apache/sling/jcr/contentparser/impl/JsonTicksConverter.class"
+ </Embed-Dependency>
+ </instructions>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>src/test/**/*.json</exclude>
+ <exclude>src/test/**/*.ordered-json</exclude>
+ <exclude>src/test/**/*.xml</exclude>
+ <exclude>src/test/**/*.txt</exclude>
+ <exclude>jackrabbit/**</exclude>
+ <exclude>derby.log</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <systemPropertyVariables>
+ <java.protocol.handler.pkgs>org.ops4j.pax.url</java.protocol.handler.pkgs>
+ <bundle.file.name>${bundle.file.name}</bundle.file.name>
+ <sling.launchpad.version>${sling.launchpad.version}</sling.launchpad.version>
+ <dump.test.bundles>${dump.test.bundles}</dump.test.bundles>
+ </systemPropertyVariables>
+ <classpathDependencyExcludes>
+ <!-- The osgi.org dependencies cause trouble with pax exam -->
+ <classpathDependencyExcludes>org.osgi:org.osgi.core</classpathDependencyExcludes>
+ <classpathDependencyExcludes>org.osgi:org.osgi.compendium</classpathDependencyExcludes>
+ </classpathDependencyExcludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.servicemix.tooling</groupId>
+ <artifactId>depends-maven-plugin</artifactId>
+ <version>1.3.1</version>
+ <executions>
+ <execution>
+ <id>generate-depends-file</id>
+ <goals>
+ <goal>generate-depends-file</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <configuration>
- <excludePackageNames>
- org.apache.sling.jcr.contentloader.internal
- </excludePackageNames>
- </configuration>
- </plugin>
- </plugins>
- </reporting>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <excludePackageNames> org.apache.sling.jcr.contentloader.internal</excludePackageNames>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
- <dependencies>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.compendium</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.scr.annotations</artifactId>
- </dependency>
- <dependency>
- <groupId>biz.aQute.bnd</groupId>
- <artifactId>bndlib</artifactId>
- <version>2.1.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.jcr</groupId>
- <artifactId>jcr</artifactId>
- <version>2.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.jcr.api</artifactId>
- <version>2.0.6</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.jcr.contentparser</artifactId>
- <version>1.2.2</version>
- <scope>provided</scope>
- <exclusions>
- <exclusion>
- <groupId>*</groupId>
- <artifactId>*</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
+ <dependencies>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.component.annotations</artifactId>
+ <version>1.3.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>osgi.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.jcr</groupId>
+ <artifactId>jcr</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.jcr.api</artifactId>
+ <version>2.0.6</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.jcr.contentparser</artifactId>
+ <version>1.2.2</version>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
<!-- for security content loader (users/groups/acls) -->
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.jcr.base</artifactId>
- <version>2.1.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.commons.mime</artifactId>
- <version>2.1.2</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.commons.testing</artifactId>
- <version>2.0.18</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.commons.osgi</artifactId>
- <version>2.2.2</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.settings</artifactId>
- <version>1.1.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>jackrabbit-api</artifactId>
- <version>2.2.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </dependency>
- <dependency>
- <groupId>net.sf.kxml</groupId>
- <artifactId>kxml2</artifactId>
- <version>2.2.2</version>
- <scope>provided</scope>
- <exclusions>
- <exclusion>
- <groupId>xmlpull</groupId>
- <artifactId>xmlpull</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>2.4</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.4</version>
- <scope>provided</scope>
- </dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.jcr.base</artifactId>
+ <version>2.1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.commons.mime</artifactId>
+ <version>2.1.2</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.commons.testing</artifactId>
+ <version>2.0.18</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.commons.osgi</artifactId>
+ <version>2.3.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.settings</artifactId>
+ <version>1.1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-api</artifactId>
+ <version>2.12.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.kxml</groupId>
+ <artifactId>kxml2</artifactId>
+ <version>2.2.2</version>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>xmlpull</groupId>
+ <artifactId>xmlpull</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.4</version>
+ <scope>provided</scope>
+ </dependency>
<!-- testing -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jmock</groupId>
- <artifactId>jmock-junit4</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.testing.osgi-mock</artifactId>
- <version>1.6.0</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.testing.jcr-mock</artifactId>
- <version>1.1.10</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.testing.sling-mock</artifactId>
- <version>1.6.0</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-json_1.0_spec</artifactId>
- <version>1.0-alpha-1</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.commons.johnzon</artifactId>
- <version>1.0.0</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.testing.sling-mock-oak</artifactId>
- <version>1.0.0</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>junit-addons</groupId>
- <artifactId>junit-addons</artifactId>
- <version>1.4</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.paxexam.util</artifactId>
- <version>1.0.4</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.ops4j.pax.exam</groupId>
- <artifactId>pax-exam-container-native</artifactId>
- <version>${exam.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.ops4j.pax.exam</groupId>
- <artifactId>pax-exam-link-mvn</artifactId>
- <version>${exam.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.ops4j.pax.url</groupId>
- <artifactId>pax-url-wrap</artifactId>
- <version>2.1.0</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.framework</artifactId>
- <version>4.2.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.ops4j.pax.tinybundles</groupId>
- <artifactId>tinybundles</artifactId>
- <version>2.0.0</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jmock</groupId>
+ <artifactId>jmock-junit4</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.api</artifactId>
+ <version>2.11.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.testing.osgi-mock</artifactId>
+ <version>2.3.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.testing.jcr-mock</artifactId>
+ <version>1.3.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.testing.sling-mock</artifactId>
+ <version>2.2.12</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-json_1.0_spec</artifactId>
+ <version>1.0-alpha-1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.commons.johnzon</artifactId>
+ <version>1.0.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.testing.sling-mock-oak</artifactId>
+ <version>2.0.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit-addons</groupId>
+ <artifactId>junit-addons</artifactId>
+ <version>1.4</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.ops4j.pax.exam</groupId>
+ <artifactId>pax-exam-container-forked</artifactId>
+ <version>${exam.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.ops4j.pax.exam</groupId>
+ <artifactId>pax-exam-junit4</artifactId>
+ <version>${exam.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.ops4j.pax.exam</groupId>
+ <artifactId>pax-exam-link-mvn</artifactId>
+ <version>${exam.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.ops4j.pax.url</groupId>
+ <artifactId>pax-url-aether</artifactId>
+ <version>${url.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.ops4j.pax.exam</groupId>
+ <artifactId>pax-exam-cm</artifactId>
+ <version>${exam.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.ops4j.pax.url</groupId>
+ <artifactId>pax-url-wrap</artifactId>
+ <version>2.5.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.ops4j.pax.tinybundles</groupId>
+ <artifactId>tinybundles</artifactId>
+ <version>2.0.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>biz.aQute.bnd</groupId>
+ <artifactId>bndlib</artifactId>
+ <version>2.1.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.framework</artifactId>
+ <version>5.6.6</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.launchpad.api</artifactId>
+ <version>1.2.0</version>
+ <type>bundle</type>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
</project>
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentCreator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentCreator.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentCreator.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentCreator.java Wed Aug 9 15:27:11 2017
@@ -23,7 +23,8 @@ import java.util.Map;
import javax.jcr.RepositoryException;
-import aQute.bnd.annotation.ProviderType;
+import org.osgi.annotation.versioning.ProviderType;
+
/**
* The <code>ContentCreator</code> is used by the {@link org.apache.sling.jcr.contentloader.ContentReader} to create the actual content.
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentImportListener.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentImportListener.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentImportListener.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentImportListener.java Wed Aug 9 15:27:11 2017
@@ -18,7 +18,7 @@
*/
package org.apache.sling.jcr.contentloader;
-import aQute.bnd.annotation.ConsumerType;
+import org.osgi.annotation.versioning.ConsumerType;
/**
* Listener interface to provide callbacks for all imported updates
@@ -39,7 +39,7 @@ public interface ContentImportListener {
* deleted Item.
*/
void onDelete(String srcPath);
-
+
/**
* An Item has been moved to a new location. The source provides the
* original path of the Item, the destination provides the new path of the
@@ -63,19 +63,19 @@ public interface ContentImportListener {
/**
* A child Node has been reordered. The orderedPath provides the path of the
* node, which has been reordered. ThebeforeSibbling provides the name of
- * the sibling node before which the source Node has been ordered.
+ * the sibling node before which the source Node has been ordered.
*/
void onReorder(String orderedPath, String beforeSibbling);
-
+
/**
- * A versionable Node has been checked in. The source path provides the path of the
+ * A versionable Node has been checked in. The source path provides the path of the
* newly checked in Node.
* @since 2.1.4
*/
void onCheckin(String srcPath);
/**
- * A versionable Node has been checked out. The source path provides the path of the
+ * A versionable Node has been checked out. The source path provides the path of the
* newly checked out Node.
* @since 2.1.4
*/
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentImporter.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentImporter.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentImporter.java Wed Aug 9 15:27:11 2017
@@ -24,7 +24,7 @@ import java.io.InputStream;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
-import aQute.bnd.annotation.ProviderType;
+import org.osgi.annotation.versioning.ProviderType;
/**
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentReader.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentReader.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentReader.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentReader.java Wed Aug 9 15:27:11 2017
@@ -24,7 +24,7 @@ import java.net.URL;
import javax.jcr.RepositoryException;
-import aQute.bnd.annotation.ConsumerType;
+import org.osgi.annotation.versioning.ConsumerType;
/**
* The <code>ContentReader</code>
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentTypeUtil.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentTypeUtil.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentTypeUtil.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentTypeUtil.java Wed Aug 9 15:27:11 2017
@@ -18,8 +18,6 @@
*/
package org.apache.sling.jcr.contentloader;
-import org.apache.commons.lang.StringUtils;
-
public class ContentTypeUtil {
public static final String EXT_JSON = ".json";
@@ -44,20 +42,20 @@ public class ContentTypeUtil {
public static final String TYPE_JAR = "application/java-archive";
public static String detectContentType(final String filename) {
- if (StringUtils.isNotBlank(filename)) {
- if (StringUtils.endsWithIgnoreCase(filename, EXT_JSON)) {
+ if (filename != null && !filename.isEmpty()) {
+ if ( filename.toLowerCase().endsWith(EXT_JSON) ) {
return TYPE_JSON;
}
- if (StringUtils.endsWithIgnoreCase(filename, EXT_JCR_XML)) {
+ if ( filename.toLowerCase().endsWith(EXT_JCR_XML)) {
return TYPE_JCR_XML;
}
- if (StringUtils.endsWithIgnoreCase(filename, EXT_XML)) {
+ if ( filename.toLowerCase().endsWith(EXT_XML)) {
return TYPE_XML;
}
- if (StringUtils.endsWithIgnoreCase(filename, EXT_ZIP)) {
+ if ( filename.toLowerCase().endsWith(EXT_ZIP)) {
return TYPE_ZIP;
}
- if (StringUtils.endsWithIgnoreCase(filename, EXT_JAR)) {
+ if ( filename.toLowerCase().endsWith(EXT_JAR)) {
return TYPE_JAR;
}
}
@@ -65,7 +63,7 @@ public class ContentTypeUtil {
}
public static String getDefaultExtension(final String contentType) {
- if (StringUtils.isNotBlank(contentType)) {
+ if (contentType != null && !contentType.isEmpty()) {
if (TYPE_JSON.equalsIgnoreCase(contentType)) {
return EXT_JSON;
}
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ImportOptions.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ImportOptions.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ImportOptions.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ImportOptions.java Wed Aug 9 15:27:11 2017
@@ -18,18 +18,17 @@
*/
package org.apache.sling.jcr.contentloader;
-import aQute.bnd.annotation.ConsumerType;
-
+import org.osgi.annotation.versioning.ConsumerType;
/**
- * Encapsulates the options for the content import.
+ * Encapsulates the options for the content import.
*/
@ConsumerType
public abstract class ImportOptions {
/**
* Specifies whether imported nodes should overwrite existing nodes.
- * NOTE: this means the existing node will be deleted and a new node
+ * NOTE: this means the existing node will be deleted and a new node
* will be created in the same location.
* @return true to overwrite nodes, false otherwise
*/
@@ -61,7 +60,7 @@ public abstract class ImportOptions {
/**
* Check if the content reader for the given file extension should
* be ignored.
- *
+ *
* @param extension the extension to check
* @return true to ignore the reader, false otherwise
*/
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/BaseImportLoader.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/BaseImportLoader.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/BaseImportLoader.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/BaseImportLoader.java Wed Aug 9 15:27:11 2017
@@ -34,7 +34,7 @@ public abstract class BaseImportLoader e
public static final String EXT_JCR_XML = ".jcr.xml";
- private ContentReaderWhiteboard contentReaderWhiteboard;
+ protected ContentReaderWhiteboard contentReaderWhiteboard;
// This constructor is meant to be used by the OSGi
public BaseImportLoader() {
@@ -45,18 +45,8 @@ public abstract class BaseImportLoader e
this.contentReaderWhiteboard = contentReaderWhiteboard;
}
- protected void bindContentReaderWhiteboard(final ContentReaderWhiteboard service) {
- this.contentReaderWhiteboard = service;
- }
-
- protected void unbindContentReaderWhiteboard(final ContentReaderWhiteboard service) {
- if ( this.contentReaderWhiteboard == service ) {
- this.contentReaderWhiteboard = null;
- }
- }
-
public Map<String, ContentReader> getContentReaders() {
- Map<String, ContentReader> readers = new LinkedHashMap<String, ContentReader>();
+ Map<String, ContentReader> readers = new LinkedHashMap<>();
readers.put(EXT_JCR_XML, null);
for (Entry<String, ContentReader> e : contentReaderWhiteboard.getReadersByExtension().entrySet()) {
readers.put('.' + e.getKey(), e.getValue());
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java Wed Aug 9 15:27:11 2017
@@ -32,17 +32,18 @@ import javax.jcr.Session;
import javax.jcr.Value;
import javax.jcr.lock.LockException;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
import org.apache.sling.commons.mime.MimeTypeService;
import org.apache.sling.jcr.api.SlingRepository;
import org.apache.sling.settings.SlingSettingsService;
import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleEvent;
import org.osgi.framework.Constants;
import org.osgi.framework.SynchronousBundleListener;
-import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -54,11 +55,11 @@ import org.slf4j.LoggerFactory;
* </ul>
*
*/
-@Component
-@Property(
- name = Constants.SERVICE_DESCRIPTION,
- value = "Apache Sling Content Loader Implementation"
-)
+@Component(service = {},
+ property = {
+ Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
+ Constants.SERVICE_DESCRIPTION + "=Apache Sling Content Loader Implementation"
+ })
public class ContentLoaderService implements SynchronousBundleListener, BundleHelper {
public static final String PROPERTY_CONTENT_LOADED = "content-loaded";
@@ -106,7 +107,7 @@ public class ContentLoaderService implem
/**
* List of currently updated bundles.
*/
- private final Set<String> updatedBundles = new HashSet<String>();
+ private final Set<String> updatedBundles = new HashSet<>();
/** Sling settings service. */
@Reference
@@ -122,6 +123,7 @@ public class ContentLoaderService implem
* @param event The <code>BundleEvent</code> representing the bundle state
* change.
*/
+ @Override
public synchronized void bundleChanged(BundleEvent event) {
//
@@ -178,6 +180,7 @@ public class ContentLoaderService implem
// ---------- Implementation helpers --------------------------------------
/** Returns the MIME type from the MimeTypeService for the given name */
+ @Override
public String getMimeType(String name) {
// local copy to not get NPE despite check for null due to concurrent
// unbind
@@ -185,6 +188,7 @@ public class ContentLoaderService implem
return (mts != null) ? mts.getMimeType(name) : null;
}
+ @Override
public void createRepositoryPath(final Session writerSession, final String repositoryPath)
throws RepositoryException {
if ( !writerSession.itemExists(repositoryPath) ) {
@@ -213,11 +217,12 @@ public class ContentLoaderService implem
// ---------- SCR Integration ---------------------------------------------
/** Activates this component, called by SCR before registering as a service */
- protected synchronized void activate(ComponentContext componentContext) {
+ @Activate
+ protected synchronized void activate(BundleContext bundleContext) {
this.slingId = this.settingsService.getSlingId();
this.bundleContentLoader = new BundleContentLoader(this, contentReaderWhiteboard);
- componentContext.getBundleContext().addBundleListener(this);
+ bundleContext.addBundleListener(this);
Session session = null;
try {
@@ -228,7 +233,7 @@ public class ContentLoaderService implem
+ "bundles which are neither INSTALLED nor UNINSTALLED");
int ignored = 0;
- Bundle[] bundles = componentContext.getBundleContext().getBundles();
+ Bundle[] bundles = bundleContext.getBundles();
for (Bundle bundle : bundles) {
if ((bundle.getState() & (Bundle.INSTALLED | Bundle.UNINSTALLED)) == 0) {
@@ -266,8 +271,9 @@ public class ContentLoaderService implem
}
/** Deactivates this component, called by SCR to take out of service */
- protected synchronized void deactivate(ComponentContext componentContext) {
- componentContext.getBundleContext().removeBundleListener(this);
+ @Deactivate
+ protected synchronized void deactivate(BundleContext bundleContext) {
+ bundleContext.removeBundleListener(this);
if ( this.bundleContentLoader != null ) {
this.bundleContentLoader.dispose();
@@ -285,6 +291,7 @@ public class ContentLoaderService implem
/**
* Returns an administrative session to the default workspace.
*/
+ @Override
public Session getSession()
throws RepositoryException {
return getRepository().loginAdministrative(null);
@@ -293,6 +300,7 @@ public class ContentLoaderService implem
/**
* Returns an administrative session for the named workspace.
*/
+ @Override
public Session getSession(final String workspace) throws RepositoryException {
return getRepository().loginAdministrative(workspace);
}
@@ -317,6 +325,7 @@ public class ContentLoaderService implem
* @return The map of bundle content info or null.
* @throws RepositoryException
*/
+ @Override
public Map<String, Object> getBundleContentInfo(final Session session, final Bundle bundle, boolean create)
throws RepositoryException {
final String nodeName = bundle.getSymbolicName();
@@ -344,7 +353,7 @@ public class ContentLoaderService implem
} catch (LockException le) {
return null;
}
- final Map<String, Object> info = new HashMap<String, Object>();
+ final Map<String, Object> info = new HashMap<>();
if ( bcNode.hasProperty(PROPERTY_CONTENT_LOADED_AT)) {
info.put(PROPERTY_CONTENT_LOADED_AT, bcNode.getProperty(PROPERTY_CONTENT_LOADED_AT).getDate());
}
@@ -365,6 +374,7 @@ public class ContentLoaderService implem
return info;
}
+ @Override
public void unlockBundleContentInfo(final Session session,
final Bundle bundle,
final boolean contentLoaded,
@@ -387,6 +397,7 @@ public class ContentLoaderService implem
bcNode.unlock();
}
+ @Override
public void contentIsUninstalled(final Session session,
final Bundle bundle) {
final String nodeName = bundle.getSymbolicName();
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentReaderWhiteboard.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentReaderWhiteboard.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentReaderWhiteboard.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentReaderWhiteboard.java Wed Aug 9 15:27:11 2017
@@ -3,9 +3,9 @@
* 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.
@@ -16,23 +16,23 @@ package org.apache.sling.jcr.contentload
import java.util.LinkedHashMap;
import java.util.Map;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.ReferencePolicy;
-import org.apache.felix.scr.annotations.References;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.jcr.contentloader.ContentReader;
-
-@Component
-@Service(value = ContentReaderWhiteboard.class)
-@References({ @Reference(name = "contentReader", referenceInterface = ContentReader.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC) })
+import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
+
+@Component(service = ContentReaderWhiteboard.class,
+ property = {
+ Constants.SERVICE_VENDOR + "=The Apache Software Foundation"
+ })
public class ContentReaderWhiteboard {
- private Map<String, ContentReader> readersByExtension = new LinkedHashMap<String, ContentReader>();
+ private Map<String, ContentReader> readersByExtension = new LinkedHashMap<>();
- private Map<String, ContentReader> readersByType = new LinkedHashMap<String, ContentReader>();
+ private Map<String, ContentReader> readersByType = new LinkedHashMap<>();
public Map<String, ContentReader> getReadersByExtension() {
return readersByExtension;
@@ -42,6 +42,8 @@ public class ContentReaderWhiteboard {
return readersByType;
}
+ @Reference(name = "contentReader", service = ContentReader.class,
+ cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC)
protected void bindContentReader(final ContentReader operation, final Map<String, Object> properties) {
final String[] extensions = PropertiesUtil.toStringArray(properties.get(ContentReader.PROPERTY_EXTENSIONS));
final String[] types = PropertiesUtil.toStringArray(properties.get(ContentReader.PROPERTY_TYPES));
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java Wed Aug 9 15:27:11 2017
@@ -27,12 +27,6 @@ import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.ReferencePolicy;
-import org.apache.felix.scr.annotations.Service;
import org.apache.sling.commons.mime.MimeTypeService;
import org.apache.sling.jcr.contentloader.ContentImportListener;
import org.apache.sling.jcr.contentloader.ContentImporter;
@@ -40,6 +34,9 @@ import org.apache.sling.jcr.contentloade
import org.apache.sling.jcr.contentloader.ContentTypeUtil;
import org.apache.sling.jcr.contentloader.ImportOptions;
import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -49,14 +46,12 @@ import org.slf4j.LoggerFactory;
* <li>Import content into the content repository.
* </ul>
*/
-@Component
-@Service(ContentImporter.class)
-@Property(
- name = Constants.SERVICE_DESCRIPTION,
- value = "Apache Sling JCR Content Import Service"
- )
-@Reference(name="contentReaderWhiteboard", cardinality=ReferenceCardinality.MANDATORY_UNARY,
- policy=ReferencePolicy.DYNAMIC, referenceInterface=ContentReaderWhiteboard.class)
+@Component(service = ContentImporter.class,
+ property = {
+ Constants.SERVICE_DESCRIPTION + "=Apache Sling JCR Content Import Service",
+ Constants.SERVICE_VENDOR + "=The Apache Software Foundation"
+ })
+
public class DefaultContentImporter extends BaseImportLoader implements ContentHelper, ContentImporter {
/**
@@ -67,12 +62,23 @@ public class DefaultContentImporter exte
private final Logger logger = LoggerFactory.getLogger(DefaultContentImporter.class);
- public DefaultContentImporter() {
+ @Reference(name="contentReaderWhiteboard",
+ cardinality=ReferenceCardinality.MANDATORY,
+ service=ContentReaderWhiteboard.class)
+ protected void bindContentReaderWhiteboard(final ContentReaderWhiteboard service) {
+ this.contentReaderWhiteboard = service;
+ }
+
+ protected void unbindContentReaderWhiteboard(final ContentReaderWhiteboard service) {
+ if ( this.contentReaderWhiteboard == service ) {
+ this.contentReaderWhiteboard = null;
+ }
}
/* (non-Javadoc)
* @see org.apache.sling.jcr.contentloader.ContentImporter#importContent(javax.jcr.Node, java.lang.String, java.io.InputStream, org.apache.sling.jcr.contentloader.ImportOptions, org.apache.sling.jcr.contentloader.ContentImportListener)
*/
+ @Override
public void importContent(Node parent, String filename, InputStream contentStream, ImportOptions importOptions, ContentImportListener importListener) throws RepositoryException, IOException {
// special treatment for system view imports
@@ -91,6 +97,7 @@ public class DefaultContentImporter exte
importContent(contentCreator, contentReader, parent, name, contentStream, importOptions, importListener);
}
+ @Override
public void importContent(final Node parent, final String name, final String contentType, final InputStream contentStream, final ImportOptions importOptions, final ContentImportListener importListener) throws RepositoryException, IOException {
// special treatment for system view imports
@@ -108,7 +115,7 @@ public class DefaultContentImporter exte
}
private void importContent(final DefaultContentCreator contentCreator, final ContentReader contentReader, final Node parent, final String name, final InputStream contentStream, final ImportOptions importOptions, final ContentImportListener importListener) throws RepositoryException, IOException {
- List<String> createdPaths = new ArrayList<String>();
+ List<String> createdPaths = new ArrayList<>();
contentCreator.init(importOptions, getContentReaders(), createdPaths, importListener);
contentCreator.prepareParsing(parent, name);
contentReader.parse(contentStream, contentCreator);
@@ -142,6 +149,7 @@ public class DefaultContentImporter exte
/* (non-Javadoc)
* @see org.apache.sling.jcr.contentloader.internal.ContentHelper#getMimeType(java.lang.String)
*/
+ @Override
public String getMimeType(String name) {
// local copy to not get NPE despite check for null due to concurrent unbind
MimeTypeService mts = mimeTypeService;
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java Wed Aug 9 15:27:11 2017
@@ -18,6 +18,8 @@
*/
package org.apache.sling.jcr.contentloader.internal.readers;
+import static org.apache.sling.jcr.contentparser.impl.JsonTicksConverter.tickToDoubleQuote;
+
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -40,13 +42,10 @@ import javax.json.JsonObject;
import javax.json.JsonString;
import javax.json.JsonValue;
-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.Service;
import org.apache.sling.jcr.contentloader.ContentCreator;
import org.apache.sling.jcr.contentloader.ContentReader;
-import static org.apache.sling.jcr.contentparser.impl.JsonTicksConverter.tickToDoubleQuote;
+import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
/**
* The <code>JsonReader</code> Parses a Json document on content load and creates the
@@ -97,11 +96,11 @@ import static org.apache.sling.jcr.conte
*
* </pre>
*/
-@Component
-@Service
-@Properties({
- @Property(name = ContentReader.PROPERTY_EXTENSIONS, value = "json"),
- @Property(name = ContentReader.PROPERTY_TYPES, value = "application/json")
+@Component(service = ContentReader.class,
+property = {
+ Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
+ ContentReader.PROPERTY_EXTENSIONS + "=json",
+ ContentReader.PROPERTY_TYPES + "=application/json"
})
public class JsonReader implements ContentReader {
@@ -111,7 +110,7 @@ public class JsonReader implements Conte
private static final String NAME = "jcr:name:";
private static final String URI = "jcr:uri:";
- protected static final Set<String> ignoredNames = new HashSet<String>();
+ protected static final Set<String> ignoredNames = new HashSet<>();
static {
ignoredNames.add("jcr:primaryType");
ignoredNames.add("jcr:mixinTypes");
@@ -123,7 +122,7 @@ public class JsonReader implements Conte
ignoredNames.add("jcr:created");
}
- private static final Set<String> ignoredPrincipalPropertyNames = new HashSet<String>();
+ private static final Set<String> ignoredPrincipalPropertyNames = new HashSet<>();
static {
ignoredPrincipalPropertyNames.add("name");
ignoredPrincipalPropertyNames.add("isgroup");
@@ -137,6 +136,7 @@ public class JsonReader implements Conte
/**
* @see org.apache.sling.jcr.contentloader.ContentReader#parse(java.net.URL, org.apache.sling.jcr.contentloader.ContentCreator)
*/
+ @Override
public void parse(java.net.URL url, ContentCreator contentCreator)
throws IOException, RepositoryException {
InputStream ins = null;
@@ -153,6 +153,7 @@ public class JsonReader implements Conte
}
}
+ @Override
public void parse(InputStream ins, ContentCreator contentCreator) throws IOException, RepositoryException {
try {
String jsonString = toString(ins).trim();
@@ -368,7 +369,7 @@ public class JsonReader implements Conte
boolean isGroup = json.getBoolean("isgroup", false);
//collect the extra property names to assign to the new principal
- Map<String, Object> extraProps = new LinkedHashMap<String, Object>();
+ Map<String, Object> extraProps = new LinkedHashMap<>();
for(Map.Entry<String, JsonValue> entry : json.entrySet()) {
String propName = entry.getKey();
if (!ignoredPrincipalPropertyNames.contains(propName)) {
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/OrderedJsonReader.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/OrderedJsonReader.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/OrderedJsonReader.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/OrderedJsonReader.java Wed Aug 9 15:27:11 2017
@@ -18,14 +18,6 @@
*/
package org.apache.sling.jcr.contentloader.internal.readers;
-import org.apache.commons.lang.StringUtils;
-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.Service;
-import org.apache.sling.jcr.contentloader.ContentCreator;
-import org.apache.sling.jcr.contentloader.ContentReader;
-
import java.util.Map;
import javax.jcr.RepositoryException;
@@ -36,6 +28,11 @@ import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
import javax.json.JsonValue;
+import org.apache.sling.jcr.contentloader.ContentCreator;
+import org.apache.sling.jcr.contentloader.ContentReader;
+import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+
/**
* Specific <code>JsonReader</code>, <code>OrderedJsonReader</code> parse json document exactly the same,
* but does specific look up for SLING:ordered : [{SLING:name: "first", ...},{SLING:name: "second", ...}]
@@ -43,11 +40,11 @@ import javax.json.JsonValue;
* children, in that order.
* Note that this is the reponsability of the json file to set appropriate node type / mixins.
*/
-@Component(inherit = false)
-@Service
-@Properties({
- @Property(name = ContentReader.PROPERTY_EXTENSIONS, value = "ordered-json"),
- @Property(name = ContentReader.PROPERTY_TYPES, value = "application/json")
+@Component(service = ContentReader.class,
+property = {
+ Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
+ ContentReader.PROPERTY_EXTENSIONS + "=ordered-json",
+ ContentReader.PROPERTY_TYPES + "=application/json"
})
public class OrderedJsonReader extends JsonReader {
@@ -73,7 +70,7 @@ public class OrderedJsonReader extends J
if (oc instanceof JsonObject) {
JsonObject child = (JsonObject) oc;
String childName = child.getString(PN_ORDEREDCHILDNAME, null);
- if (StringUtils.isNotBlank(childName)) {
+ if (childName != null && !childName.isEmpty() ) {
JsonObjectBuilder builder = Json.createObjectBuilder();
for (Map.Entry<String, JsonValue> e : child.entrySet())
{
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/XmlReader.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/XmlReader.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/XmlReader.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/XmlReader.java Wed Aug 9 15:27:11 2017
@@ -49,14 +49,12 @@ import javax.xml.transform.TransformerFa
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
-import org.apache.felix.scr.annotations.Activate;
-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.Service;
import org.apache.sling.jcr.contentloader.ContentCreator;
import org.apache.sling.jcr.contentloader.ContentReader;
import org.kxml2.io.KXmlParser;
+import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xmlpull.v1.XmlPullParser;
@@ -98,11 +96,12 @@ import org.xmlpull.v1.XmlPullParserExcep
* If you want to include a binary file in your loaded content, you may specify it using a
* {@link org.apache.sling.jcr.contentloader.internal.readers.XmlReader.FileDescription} <code><nt:file></code> element.
*/
-@Component
-@Service
-@Properties({
- @Property(name = ContentReader.PROPERTY_EXTENSIONS, value = "xml"),
- @Property(name = ContentReader.PROPERTY_TYPES, value = {"application/xml", "text/xml"})
+@Component(service = ContentReader.class,
+property = {
+ Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
+ ContentReader.PROPERTY_EXTENSIONS + "=xml",
+ ContentReader.PROPERTY_TYPES + "=application/xml",
+ ContentReader.PROPERTY_TYPES + "=text/xml"
})
public class XmlReader implements ContentReader {
@@ -159,6 +158,7 @@ public class XmlReader implements Conten
/**
* @see org.apache.sling.jcr.contentloader.ContentReader#parse(URL, org.apache.sling.jcr.contentloader.ContentCreator)
*/
+ @Override
public synchronized void parse(final URL url, final ContentCreator creator)
throws IOException, RepositoryException {
BufferedInputStream bufferedInput = null;
@@ -176,7 +176,8 @@ public class XmlReader implements Conten
/* (non-Javadoc)
* @see org.apache.sling.jcr.contentloader.ContentReader#parse(java.io.InputStream, org.apache.sling.jcr.contentloader.ContentCreator)
*/
- public void parse(InputStream ins, ContentCreator creator)
+ @Override
+ public void parse(InputStream ins, ContentCreator creator)
throws IOException, RepositoryException {
BufferedInputStream bufferedInput = null;
try {
@@ -366,6 +367,7 @@ public class XmlReader implements Conten
transformerThread = new Thread(
new Runnable() {
+ @Override
public void run() {
try {
Source xml = new StreamSource(inputXml);
@@ -422,7 +424,7 @@ public class XmlReader implements Conten
public void addMixinType(String v) {
if ( this.mixinTypes == null ) {
- this.mixinTypes = new ArrayList<String>();
+ this.mixinTypes = new ArrayList<>();
}
this.mixinTypes.add(v);
}
@@ -471,7 +473,7 @@ public class XmlReader implements Conten
public void addValue(String v) {
if ( this.values == null ) {
- this.values = new ArrayList<String>();
+ this.values = new ArrayList<>();
}
this.values.add(v);
}
@@ -500,7 +502,7 @@ public class XmlReader implements Conten
*/
private static class ProcessingInstruction {
- private Map<String, String> attributes = new HashMap<String, String>();
+ private Map<String, String> attributes = new HashMap<>();
private static final Pattern ATTRIBUTE_PATTERN = Pattern.compile("\\s(.[^=\\s]*)\\s?=\\s?\"(.[^\"]*)\"");
private static final Pattern NAME_PATTERN = Pattern.compile("^(.[^\\s\\?>]*)");
private String name;
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/ZipReader.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/ZipReader.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/ZipReader.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/ZipReader.java Wed Aug 9 15:27:11 2017
@@ -26,12 +26,10 @@ import java.util.zip.ZipInputStream;
import javax.jcr.RepositoryException;
import org.apache.commons.io.input.CloseShieldInputStream;
-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.Service;
import org.apache.sling.jcr.contentloader.ContentCreator;
import org.apache.sling.jcr.contentloader.ContentReader;
+import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
/**
@@ -39,11 +37,13 @@ import org.apache.sling.jcr.contentloade
*
* @since 2.0.4
*/
-@Component
-@Service
-@Properties({
- @Property(name = ContentReader.PROPERTY_EXTENSIONS, value = {"zip", "jar"}),
- @Property(name = ContentReader.PROPERTY_TYPES, value = {"application/zip", "application/java-archive"})
+@Component(service = ContentReader.class,
+ property = {
+ Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
+ ContentReader.PROPERTY_EXTENSIONS + "=zip",
+ ContentReader.PROPERTY_EXTENSIONS + "=jar",
+ ContentReader.PROPERTY_TYPES + "=application/zip",
+ ContentReader.PROPERTY_TYPES + "=application/java-archive"
})
public class ZipReader implements ContentReader {
@@ -52,6 +52,7 @@ public class ZipReader implements Conten
/**
* @see org.apache.sling.jcr.contentloader.ContentReader#parse(java.net.URL, org.apache.sling.jcr.contentloader.ContentCreator)
*/
+ @Override
public void parse(java.net.URL url, ContentCreator creator)
throws IOException, RepositoryException {
parse(url.openStream(), creator);
@@ -60,7 +61,8 @@ public class ZipReader implements Conten
/**
* @see org.apache.sling.jcr.contentloader.ContentReader#parse(java.io.InputStream, org.apache.sling.jcr.contentloader.ContentCreator)
*/
- public void parse(InputStream ins, ContentCreator creator)
+ @Override
+ public void parse(InputStream ins, ContentCreator creator)
throws IOException, RepositoryException {
try {
creator.createNode(null, NT_FOLDER, null);
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/package-info.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/package-info.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/package-info.java Wed Aug 9 15:27:11 2017
@@ -17,7 +17,6 @@
* under the License.
*/
-@Version("0.2")
+@org.osgi.annotation.versioning.Version("0.2.2")
package org.apache.sling.jcr.contentloader;
-import aQute.bnd.annotation.Version;
Modified: sling/trunk/bundles/jcr/contentloader/src/test/java/org/apache/sling/jcr/contentloader/internal/BundleContentLoaderTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/test/java/org/apache/sling/jcr/contentloader/internal/BundleContentLoaderTest.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/test/java/org/apache/sling/jcr/contentloader/internal/BundleContentLoaderTest.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/test/java/org/apache/sling/jcr/contentloader/internal/BundleContentLoaderTest.java Wed Aug 9 15:27:11 2017
@@ -52,75 +52,75 @@ public class BundleContentLoaderTest {
context.registerInjectActivateService(new JsonReader());
context.registerInjectActivateService(new XmlReader());
context.registerInjectActivateService(new ZipReader());
-
+
// whiteboard which holds readers
context.registerInjectActivateService(new ContentReaderWhiteboard());
-
+
// TODO - SlingRepository should be registered out of the box, not after calling context.resourceResolver()
// TODO - sling node types should _always_ be registered
Session session = context.resourceResolver().adaptTo(Session.class);
RepositoryUtil.registerSlingNodeTypes(session);
-
+
// register the content loader service
BundleHelper bundleHelper = context.registerInjectActivateService(new ContentLoaderService());
-
+
ContentReaderWhiteboard whiteboard = context.getService(ContentReaderWhiteboard.class);
-
- contentLoader = new BundleContentLoader(bundleHelper, whiteboard);
+
+ contentLoader = new BundleContentLoader(bundleHelper, whiteboard);
}
-
-
+
+
@Test
public void loadContentWithSpecificPath() throws Exception {
Bundle mockBundle = newBundleWithInitialContent("SLING-INF/libs/app;path:=/libs/app");
-
+
contentLoader.registerBundle(context.resourceResolver().adaptTo(Session.class), mockBundle, false);
-
+
Resource imported = context.resourceResolver().getResource("/libs/app");
-
+
assertThat("Resource was not imported", imported, notNullValue());
assertThat("sling:resourceType was not properly set", imported.getResourceType(), equalTo("sling:Folder"));
}
@Test
public void loadContentWithRootPath() throws Exception {
-
+
Bundle mockBundle = newBundleWithInitialContent("SLING-INF/");
-
+
contentLoader.registerBundle(context.resourceResolver().adaptTo(Session.class), mockBundle, false);
-
+
Resource imported = context.resourceResolver().getResource("/libs/app");
-
+
assertThat("Resource was not imported", imported, notNullValue());
assertThat("sling:resourceType was not properly set", imported.getResourceType(), equalTo("sling:Folder"));
}
-
+
@Test
@Ignore("TODO - unregister or somehow ignore the XmlReader component for this test")
public void loadXmlAsIs() throws Exception {
dumpRepo("/", 2);
-
+
Bundle mockBundle = newBundleWithInitialContent("SLING-INF/libs/app;path:=/libs/app;ignoreImportProviders:=xml");
-
+
contentLoader.registerBundle(context.resourceResolver().adaptTo(Session.class), mockBundle, false);
-
+
Resource imported = context.resourceResolver().getResource("/libs/app");
-
+
assertThat("Resource was not imported", imported, notNullValue());
assertThat("sling:resourceType was not properly set", imported.getResourceType(), equalTo("sling:Folder"));
-
+
Resource xmlFile = context.resourceResolver().getResource("/libs/app.xml");
-
+
dumpRepo("/", 2);
-
+
assertThat("XML file was was not imported", xmlFile, notNullValue());
}
private MockBundle newBundleWithInitialContent(String initialContentHeader) {
-
+
MockBundle mockBundle = new MockBundle(context.bundleContext());
mockBundle.setHeaders(singletonMap("Sling-Initial-Content", initialContentHeader));
return mockBundle;
@@ -128,7 +128,7 @@ public class BundleContentLoaderTest {
private void dumpRepo(String startPath, int maxDepth) {
-
+
dumpRepo0(startPath, maxDepth, 0);
}
Modified: sling/trunk/bundles/jcr/contentloader/src/test/java/org/apache/sling/jcr/contentloader/it/ContentBundleTestBase.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/test/java/org/apache/sling/jcr/contentloader/it/ContentBundleTestBase.java?rev=1804544&r1=1804543&r2=1804544&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/test/java/org/apache/sling/jcr/contentloader/it/ContentBundleTestBase.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/test/java/org/apache/sling/jcr/contentloader/it/ContentBundleTestBase.java Wed Aug 9 15:27:11 2017
@@ -56,52 +56,52 @@ import org.slf4j.LoggerFactory;
/** Base class for testing bundles that provide initial content */
@RunWith(PaxExam.class)
public abstract class ContentBundleTestBase {
-
+
private final Logger log = LoggerFactory.getLogger(getClass());
-
+
@Rule
public final RetryRule retry = new RetryRule(RETRY_TIMEOUT, RETRY_INTERVAL);
-
+
@Inject
protected BundleContext bundleContext;
@Inject
protected SlingRepository repository;
-
+
protected static Session session;
protected static String bundleSymbolicName;
protected static String contentRootPath;
- private static final List<Bundle> bundlesToRemove = new ArrayList<Bundle>();
-
+ private static final List<Bundle> bundlesToRemove = new ArrayList<>();
+
protected static final int RETRY_TIMEOUT = 5000;
protected static final int RETRY_INTERVAL = 100;
protected static final String SLING_INITIAL_CONTENT_HEADER = "Sling-Initial-Content";
protected static final String DEFAULT_PATH_IN_BUNDLE = "test-initial-content";
-
+
@org.ops4j.pax.exam.Configuration
public Option[] config() {
return PaxExamUtilities.paxConfig();
}
-
+
@BeforeClass
public static void setupClass() {
bundleSymbolicName = "TEST-" + UUID.randomUUID();
contentRootPath = "/test-content/" + bundleSymbolicName;
}
-
+
@Before
public void setup() throws Exception {
registerStartupHandler();
session = repository.loginAdministrative(null);
-
+
// The RetryRule executes this method on every retry, make
// sure to install our test bundle only once
if(!bundlesToRemove.isEmpty()) {
return;
}
assertFalse("Expecting no content before test", session.itemExists(contentRootPath));
-
+
// Create, install and start a bundle that has initial content
final InputStream is = getTestBundleStream();
try {
@@ -111,10 +111,10 @@ public abstract class ContentBundleTestB
} finally {
is.close();
}
-
+
maybeDumpTestBundle();
}
-
+
/** Optionally dump our test bundle, for troubleshooting it */
private void maybeDumpTestBundle() throws Exception {
final boolean doDump = Boolean.valueOf(System.getProperty("dump.test.bundles", "false"));
@@ -129,15 +129,15 @@ public abstract class ContentBundleTestB
}
}
}
-
+
private InputStream getTestBundleStream() throws Exception {
return setupTestBundle(TinyBundles.bundle()
.set(Constants.BUNDLE_SYMBOLICNAME, bundleSymbolicName)
).build(TinyBundles.withBnd());
}
-
+
abstract protected TinyBundle setupTestBundle(TinyBundle b) throws Exception;
-
+
/** Add content to our test bundle */
protected void addContent(TinyBundle b, String pathInBundle, String resourcePath) throws IOException {
pathInBundle += "/" + resourcePath;
@@ -153,14 +153,14 @@ public abstract class ContentBundleTestB
}
}
}
-
+
@AfterClass
public static void cleanupClass() throws BundleException {
for(Bundle b : bundlesToRemove) {
b.uninstall();
}
bundlesToRemove.clear();
-
+
session.logout();
session = null;
}
@@ -174,13 +174,16 @@ public abstract class ContentBundleTestB
// TODO should be provided by a utility/bootstrap bundle
final StartupHandler h = new StartupHandler() {
+ @Override
public void waitWithStartup(boolean b) {
}
+ @Override
public boolean isFinished() {
return true;
}
+ @Override
public StartupMode getMode() {
return StartupMode.INSTALL;
}
@@ -189,5 +192,4 @@ public abstract class ContentBundleTestB
bundleContext.registerService(StartupHandler.class.getName(), h, null);
}
-
}
\ No newline at end of file