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:25:33 UTC
[sling-org-apache-sling-discovery-base] 03/09: SLING-5173 : rename
commons impl packages to base as they are meant for reuse by discovery.impl
and discovery.oak - plus avoid using abstract component class with scr
annotations - use abstract getters instead - plus some more fine-tuning of
log messages - plus make discovery.impl's Config also implement
DiscoveryLiteConfig - plus properly handle binds happening before activate
in DiscoveryServiceImpl
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.discovery.base-1.0.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-discovery-base.git
commit e37566826399bf3faf79c1b16e38fee80b1720c5
Author: Stefan Egli <st...@apache.org>
AuthorDate: Wed Oct 21 08:29:08 2015 +0000
SLING-5173 : rename commons impl packages to base as they are meant for reuse by discovery.impl and discovery.oak - plus avoid using abstract component class with scr annotations - use abstract getters instead - plus some more fine-tuning of log messages - plus make discovery.impl's Config also implement DiscoveryLiteConfig - plus properly handle binds happening before activate in DiscoveryServiceImpl
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/discovery/base@1709751 13f79535-47bb-0310-9956-ffa450edef68
---
.../base/commons/BaseDiscoveryService.java | 17 ++----
.../discovery/base/commons/BaseViewChecker.java | 66 +++++++++-------------
.../base/commons/DummyDiscoveryService.java | 15 -----
.../announcement/AnnouncementRegistryImplTest.java | 2 +-
.../connectors/ping/ConnectorRegistryImplTest.java | 2 +-
.../discovery/base/its/setup/VirtualInstance.java | 2 +-
.../base/its/setup/VirtualInstanceBuilder.java | 2 +-
.../base/its/setup/mock/DummyViewChecker.java | 47 +++++++++++++++
8 files changed, 84 insertions(+), 69 deletions(-)
diff --git a/src/main/java/org/apache/sling/discovery/base/commons/BaseDiscoveryService.java b/src/main/java/org/apache/sling/discovery/base/commons/BaseDiscoveryService.java
index cf9563d..40afb95 100644
--- a/src/main/java/org/apache/sling/discovery/base/commons/BaseDiscoveryService.java
+++ b/src/main/java/org/apache/sling/discovery/base/commons/BaseDiscoveryService.java
@@ -47,12 +47,6 @@ public abstract class BaseDiscoveryService implements DiscoveryService {
protected abstract void handleIsolatedFromTopology();
- public abstract void updateProperties();
-
- public abstract void handlePotentialTopologyChange();
-
- public abstract void handleTopologyChanging();
-
protected DefaultTopologyView getOldView() {
return oldView;
}
@@ -69,16 +63,17 @@ public abstract class BaseDiscoveryService implements DiscoveryService {
* @see DiscoveryService#getTopology()
*/
public TopologyView getTopology() {
- ClusterViewService clusterViewService = getClusterViewService();
- if (clusterViewService == null) {
- throw new IllegalStateException(
- "DiscoveryService not yet initialized with IClusterViewService");
- }
// create a new topology view
final DefaultTopologyView topology = new DefaultTopologyView();
LocalClusterView localClusterView = null;
try {
+ ClusterViewService clusterViewService = getClusterViewService();
+ if (clusterViewService == null) {
+ throw new UndefinedClusterViewException(
+ Reason.REPOSITORY_EXCEPTION,
+ "no ClusterViewService available at the moment");
+ }
localClusterView = clusterViewService.getLocalClusterView();
topology.setLocalClusterView(localClusterView);
} catch (UndefinedClusterViewException e) {
diff --git a/src/main/java/org/apache/sling/discovery/base/commons/BaseViewChecker.java b/src/main/java/org/apache/sling/discovery/base/commons/BaseViewChecker.java
index 516e8ec..754bb18 100644
--- a/src/main/java/org/apache/sling/discovery/base/commons/BaseViewChecker.java
+++ b/src/main/java/org/apache/sling/discovery/base/commons/BaseViewChecker.java
@@ -28,7 +28,6 @@ import java.util.UUID;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.commons.scheduler.Scheduler;
import org.apache.sling.discovery.base.connectors.BaseConfig;
@@ -66,27 +65,6 @@ public abstract class BaseViewChecker implements ViewChecker, Runnable, StartupL
/** the name used for the period job with the scheduler **/
protected String NAME = "discovery.impl.heartbeat.runner.";
- @Reference
- protected SlingSettingsService slingSettingsService;
-
- @Reference
- protected ResourceResolverFactory resourceResolverFactory;
-
- @Reference
- protected ConnectorRegistry connectorRegistry;
-
- @Reference
- protected AnnouncementRegistry announcementRegistry;
-
- @Reference
- protected Scheduler scheduler;
-
- @Reference
- protected BaseConfig connectorConfig;
-
- /** the discovery service reference is used to get properties updated before heartbeats are sent **/
- protected BaseDiscoveryService discoveryService;
-
/** the sling id of the local instance **/
protected String slingId;
@@ -116,6 +94,18 @@ public abstract class BaseViewChecker implements ViewChecker, Runnable, StartupL
startupFinished(mode);
}
}
+
+ protected abstract SlingSettingsService getSlingSettingsService();
+
+ protected abstract ResourceResolverFactory getResourceResolverFactory();
+
+ protected abstract ConnectorRegistry getConnectorRegistry();
+
+ protected abstract AnnouncementRegistry getAnnouncementRegistry();
+
+ protected abstract Scheduler getScheduler();
+
+ protected abstract BaseConfig getConnectorConfig();
public void startupFinished(StartupMode mode) {
synchronized(lock) {
@@ -133,7 +123,7 @@ public abstract class BaseViewChecker implements ViewChecker, Runnable, StartupL
synchronized(lock) {
this.context = context;
- slingId = slingSettingsService.getSlingId();
+ slingId = getSlingSettingsService().getSlingId();
NAME = "discovery.connectors.common.runner." + slingId;
doActivate();
@@ -143,9 +133,9 @@ public abstract class BaseViewChecker implements ViewChecker, Runnable, StartupL
protected void doActivate() {
try {
- final long interval = connectorConfig.getConnectorPingInterval();
+ final long interval = getConnectorConfig().getConnectorPingInterval();
logger.info("doActivate: starting periodic connectorPing job for "+slingId+" with interval "+interval+" sec.");
- scheduler.addPeriodicJob(NAME, this,
+ getScheduler().addPeriodicJob(NAME, this,
null, interval, false);
} catch (Exception e) {
logger.error("doActivate: Could not start connectorPing runner: " + e, e);
@@ -158,7 +148,7 @@ public abstract class BaseViewChecker implements ViewChecker, Runnable, StartupL
// SLING-3365 : dont synchronize on deactivate
activated = false;
logger.info("deactivate: deactivated slingId: {}, this: {}", slingId, this);
- scheduler.removeJob(NAME);
+ getScheduler().removeJob(NAME);
}
/** for testing only **/
@@ -175,7 +165,7 @@ public abstract class BaseViewChecker implements ViewChecker, Runnable, StartupL
@Override
public void heartbeatAndCheckView() {
- logger.info("run: start. [ConnectorPinger of slingId="+slingId+"]");
+ logger.debug("run: start. [for slingId="+slingId+"]");
synchronized(lock) {
if (!activated) {
// SLING:2895: avoid heartbeats if not activated
@@ -189,7 +179,7 @@ public abstract class BaseViewChecker implements ViewChecker, Runnable, StartupL
// check the view
doCheckView();
}
- logger.info("run: end. [ConnectorPinger of slingId="+slingId+"]");
+ logger.debug("run: end. [for slingId="+slingId+"]");
}
/** Trigger the issuance of the next heartbeat asap instead of at next heartbeat interval **/
@@ -201,7 +191,7 @@ public abstract class BaseViewChecker implements ViewChecker, Runnable, StartupL
// 'fireJob' checks for a job from the same job-class to already exist
// 'fireJobAt' though allows to pass a name for the job - which can be made unique, thus does not conflict/already-exist
logger.info("triggerConnectorPing: firing job to trigger heartbeat");
- scheduler.fireJobAt(NAME+UUID.randomUUID(), this, null, new Date(System.currentTimeMillis()-1000 /* make sure it gets triggered immediately*/));
+ getScheduler().fireJobAt(NAME+UUID.randomUUID(), this, null, new Date(System.currentTimeMillis()-1000 /* make sure it gets triggered immediately*/));
} catch (Exception e) {
logger.info("triggerConnectorPing: Could not trigger heartbeat: " + e);
}
@@ -216,18 +206,16 @@ public abstract class BaseViewChecker implements ViewChecker, Runnable, StartupL
* which announce this part of the topology to others)
*/
protected void issueHeartbeat() {
- if (discoveryService == null) {
- logger.error("issueHeartbeat: discoveryService is null");
- } else {
- discoveryService.updateProperties();
- }
-// issueClusterLocalHeartbeat();
+ updateProperties();
+
issueConnectorPings();
}
+ protected abstract void updateProperties();
+
/** Issue a remote heartbeat using the topology connectors **/
protected void issueConnectorPings() {
- if (connectorRegistry == null) {
+ if (getConnectorRegistry() == null) {
logger.error("issueConnectorPings: connectorRegistry is null");
return;
}
@@ -238,7 +226,7 @@ public abstract class BaseViewChecker implements ViewChecker, Runnable, StartupL
if (logger.isDebugEnabled()) {
logger.debug("issueConnectorPings: pinging outgoing topology connectors (if there is any) for "+slingId);
}
- connectorRegistry.pingOutgoingConnectors(forcePing);
+ getConnectorRegistry().pingOutgoingConnectors(forcePing);
forcePing = false;
}
@@ -247,11 +235,11 @@ public abstract class BaseViewChecker implements ViewChecker, Runnable, StartupL
*/
protected void doCheckView() {
// check the remotes first
- if (announcementRegistry == null) {
+ if (getAnnouncementRegistry() == null) {
logger.error("announcementRegistry is null");
return;
}
- announcementRegistry.checkExpiredAnnouncements();
+ getAnnouncementRegistry().checkExpiredAnnouncements();
}
/**
diff --git a/src/test/java/org/apache/sling/discovery/base/commons/DummyDiscoveryService.java b/src/test/java/org/apache/sling/discovery/base/commons/DummyDiscoveryService.java
index ddde4fc..c7928ab 100644
--- a/src/test/java/org/apache/sling/discovery/base/commons/DummyDiscoveryService.java
+++ b/src/test/java/org/apache/sling/discovery/base/commons/DummyDiscoveryService.java
@@ -39,11 +39,6 @@ public class DummyDiscoveryService extends BaseDiscoveryService {
}
@Override
- public void updateProperties() {
- throw new IllegalStateException("updateProperties not yet impl");
- }
-
- @Override
protected ClusterViewService getClusterViewService() {
return clusterViewService;
}
@@ -58,14 +53,4 @@ public class DummyDiscoveryService extends BaseDiscoveryService {
throw new IllegalStateException("handleIsolatedFromTopology not yet impl");
}
- @Override
- public void handlePotentialTopologyChange() {
- throw new IllegalStateException("handlePotentialTopologyChange not yet impl");
- }
-
- @Override
- public void handleTopologyChanging() {
- throw new IllegalStateException("handleTopologyChanging not yet impl");
- }
-
}
diff --git a/src/test/java/org/apache/sling/discovery/base/connectors/announcement/AnnouncementRegistryImplTest.java b/src/test/java/org/apache/sling/discovery/base/connectors/announcement/AnnouncementRegistryImplTest.java
index 6a38bea..062a56b 100644
--- a/src/test/java/org/apache/sling/discovery/base/connectors/announcement/AnnouncementRegistryImplTest.java
+++ b/src/test/java/org/apache/sling/discovery/base/connectors/announcement/AnnouncementRegistryImplTest.java
@@ -40,7 +40,7 @@ import org.apache.sling.discovery.base.its.setup.mock.MockFactory;
import org.apache.sling.discovery.base.its.setup.mock.SimpleConnectorConfig;
import org.apache.sling.discovery.commons.providers.DefaultClusterView;
import org.apache.sling.discovery.commons.providers.DefaultInstanceDescription;
-import org.apache.sling.discovery.commons.providers.spi.impl.DummySlingSettingsService;
+import org.apache.sling.discovery.commons.providers.spi.base.DummySlingSettingsService;
import org.junit.Before;
import org.junit.Test;
diff --git a/src/test/java/org/apache/sling/discovery/base/connectors/ping/ConnectorRegistryImplTest.java b/src/test/java/org/apache/sling/discovery/base/connectors/ping/ConnectorRegistryImplTest.java
index 9972e85..f743418 100644
--- a/src/test/java/org/apache/sling/discovery/base/connectors/ping/ConnectorRegistryImplTest.java
+++ b/src/test/java/org/apache/sling/discovery/base/connectors/ping/ConnectorRegistryImplTest.java
@@ -31,7 +31,7 @@ import org.apache.sling.discovery.base.its.setup.VirtualInstance;
import org.apache.sling.discovery.base.its.setup.VirtualInstanceBuilder;
import org.apache.sling.discovery.base.its.setup.mock.MockFactory;
import org.apache.sling.discovery.base.its.setup.mock.SimpleConnectorConfig;
-import org.apache.sling.discovery.commons.providers.spi.impl.DummySlingSettingsService;
+import org.apache.sling.discovery.commons.providers.spi.base.DummySlingSettingsService;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
diff --git a/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstance.java b/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstance.java
index a21becb..9e10871 100644
--- a/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstance.java
+++ b/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstance.java
@@ -338,7 +338,7 @@ public class VirtualInstance {
try {
stopViewChecker();
} catch (Throwable e) {
- throw new Exception("Caught Throwable in stopConnectorPinger: "+e, e);
+ throw new Exception("Caught Throwable in stop(): "+e, e);
}
if (resourceResolver != null) {
diff --git a/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstanceBuilder.java b/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstanceBuilder.java
index feaaf97..fb287d6 100644
--- a/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstanceBuilder.java
+++ b/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstanceBuilder.java
@@ -33,7 +33,7 @@ import org.apache.sling.discovery.base.connectors.announcement.AnnouncementRegis
import org.apache.sling.discovery.base.connectors.ping.ConnectorRegistry;
import org.apache.sling.discovery.base.connectors.ping.ConnectorRegistryImpl;
import org.apache.sling.discovery.base.its.setup.mock.FailingScheduler;
-import org.apache.sling.discovery.commons.providers.spi.impl.DummySlingSettingsService;
+import org.apache.sling.discovery.commons.providers.spi.base.DummySlingSettingsService;
import org.apache.sling.settings.SlingSettingsService;
import junitx.util.PrivateAccessor;
diff --git a/src/test/java/org/apache/sling/discovery/base/its/setup/mock/DummyViewChecker.java b/src/test/java/org/apache/sling/discovery/base/its/setup/mock/DummyViewChecker.java
index e66ec09..e83556c 100644
--- a/src/test/java/org/apache/sling/discovery/base/its/setup/mock/DummyViewChecker.java
+++ b/src/test/java/org/apache/sling/discovery/base/its/setup/mock/DummyViewChecker.java
@@ -18,6 +18,7 @@
*/
package org.apache.sling.discovery.base.its.setup.mock;
+import org.apache.felix.scr.annotations.Reference;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.commons.scheduler.Scheduler;
import org.apache.sling.discovery.base.commons.BaseViewChecker;
@@ -28,6 +29,18 @@ import org.apache.sling.settings.SlingSettingsService;
public class DummyViewChecker extends BaseViewChecker {
+ protected SlingSettingsService slingSettingsService;
+
+ protected ResourceResolverFactory resourceResolverFactory;
+
+ protected ConnectorRegistry connectorRegistry;
+
+ protected AnnouncementRegistry announcementRegistry;
+
+ protected Scheduler scheduler;
+
+ protected BaseConfig connectorConfig;
+
public static DummyViewChecker testConstructor(
SlingSettingsService slingSettingsService,
ResourceResolverFactory resourceResolverFactory,
@@ -45,4 +58,38 @@ public class DummyViewChecker extends BaseViewChecker {
return pinger;
}
+ @Override
+ protected SlingSettingsService getSlingSettingsService() {
+ return slingSettingsService;
+ }
+
+ @Override
+ protected ResourceResolverFactory getResourceResolverFactory() {
+ return resourceResolverFactory;
+ }
+
+ @Override
+ protected ConnectorRegistry getConnectorRegistry() {
+ return connectorRegistry;
+ }
+
+ @Override
+ protected AnnouncementRegistry getAnnouncementRegistry() {
+ return announcementRegistry;
+ }
+
+ @Override
+ protected Scheduler getScheduler() {
+ return scheduler;
+ }
+
+ @Override
+ protected BaseConfig getConnectorConfig() {
+ return connectorConfig;
+ }
+
+ @Override
+ protected void updateProperties() {
+ // nothing done for the dummyViewChecker
+ }
}
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.