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