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 09:48:59 UTC
[sling-org-apache-sling-jcr-registration] 04/07: Clean up usage of
SCR annotations
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.jcr.registration-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-registration.git
commit d67e8f29807c880c8566dfc3431c32a372b5b2a1
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Tue Jul 29 12:30:06 2014 +0000
Clean up usage of SCR annotations
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/registration@1614324 13f79535-47bb-0310-9956-ffa450edef68
---
.../jcr/registration/AbstractRegistrationSupport.java | 18 +++---------------
.../jcr/registration/impl/JndiRegistrationSupport.java | 18 ++++++++++++++++++
.../jcr/registration/impl/RmiRegistrationSupport.java | 18 ++++++++++++++++++
.../apache/sling/jcr/registration/package-info.java | 3 ++-
4 files changed, 41 insertions(+), 16 deletions(-)
diff --git a/src/main/java/org/apache/sling/jcr/registration/AbstractRegistrationSupport.java b/src/main/java/org/apache/sling/jcr/registration/AbstractRegistrationSupport.java
index 95803b2..9ab9db4 100644
--- a/src/main/java/org/apache/sling/jcr/registration/AbstractRegistrationSupport.java
+++ b/src/main/java/org/apache/sling/jcr/registration/AbstractRegistrationSupport.java
@@ -22,11 +22,6 @@ import java.util.Map;
import javax.jcr.Repository;
-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.osgi.framework.Constants;
import org.osgi.framework.ServiceReference;
import org.osgi.service.component.ComponentConstants;
@@ -45,14 +40,6 @@ import org.osgi.service.log.LogService;
* <p>
* To ensure this thread-safeness, said methods should not be overwritten.
*/
-@Component(componentAbstract = true)
-@References({
- @Reference(
- name = "Repository",
- policy = ReferencePolicy.DYNAMIC,
- cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE,
- referenceInterface = Repository.class)
-})
public abstract class AbstractRegistrationSupport {
/**
@@ -68,7 +55,6 @@ public abstract class AbstractRegistrationSupport {
* service as a reference or call the {@link #bindLog(LogService)} to enable
* logging correctly.
*/
- @Reference(cardinality = ReferenceCardinality.OPTIONAL_UNARY, policy = ReferencePolicy.DYNAMIC)
private volatile LogService log;
/**
@@ -363,7 +349,9 @@ public abstract class AbstractRegistrationSupport {
/** Unbinds the LogService */
protected void unbindLog(LogService log) {
- this.log = null;
+ if ( this.log == log ) {
+ this.log = null;
+ }
}
//---------- internal -----------------------------------------------------
diff --git a/src/main/java/org/apache/sling/jcr/registration/impl/JndiRegistrationSupport.java b/src/main/java/org/apache/sling/jcr/registration/impl/JndiRegistrationSupport.java
index 081473a..9b21241 100644
--- a/src/main/java/org/apache/sling/jcr/registration/impl/JndiRegistrationSupport.java
+++ b/src/main/java/org/apache/sling/jcr/registration/impl/JndiRegistrationSupport.java
@@ -31,6 +31,10 @@ import javax.naming.NamingException;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.ConfigurationPolicy;
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.References;
import org.apache.sling.jcr.registration.AbstractRegistrationSupport;
import org.osgi.service.log.LogService;
@@ -67,12 +71,23 @@ import org.osgi.service.log.LogService;
@Property(name = "service.vendor", value = "The Apache Software Foundation", propertyPrivate = true),
@Property(name = "service.description", value = "JNDI Repository Registration", propertyPrivate = true)
})
+@References({
+ @Reference(
+ name = "Repository",
+ policy = ReferencePolicy.DYNAMIC,
+ cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE,
+ referenceInterface = Repository.class),
+ @Reference(referenceInterface=LogService.class,
+ bind="bindLog", unbind="unbindLog",
+ cardinality = ReferenceCardinality.OPTIONAL_UNARY, policy = ReferencePolicy.DYNAMIC)
+})
public class JndiRegistrationSupport extends AbstractRegistrationSupport {
private Context jndiContext;
// ---------- SCR intergration ---------------------------------------------
+ @Override
protected boolean doActivate() {
@SuppressWarnings("unchecked")
Dictionary<String, Object> props = this.getComponentContext().getProperties();
@@ -104,6 +119,7 @@ public class JndiRegistrationSupport extends AbstractRegistrationSupport {
return false;
}
+ @Override
protected void doDeactivate() {
if (this.jndiContext != null) {
try {
@@ -136,6 +152,7 @@ public class JndiRegistrationSupport extends AbstractRegistrationSupport {
}
}
+ @Override
protected Object bindRepository(String name, Repository repository) {
if (this.jndiContext != null) {
@@ -153,6 +170,7 @@ public class JndiRegistrationSupport extends AbstractRegistrationSupport {
return null;
}
+ @Override
protected void unbindRepository(String name, Object data) {
if (this.jndiContext != null) {
try {
diff --git a/src/main/java/org/apache/sling/jcr/registration/impl/RmiRegistrationSupport.java b/src/main/java/org/apache/sling/jcr/registration/impl/RmiRegistrationSupport.java
index faf0583..0894e60 100644
--- a/src/main/java/org/apache/sling/jcr/registration/impl/RmiRegistrationSupport.java
+++ b/src/main/java/org/apache/sling/jcr/registration/impl/RmiRegistrationSupport.java
@@ -30,6 +30,10 @@ import javax.jcr.Repository;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.ConfigurationPolicy;
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.References;
import org.apache.jackrabbit.rmi.server.RemoteAdapterFactory;
import org.apache.jackrabbit.rmi.server.ServerAdapterFactory;
import org.apache.sling.jcr.registration.AbstractRegistrationSupport;
@@ -54,6 +58,16 @@ import org.osgi.service.log.LogService;
@Property(name = "service.vendor", value = "The Apache Software Foundation", propertyPrivate = true),
@Property(name = "service.description", value = "RMI based Repository Registration", propertyPrivate = true)
})
+@References({
+ @Reference(
+ name = "Repository",
+ policy = ReferencePolicy.DYNAMIC,
+ cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE,
+ referenceInterface = Repository.class),
+ @Reference(referenceInterface=LogService.class,
+ bind="bindLog", unbind="unbindLog",
+ cardinality = ReferenceCardinality.OPTIONAL_UNARY, policy = ReferencePolicy.DYNAMIC)
+})
public class RmiRegistrationSupport extends AbstractRegistrationSupport {
@Property(intValue = 1099, label = "%rmi.port.name", description = "%rmi.port.description")
@@ -74,6 +88,7 @@ public class RmiRegistrationSupport extends AbstractRegistrationSupport {
* registry is disabled, if the port property is negative. If the port is
* zero or not a number, the default port (1099) is assumed.
*/
+ @Override
protected boolean doActivate() {
Object portProp = this.getComponentContext().getProperties().get(
@@ -112,6 +127,7 @@ public class RmiRegistrationSupport extends AbstractRegistrationSupport {
* If a private registry has been acquired this method unexports the
* registry object to free the RMI registry OID for later use.
*/
+ @Override
protected void doDeactivate() {
// if we have a private RMI registry, unexport it here to free
// the RMI registry OID
@@ -130,10 +146,12 @@ public class RmiRegistrationSupport extends AbstractRegistrationSupport {
this.registry = null;
}
+ @Override
protected Object bindRepository(String name, Repository repository) {
return new RmiRegistration(name, repository);
}
+ @Override
protected void unbindRepository(String name, Object data) {
RmiRegistration rr = (RmiRegistration) data;
rr.unregister();
diff --git a/src/main/java/org/apache/sling/jcr/registration/package-info.java b/src/main/java/org/apache/sling/jcr/registration/package-info.java
index 1a1f77f..86981fd 100644
--- a/src/main/java/org/apache/sling/jcr/registration/package-info.java
+++ b/src/main/java/org/apache/sling/jcr/registration/package-info.java
@@ -23,9 +23,10 @@
* class which may be extended by service exposing JCR Repository services
* in any one non-OSGi registry such as RMI or JNDI.
*/
-@Version("1.0")
+@Version("1.1")
@Export(optional = "provide:=true")
package org.apache.sling.jcr.registration;
import aQute.bnd.annotation.Export;
import aQute.bnd.annotation.Version;
+
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.