You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2018/10/11 15:06:08 UTC

[sling-org-apache-sling-capabilities] branch master updated (799c1ac -> f9653c2)

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

bdelacretaz pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-capabilities.git.


    from 799c1ac  CapabilitiesBundleIT added + bnd / Maven plugin fixes
     new 10851ce  Fix cardinality
     new f9653c2  Test multiple sources

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../capabilities/internal/CapabilitiesServlet.java |  7 +++-
 .../capabilities/it/CapabilitiesBundleIT.java      | 37 +++++++++++++++++-----
 2 files changed, 35 insertions(+), 9 deletions(-)


[sling-org-apache-sling-capabilities] 02/02: Test multiple sources

Posted by bd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

bdelacretaz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-capabilities.git

commit f9653c234e3f319a1e66a21b60fe16aa13e32c74
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Thu Oct 11 17:05:26 2018 +0200

    Test multiple sources
---
 .../capabilities/internal/CapabilitiesServlet.java |  5 +++
 .../capabilities/it/CapabilitiesBundleIT.java      | 37 +++++++++++++++++-----
 2 files changed, 34 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/apache/sling/capabilities/internal/CapabilitiesServlet.java b/src/main/java/org/apache/sling/capabilities/internal/CapabilitiesServlet.java
index ae7e2b8..b1a91a0 100644
--- a/src/main/java/org/apache/sling/capabilities/internal/CapabilitiesServlet.java
+++ b/src/main/java/org/apache/sling/capabilities/internal/CapabilitiesServlet.java
@@ -71,6 +71,11 @@ public class CapabilitiesServlet extends SlingSafeMethodsServlet {
     }
     
     @Override
+    public String toString() {
+        return getClass().getSimpleName() + ": " + sources.size() + " " + CapabilitiesSource.class.getSimpleName() + " active";
+    }
+
+    @Override
     protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
         
         // Resource Path must match a configurable set of patterns, to prevent
diff --git a/src/test/java/org/apache/sling/capabilities/it/CapabilitiesBundleIT.java b/src/test/java/org/apache/sling/capabilities/it/CapabilitiesBundleIT.java
index 00dc3dc..6541579 100644
--- a/src/test/java/org/apache/sling/capabilities/it/CapabilitiesBundleIT.java
+++ b/src/test/java/org/apache/sling/capabilities/it/CapabilitiesBundleIT.java
@@ -20,9 +20,11 @@ package org.apache.sling.capabilities.it;
 
 import java.util.Map;
 import javax.inject.Inject;
+import javax.servlet.Servlet;
 import org.apache.sling.capabilities.CapabilitiesSource;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -31,6 +33,8 @@ import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
 import org.ops4j.pax.exam.spi.reactors.PerClass;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
 
 @RunWith(PaxExam.class)
@@ -42,6 +46,11 @@ public class CapabilitiesBundleIT extends CapabilitiesTestSupport {
     
     private Bundle testBundle;
 
+    private static class TestCapabilitiesSource implements CapabilitiesSource {
+        public String getNamespace() { return null; }
+        public Map<String, Object> getCapabilities() { return null; }
+    };
+
     @Before
     public void setup() {
         final String symbolicName = "org.apache.sling.capabilities";
@@ -61,16 +70,28 @@ public class CapabilitiesBundleIT extends CapabilitiesTestSupport {
     }
     
     @Test
-    public void testRegisterSource() {
+    public void testRegisterSources() throws InvalidSyntaxException {
         // Verify that the bundle setup (exported packages) allows us to 
         // register a source from the outside
-        final CapabilitiesSource src = new CapabilitiesSource() {
-            public String getNamespace() { return null; }
-            public Map<String, Object> getCapabilities() { return null; }
-        };
+        final ServiceRegistration [] reg = new ServiceRegistration[3];
+        for(int i=0 ; i < reg.length; i++) {
+            reg[i] = bundleContext.registerService(CapabilitiesSource.class.getName(), new TestCapabilitiesSource(), null);
+            assertNotNull("Expecting ServiceRegistration", reg[i]);
+        }
         
-        final ServiceRegistration reg = bundleContext.registerService(CapabilitiesSource.class.getName(), src, null);
-        assertNotNull("Expecting ServiceRegistration", reg);
-        reg.unregister();
+        try {
+            // Now check that all sources are registered
+            // using toString() trick from CapabilitiesServlet
+            final String expected = reg.length + " CapabilitiesSource";
+            final ServiceReference[] refs =  bundleContext.getServiceReferences(Servlet.class.getName(), "(sling.servlet.resourceTypes=sling/capabilities)");
+            assertTrue("Expecting a single Servlet service", refs != null && refs.length == 1);
+            final String str = bundleContext.getService(refs[0]).toString();
+            assertTrue("Expecting " + expected + " but got " + str, str.contains(expected));
+            bundleContext.ungetService(refs[0]);
+        } finally {
+            for(int i=0 ; i < reg.length; i++) {
+                reg[i].unregister();
+            }
+        }
     }
 }


[sling-org-apache-sling-capabilities] 01/02: Fix cardinality

Posted by bd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

bdelacretaz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-capabilities.git

commit 10851ce09cf83fc0774eecacb3f348ba853c39cf
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Thu Oct 11 16:43:44 2018 +0200

    Fix cardinality
---
 .../org/apache/sling/capabilities/internal/CapabilitiesServlet.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/capabilities/internal/CapabilitiesServlet.java b/src/main/java/org/apache/sling/capabilities/internal/CapabilitiesServlet.java
index d43b937..ae7e2b8 100644
--- a/src/main/java/org/apache/sling/capabilities/internal/CapabilitiesServlet.java
+++ b/src/main/java/org/apache/sling/capabilities/internal/CapabilitiesServlet.java
@@ -103,7 +103,7 @@ public class CapabilitiesServlet extends SlingSafeMethodsServlet {
 
     @Reference(
         policy=ReferencePolicy.DYNAMIC,
-        cardinality=ReferenceCardinality.OPTIONAL,
+        cardinality=ReferenceCardinality.MULTIPLE,
         policyOption=ReferencePolicyOption.GREEDY)
     void bindSource(CapabilitiesSource src) {
         sources.add(src);