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 2016/09/21 20:39:50 UTC
svn commit: r1761810 - in /sling/trunk/bundles/extensions/i18n: pom.xml
src/test/java/org/apache/sling/i18n/it/ResourceBundleProviderIT.java
Author: cziegeler
Date: Wed Sep 21 20:39:50 2016
New Revision: 1761810
URL: http://svn.apache.org/viewvc?rev=1761810&view=rev
Log:
SLING-5999 : JcrResourceBundleProvider should move to new ResourceChangeListener API
Modified:
sling/trunk/bundles/extensions/i18n/pom.xml
sling/trunk/bundles/extensions/i18n/src/test/java/org/apache/sling/i18n/it/ResourceBundleProviderIT.java
Modified: sling/trunk/bundles/extensions/i18n/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/i18n/pom.xml?rev=1761810&r1=1761809&r2=1761810&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/i18n/pom.xml (original)
+++ sling/trunk/bundles/extensions/i18n/pom.xml Wed Sep 21 20:39:50 2016
@@ -100,6 +100,26 @@
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>reserve-network-port</id>
+ <goals>
+ <goal>reserve-network-port</goal>
+ </goals>
+ <phase>pre-integration-test</phase>
+ <configuration>
+ <portNames>
+ <portName>http.port</portName>
+ </portNames>
+ <minPortNumber>45000</minPortNumber>
+ <maxPortNumber>45999</maxPortNumber>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.18.1</version>
@@ -117,22 +137,12 @@
<pax.exam.log.level>${pax.exam.log.level}</pax.exam.log.level>
<java.protocol.handler.pkgs>org.ops4j.pax.url</java.protocol.handler.pkgs>
<bundle.filename>${basedir}/target/${project.build.finalName}.jar</bundle.filename>
+ <bundle.build.dir>${basedir}/target</bundle.build.dir>
+ <org.osgi.service.http.port>${http.port}</org.osgi.service.http.port>
</systemPropertyVariables>
</configuration>
</plugin>
<plugin>
- <groupId>org.apache.servicemix.tooling</groupId>
- <artifactId>depends-maven-plugin</artifactId>
- <version>1.3.1</version>
- <executions>
- <execution>
- <goals>
- <goal>generate-depends-file</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
@@ -213,12 +223,6 @@
</dependency>
<!-- Testing -->
<dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.testing.paxexam</artifactId>
- <version>0.0.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
<scope>test</scope>
Modified: sling/trunk/bundles/extensions/i18n/src/test/java/org/apache/sling/i18n/it/ResourceBundleProviderIT.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/i18n/src/test/java/org/apache/sling/i18n/it/ResourceBundleProviderIT.java?rev=1761810&r1=1761809&r2=1761810&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/i18n/src/test/java/org/apache/sling/i18n/it/ResourceBundleProviderIT.java (original)
+++ sling/trunk/bundles/extensions/i18n/src/test/java/org/apache/sling/i18n/it/ResourceBundleProviderIT.java Wed Sep 21 20:39:50 2016
@@ -18,13 +18,17 @@
*/
package org.apache.sling.i18n.it;
-import static org.apache.sling.testing.paxexam.SlingOptions.slingExtensionModels;
-import static org.apache.sling.testing.paxexam.SlingOptions.slingLaunchpadOakTar;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;
+import static org.ops4j.pax.exam.CoreOptions.frameworkProperty;
import static org.ops4j.pax.exam.CoreOptions.junitBundles;
+import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
+import static org.ops4j.pax.exam.CoreOptions.options;
+import static org.ops4j.pax.exam.CoreOptions.systemProperty;
+import static org.ops4j.pax.exam.CoreOptions.when;
+import java.io.File;
import java.util.Locale;
import java.util.ResourceBundle;
@@ -36,12 +40,14 @@ import javax.jcr.Session;
import org.apache.sling.i18n.ResourceBundleProvider;
import org.apache.sling.i18n.impl.Message;
import org.apache.sling.jcr.api.SlingRepository;
-import org.apache.sling.testing.paxexam.TestSupport;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Configuration;
+import org.ops4j.pax.exam.CoreOptions;
import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.cm.ConfigurationAdminOptions;
import org.ops4j.pax.exam.junit.PaxExam;
import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
import org.ops4j.pax.exam.spi.reactors.PerClass;
@@ -50,10 +56,19 @@ import org.slf4j.LoggerFactory;
@RunWith(PaxExam.class)
@ExamReactorStrategy(PerClass.class)
-public class ResourceBundleProviderIT extends TestSupport {
+public class ResourceBundleProviderIT {
private final Logger log = LoggerFactory.getLogger(getClass());
+ private static final String BUNDLE_JAR_SYS_PROP = "bundle.filename";
+
+ /** The property containing the build directory. */
+ private static final String SYS_PROP_BUILD_DIR = "bundle.build.dir";
+
+ private static final String DEFAULT_BUILD_DIR = "target";
+
+ private static final String PORT_CONFIG = "org.osgi.service.http.port";
+
public static final int RETRY_TIMEOUT_MSEC = 10000;
public static final String MSG_KEY1 = "foo";
public static final String MSG_KEY2 = "foo2";
@@ -71,35 +86,167 @@ public class ResourceBundleProviderIT ex
private Node frRoot;
private Node enRoot;
- @org.ops4j.pax.exam.Configuration
- public Option[] configuration() {
- final String workingDirectory = workingDirectory(); // from TestSupport
- final int httpPort = findFreePort(); // from TestSupport
-
- return new Option[]{
- baseConfiguration(), // from TestSupport
- slingLaunchpadOakTar(workingDirectory, httpPort), // from SlingOptions
- slingExtensionModels(), // from SlingOptions (for illustration)
- // build artifact
- testBundle("bundle.filename"), // from TestSupport
- // testing
- junitBundles()
- };
- }
-/*
- @org.ops4j.pax.exam.Configuration
+ @Configuration
public Option[] config() {
- final File thisProjectsBundle = new File(System.getProperty( "bundle.file.name", "BUNDLE_FILE_NOT_SET" ));
- final String launchpadVersion = System.getProperty("sling.launchpad.version", "LAUNCHPAD_VERSION_NOT_SET");
- return new DefaultCompositeOption(
- SlingPaxOptions.defaultLaunchpadOptions(launchpadVersion),
- CoreOptions.provision(CoreOptions.bundle(thisProjectsBundle.toURI().toString())),
+ final String buildDir = System.getProperty(SYS_PROP_BUILD_DIR, DEFAULT_BUILD_DIR);
+ final String bundleFileName = System.getProperty( BUNDLE_JAR_SYS_PROP );
+ final File bundleFile = new File( bundleFileName );
+ if ( !bundleFile.canRead() ) {
+ throw new IllegalArgumentException( "Cannot read from bundle file " + bundleFileName + " specified in the "
+ + BUNDLE_JAR_SYS_PROP + " system property" );
+ }
+
+ String localRepo = System.getProperty("maven.repo.local", "");
+
+ final String jackrabbitVersion = "2.13.1";
+ final String oakVersion = "1.5.7";
+
+ final String slingHome = new File(buildDir + File.separatorChar + "sling_" + System.currentTimeMillis()).getAbsolutePath();
+
+ return options(
+ frameworkProperty("sling.home").value(slingHome),
+ frameworkProperty("repository.home").value(slingHome + File.separatorChar + "repository"),
+ when( localRepo.length() > 0 ).useOptions(
+ systemProperty("org.ops4j.pax.url.mvn.localRepository").value(localRepo)
+ ),
+ when( System.getProperty(PORT_CONFIG) != null ).useOptions(
+ systemProperty(PORT_CONFIG).value(System.getProperty(PORT_CONFIG))),
+ systemProperty("pax.exam.osgi.unresolved.fail").value("true"),
+
+ ConfigurationAdminOptions.newConfiguration("org.apache.felix.jaas.ConfigurationSpi")
+ .create(true)
+ .put("jaas.defaultRealmName", "jackrabbit.oak")
+ .put("jaas.configProviderName", "FelixJaasProvider")
+ .asOption(),
+ ConfigurationAdminOptions.factoryConfiguration("org.apache.felix.jaas.Configuration.factory")
+ .create(true)
+ .put("jaas.controlFlag", "optional")
+ .put("jaas.classname", "org.apache.jackrabbit.oak.spi.security.authentication.GuestLoginModule")
+ .put("jaas.ranking", 300)
+ .asOption(),
+ ConfigurationAdminOptions.factoryConfiguration("org.apache.felix.jaas.Configuration.factory")
+ .create(true)
+ .put("jaas.controlFlag", "required")
+ .put("jaas.classname", "org.apache.jackrabbit.oak.security.authentication.user.LoginModuleImpl")
+ .asOption(),
+ ConfigurationAdminOptions.factoryConfiguration("org.apache.felix.jaas.Configuration.factory")
+ .create(true)
+ .put("jaas.controlFlag", "sufficient")
+ .put("jaas.classname", "org.apache.jackrabbit.oak.security.authentication.token.TokenLoginModule")
+ .put("jaas.ranking", 200)
+ .asOption(),
+ ConfigurationAdminOptions.newConfiguration("org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl")
+ .create(true)
+ .put("org.apache.jackrabbit.oak.authentication.configSpiName", "FelixJaasProvider")
+ .asOption(),
+ ConfigurationAdminOptions.newConfiguration("org.apache.jackrabbit.oak.security.user.UserConfigurationImpl")
+ .create(true)
+ .put("groupsPath", "/home/groups")
+ .put("usersPath", "/home/users")
+ .put("defaultPath", "1")
+ .put("importBehavior", "besteffort")
+ .asOption(),
+ ConfigurationAdminOptions.newConfiguration("org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName")
+ .create(true)
+ .put("enabledActions", new String[] {"org.apache.jackrabbit.oak.spi.security.user.action.AccessControlAction"})
+ .put("userPrivilegeNames", new String[] {"jcr:all"})
+ .put("groupPrivilegeNames", new String[] {"jcr:read"})
+ .asOption(),
+ ConfigurationAdminOptions.newConfiguration("org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider")
+ .create(true)
+ .put("length", 21)
+ .asOption(),
+ ConfigurationAdminOptions.newConfiguration("org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService")
+ .create(true)
+ .put("name", "Default NodeStore")
+ .asOption(),
+
+ // logging
+ systemProperty("pax.exam.logging").value("none"),
+ mavenBundle("org.apache.sling", "org.apache.sling.commons.log", "4.0.6"),
+ mavenBundle("org.apache.sling", "org.apache.sling.commons.logservice", "1.0.6"),
+ mavenBundle("org.slf4j", "slf4j-api", "1.7.13"),
+ mavenBundle("org.slf4j", "jcl-over-slf4j", "1.7.13"),
+ mavenBundle("org.slf4j", "log4j-over-slf4j", "1.7.13"),
+
+ mavenBundle("commons-io", "commons-io", "2.4"),
+ mavenBundle("commons-fileupload", "commons-fileupload", "1.3.1"),
+ mavenBundle("commons-collections", "commons-collections", "3.2.2"),
+ mavenBundle("commons-codec", "commons-codec", "1.10"),
+ mavenBundle("commons-lang", "commons-lang", "2.6"),
+ mavenBundle("commons-pool", "commons-pool", "1.6"),
+
+ mavenBundle("org.apache.servicemix.bundles", "org.apache.servicemix.bundles.concurrent", "1.3.4_1"),
+
+ mavenBundle("org.apache.geronimo.bundles", "commons-httpclient", "3.1_1"),
+ mavenBundle("org.apache.tika", "tika-core", "1.9"),
+ mavenBundle("org.apache.tika", "tika-bundle", "1.9"),
+
+ // infrastructure
mavenBundle("org.apache.felix", "org.apache.felix.http.servlet-api", "1.1.2"),
mavenBundle("org.apache.felix", "org.apache.felix.http.jetty", "3.1.6"),
- mavenBundle("org.apache.sling", "org.apache.sling.commons.osgi", "2.4.0")
- ).getOptions();
+ mavenBundle("org.apache.felix", "org.apache.felix.eventadmin", "1.4.4"),
+ mavenBundle("org.apache.felix", "org.apache.felix.scr", "2.0.4"),
+ mavenBundle("org.apache.felix", "org.apache.felix.configadmin", "1.8.10"),
+ mavenBundle("org.apache.felix", "org.apache.felix.inventory", "1.0.4"),
+ mavenBundle("org.apache.felix", "org.apache.felix.metatype", "1.1.2"),
+
+ // sling
+ mavenBundle("org.apache.sling", "org.apache.sling.settings", "1.3.8"),
+ mavenBundle("org.apache.sling", "org.apache.sling.commons.osgi", "2.3.0"),
+ mavenBundle("org.apache.sling", "org.apache.sling.commons.json", "2.0.16"),
+ mavenBundle("org.apache.sling", "org.apache.sling.commons.mime", "2.1.8"),
+ mavenBundle("org.apache.sling", "org.apache.sling.commons.classloader", "1.3.2"),
+ mavenBundle("org.apache.sling", "org.apache.sling.commons.scheduler", "2.4.14"),
+ mavenBundle("org.apache.sling", "org.apache.sling.commons.threads", "3.2.4"),
+
+ mavenBundle("org.apache.sling", "org.apache.sling.auth.core", "1.3.12"),
+ mavenBundle("org.apache.sling", "org.apache.sling.discovery.api", "1.0.2"),
+ mavenBundle("org.apache.sling", "org.apache.sling.discovery.commons", "1.0.12"),
+ mavenBundle("org.apache.sling", "org.apache.sling.discovery.standalone", "1.0.2"),
+
+ mavenBundle("org.apache.sling", "org.apache.sling.api", "2.14.2"),
+ mavenBundle("org.apache.sling", "org.apache.sling.resourceresolver", "1.4.18"),
+ mavenBundle("org.apache.sling", "org.apache.sling.adapter", "2.1.2"),
+ mavenBundle("org.apache.sling", "org.apache.sling.jcr.resource", "2.8.0"),
+ mavenBundle("org.apache.sling", "org.apache.sling.jcr.classloader", "3.2.2"),
+ mavenBundle("org.apache.sling", "org.apache.sling.jcr.contentloader", "2.1.8"),
+ mavenBundle("org.apache.sling", "org.apache.sling.engine", "2.6.2"),
+ mavenBundle("org.apache.sling", "org.apache.sling.serviceusermapper", "1.2.2"),
+
+ mavenBundle("org.apache.sling", "org.apache.sling.jcr.jcr-wrapper", "2.0.0"),
+ mavenBundle("org.apache.sling", "org.apache.sling.jcr.api", "2.4.0"),
+ mavenBundle("org.apache.sling", "org.apache.sling.jcr.base", "2.4.0"),
+
+ mavenBundle("com.google.guava", "guava", "15.0"),
+ mavenBundle("org.apache.jackrabbit", "jackrabbit-api", jackrabbitVersion),
+ mavenBundle("org.apache.jackrabbit", "jackrabbit-jcr-commons", jackrabbitVersion),
+ mavenBundle("org.apache.jackrabbit", "jackrabbit-spi", jackrabbitVersion),
+ mavenBundle("org.apache.jackrabbit", "jackrabbit-spi-commons", jackrabbitVersion),
+ mavenBundle("org.apache.jackrabbit", "jackrabbit-jcr-rmi", jackrabbitVersion),
+
+ mavenBundle("org.apache.felix", "org.apache.felix.jaas", "0.0.4"),
+
+ mavenBundle("org.apache.jackrabbit", "oak-core", oakVersion),
+ mavenBundle("org.apache.jackrabbit", "oak-commons", oakVersion),
+ mavenBundle("org.apache.jackrabbit", "oak-lucene", oakVersion),
+ mavenBundle("org.apache.jackrabbit", "oak-blob", oakVersion),
+ mavenBundle("org.apache.jackrabbit", "oak-jcr", oakVersion),
+
+ mavenBundle("org.apache.jackrabbit", "oak-segment", oakVersion),
+
+ mavenBundle("org.apache.sling", "org.apache.sling.jcr.oak.server", "1.1.0"),
+
+ mavenBundle("org.apache.sling", "org.apache.sling.testing.tools", "1.0.6"),
+ mavenBundle("org.apache.httpcomponents", "httpcore-osgi", "4.1.2"),
+ mavenBundle("org.apache.httpcomponents", "httpclient-osgi", "4.1.2"),
+
+ junitBundles(),
+
+ CoreOptions.bundle( bundleFile.toURI().toString() )
+ );
}
-*/
+
static abstract class Retry {
Retry(int timeoutMsec) {
final long timeout = System.currentTimeMillis() + timeoutMsec;
@@ -122,11 +269,6 @@ public class ResourceBundleProviderIT ex
protected abstract void exec() throws Exception;
}
- @Test
- public void test_dummy() {
- System.err.println("All tests are disabled for now ....");
- }
-
@Before
public void setup() throws RepositoryException {
session = repository.loginAdministrative(null);
@@ -183,23 +325,6 @@ public class ResourceBundleProviderIT ex
}
@Test
- public void testRepositoryName() {
- final String name = repository.getDescriptor("jcr.repository.name");
- log.info("Test running on {} repository {}",
- name,
- repository.getDescriptor("jcr.repository.version"));
-
- // We could use JUnit categories to select tests, as we
- // do in our integration tests, but let's avoid a dependency on
- // that in this module
- if(System.getProperty("sling.run.modes", "").contains("oak")) {
- assertEquals("Apache Jackrabbit Oak", name);
- } else {
- assertEquals("Jackrabbit", name);
- }
- }
-
- @Test
public void testChangesDetection() throws RepositoryException {
// set a key which is only available in the en dictionary
new Message("", MSG_KEY2, "EN_message", false).add(enRoot);