You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:20:51 UTC

[sling-org-apache-sling-testing-paxexam] 22/39: SLING-6473 Create a VersionResolver that provides versions from provisioning model files

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.testing.paxexam-0.0.4
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-paxexam.git

commit 057e5ed34966786a62dcea27239860fa3d1d09f6
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Sat Mar 4 13:58:36 2017 +0000

    SLING-6473 Create a VersionResolver that provides versions from provisioning model files
    
    remove VersionResolver until matching Options are also provided by provisioning model
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/org.apache.sling.testing.paxexam@1785487 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            |  13 --
 .../paxexam/ProvisioningModelVersionResolver.java  | 136 ---------------------
 .../ProvisioningModelVersionResolverTest.java      |  55 ---------
 .../testing/paxexam/SlingOptionsTestSupport.java   |   2 -
 src/test/resources/test-dependencies.txt           |  25 ----
 5 files changed, 231 deletions(-)

diff --git a/pom.xml b/pom.xml
index 9bb462e..a5a70a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -105,13 +105,6 @@
       <artifactId>osgi.cmpn</artifactId>
       <scope>provided</scope>
     </dependency>
-    <dependency>
-      <groupId>org.apache.sling</groupId>
-      <artifactId>org.apache.sling.provisioning.model</artifactId>
-      <version>1.0.0</version>
-      <scope>provided</scope>
-      <optional>true</optional>
-    </dependency>
     <!-- Apache Felix -->
     <dependency>
       <groupId>org.apache.felix</groupId>
@@ -153,12 +146,6 @@
       <version>${org.ops4j.pax.exam.version}</version>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-simple</artifactId>
-      <version>1.7.13</version>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
 
 </project>
diff --git a/src/main/java/org/apache/sling/testing/paxexam/ProvisioningModelVersionResolver.java b/src/main/java/org/apache/sling/testing/paxexam/ProvisioningModelVersionResolver.java
deleted file mode 100644
index 6cc1207..0000000
--- a/src/main/java/org/apache/sling/testing/paxexam/ProvisioningModelVersionResolver.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.testing.paxexam;
-
-import org.apache.sling.provisioning.model.Artifact;
-import org.apache.sling.provisioning.model.ArtifactGroup;
-import org.apache.sling.provisioning.model.Feature;
-import org.apache.sling.provisioning.model.Model;
-import org.apache.sling.provisioning.model.RunMode;
-import org.apache.sling.provisioning.model.io.ModelReader;
-import org.ops4j.pax.exam.options.MavenArtifactUrlReference;
-import org.ops4j.pax.exam.options.MavenUrlReference.VersionResolver;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-/**
- * VersionResolver that reads version information from a sling provisioning file.
- * One use-case is to reference Sling's launchpad, which normally references a
- * (recent) set of compatible bundles, in order to allow running test based on
- * the versioning information from the Sling launchpad's provisioning model.
- */
-public class ProvisioningModelVersionResolver implements VersionResolver {
-
-    private final Model model;
-
-    /**
-     * Adds classifier "slingfeature" and type "txt" to the provided MavenArtifactUrlReference
-     * to simplify creation of a VersionResolver based on a slingfeature.
-     *
-     * @param reference Maven coordinates of a module that provides a slingfeature.
-     * @return VersionResolver instance backed by the referenced slingfeature.
-     */
-    public static VersionResolver fromSlingfeature(MavenArtifactUrlReference reference) {
-        final String url = reference.classifier("slingfeature").type("txt").getURL();
-        try {
-            return new ProvisioningModelVersionResolver(url);
-        } catch (MalformedURLException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    /**
-     * Constructor to create a VersionResolver instance backed by a provisioning model referenced
-     * by the URL represented by the provided String.
-     *
-     * @param url The String representation of a URL.
-     * @throws MalformedURLException If the String representation of the URL is not a valid URL.
-     */
-    public ProvisioningModelVersionResolver(final String url) throws MalformedURLException {
-        this(toUrl(url));
-    }
-
-    /**
-     * Constructor to create a VersionResolver instance backed by a provisioning model referenced
-     * by the provided URL object.
-     *
-     * @param url The URL pointing the the provisioning model file.
-     */
-    public ProvisioningModelVersionResolver(final URL url) {
-        InputStream inputStream = null;
-        try {
-            inputStream = url.openStream();
-            this.model = ModelReader.read(new InputStreamReader(inputStream), url.toExternalForm());
-        } catch (IOException e) {
-            throw new RuntimeException("Failed to read " + url.toExternalForm(), e);
-        } finally {
-            if (inputStream != null) {
-                try {
-                    inputStream.close();
-                } catch (IOException e) {
-                    // silent
-                }
-            }
-        }
-    }
-
-    private static URL toUrl(final String url) throws MalformedURLException {
-        final boolean hasProtocolHandler = System.getProperty("java.protocol.handler.pkgs") != null;
-        if (!hasProtocolHandler) {
-            // enable org.ops4j.pax.url handlers by default, unless the property is already set
-            System.setProperty("java.protocol.handler.pkgs", "org.ops4j.pax.url");
-        }
-        try {
-            return new URL(url);
-        } catch (final MalformedURLException e) {
-            if ("unknown protocol: mvn".equals(e.getMessage())) {
-                // best effort: present a helpful message in case the mvn protocol handler is missing
-                final MalformedURLException exception = new MalformedURLException(e.getMessage()
-                        + " -> Consider a dependency to org.ops4j.pax.url:pax-url-aether");
-                exception.initCause(e);
-                throw exception;
-            }
-            throw e;
-        } finally {
-            if (!hasProtocolHandler) {
-                System.clearProperty("java.protocol.handler.pkgs");
-            }
-        }
-    }
-
-    @Override
-    public String getVersion(final String groupId, final String artifactId) {
-        for (final Feature feature : model.getFeatures()) {
-            for (final RunMode runMode : feature.getRunModes()) {
-                for (final ArtifactGroup artifacts : runMode.getArtifactGroups()) {
-                    for (final Artifact artifact : artifacts) {
-                        if (groupId.equals(artifact.getGroupId()) && artifactId.equals(artifact.getArtifactId())) {
-                            return artifact.getVersion();
-                        }
-                    }
-                }
-            }
-        }
-        return null;
-    }
-}
diff --git a/src/test/java/org/apache/sling/testing/paxexam/ProvisioningModelVersionResolverTest.java b/src/test/java/org/apache/sling/testing/paxexam/ProvisioningModelVersionResolverTest.java
deleted file mode 100644
index 6529c11..0000000
--- a/src/test/java/org/apache/sling/testing/paxexam/ProvisioningModelVersionResolverTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.testing.paxexam;
-
-import org.junit.Test;
-import org.ops4j.pax.exam.options.MavenUrlReference.VersionResolver;
-
-import static org.apache.sling.testing.paxexam.ProvisioningModelVersionResolver.fromSlingfeature;
-import static org.junit.Assert.assertEquals;
-import static org.ops4j.pax.exam.CoreOptions.maven;
-
-public class ProvisioningModelVersionResolverTest {
-
-    @Test
-    public void getVersionFromClasspathResource() throws Exception {
-        final VersionResolver versionResolver =
-                new ProvisioningModelVersionResolver(getClass().getResource("/test-dependencies.txt"));
-        assertVersion("2.6.4", "org.apache.sling", "org.apache.sling.engine", versionResolver);
-        assertVersion("2.4.10", "org.apache.sling", "org.apache.sling.servlets.resolver", versionResolver);
-        assertVersion("2.1.18", "org.apache.sling", "org.apache.sling.servlets.get", versionResolver);
-        assertVersion("2.3.14", "org.apache.sling", "org.apache.sling.servlets.post", versionResolver);
-    }
-
-    @Test
-    public void getVersionFromMavenDependency() throws Exception {
-        final VersionResolver versionResolver =
-                fromSlingfeature(maven("org.apache.sling", "org.apache.sling.launchpad", "8"));
-        assertVersion("2.4.4", "org.apache.sling", "org.apache.sling.engine", versionResolver);
-        assertVersion("2.3.8", "org.apache.sling", "org.apache.sling.servlets.resolver", versionResolver);
-        assertVersion("2.1.12", "org.apache.sling", "org.apache.sling.servlets.get", versionResolver);
-        assertVersion("2.3.8", "org.apache.sling", "org.apache.sling.servlets.post", versionResolver);
-    }
-
-    private void assertVersion(final String expectedVersion,
-                               final String groupId, final String artifactId, final VersionResolver versionResolver) {
-        final String actualVersion = versionResolver.getVersion(groupId, artifactId);
-        assertEquals("Version mismatch for " + groupId + ":" + artifactId, expectedVersion, actualVersion);
-    }
-}
\ No newline at end of file
diff --git a/src/test/java/org/apache/sling/testing/paxexam/SlingOptionsTestSupport.java b/src/test/java/org/apache/sling/testing/paxexam/SlingOptionsTestSupport.java
index 13f8b5a..f3dcff2 100644
--- a/src/test/java/org/apache/sling/testing/paxexam/SlingOptionsTestSupport.java
+++ b/src/test/java/org/apache/sling/testing/paxexam/SlingOptionsTestSupport.java
@@ -18,13 +18,11 @@
  */
 package org.apache.sling.testing.paxexam;
 
-
 import org.ops4j.pax.exam.CoreOptions;
 import org.ops4j.pax.exam.Option;
 
 import static org.ops4j.pax.exam.CoreOptions.composite;
 import static org.ops4j.pax.exam.CoreOptions.keepCaches;
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 
 public abstract class SlingOptionsTestSupport extends TestSupport {
 
diff --git a/src/test/resources/test-dependencies.txt b/src/test/resources/test-dependencies.txt
deleted file mode 100644
index fa43db7..0000000
--- a/src/test/resources/test-dependencies.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing,
-#  software distributed under the License is distributed on an
-#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-#  specific language governing permissions and limitations
-#  under the License.
-#
-[feature name=test]
-# Dependencies
-[artifacts]
-  org.apache.sling/org.apache.sling.engine/2.6.4
-  org.apache.sling/org.apache.sling.servlets.resolver/2.4.10
-  org.apache.sling/org.apache.sling.servlets.get/2.1.18
-  org.apache.sling/org.apache.sling.servlets.post/2.3.14

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.