diff --git a/src/main/java/org/alfresco/heartbeat/CommunityHBDataCollector.java b/src/main/java/org/alfresco/heartbeat/CommunityHBDataCollector.java index 213d7ec32c..f133546798 100644 --- a/src/main/java/org/alfresco/heartbeat/CommunityHBDataCollector.java +++ b/src/main/java/org/alfresco/heartbeat/CommunityHBDataCollector.java @@ -25,13 +25,25 @@ */ package org.alfresco.heartbeat; +import java.io.IOException; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.security.GeneralSecurityException; +import java.util.Date; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +import org.alfresco.heartbeat.datasender.HBData; import org.alfresco.repo.descriptor.DescriptorDAO; import org.alfresco.repo.dictionary.CustomModelsInfo; import org.alfresco.repo.transaction.RetryingTransactionHelper; import org.alfresco.repo.usage.RepoUsageComponent; import org.alfresco.service.cmr.admin.RepoUsage; import org.alfresco.service.cmr.dictionary.CustomModelService; -import org.alfresco.service.cmr.repository.HBDataCollectorService; import org.alfresco.service.cmr.security.AuthorityService; import org.alfresco.service.cmr.security.AuthorityType; import org.alfresco.service.descriptor.Descriptor; @@ -39,18 +51,10 @@ import org.alfresco.service.license.LicenseException; import org.alfresco.service.transaction.TransactionService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.springframework.context.ApplicationContext; import org.springframework.extensions.surf.util.Base64; -import java.io.IOException; -import java.net.InetAddress; -import java.net.NetworkInterface; -import java.security.GeneralSecurityException; -import java.security.SecureRandom; -import java.text.SimpleDateFormat; -import java.util.*; - -public class CommunityHBDataCollector extends HBBaseDataCollector { +public class CommunityHBDataCollector extends HBBaseDataCollector +{ /** The logger. */ private static final Log logger = LogFactory.getLog(CommunityHBDataCollector.class); @@ -78,35 +82,39 @@ public class CommunityHBDataCollector extends HBBaseDataCollector { /** Provides information about custom models */ private CustomModelService customModelService; - public void setCurrentRepoDescriptorDAO(DescriptorDAO currentRepoDescriptorDAO) { + public void setCurrentRepoDescriptorDAO(DescriptorDAO currentRepoDescriptorDAO) + { this.currentRepoDescriptorDAO = currentRepoDescriptorDAO; } - public void setServerDescriptorDAO(DescriptorDAO serverDescriptorDAO) { + public void setServerDescriptorDAO(DescriptorDAO serverDescriptorDAO) + { this.serverDescriptorDAO = serverDescriptorDAO; } - public void setAuthorityService(AuthorityService authorityService) { + public void setAuthorityService(AuthorityService authorityService) + { this.authorityService = authorityService; } - public void setRepoUsageComponent(RepoUsageComponent repoUsageComponent) { + public void setRepoUsageComponent(RepoUsageComponent repoUsageComponent) + { this.repoUsageComponent = repoUsageComponent; } - public void setTransactionService(TransactionService transactionService) { + public void setTransactionService(TransactionService transactionService) + { this.transactionService = transactionService; } - public void setCustomModelService(CustomModelService customModelService) { + public void setCustomModelService(CustomModelService customModelService) + { this.customModelService = customModelService; } @Override public List collectData() { - - String timeStamp = new SimpleDateFormat("YYYY-MM-dd'T'HH:mm:ss.sss'Z'").format(new Date()); List collectedData = new LinkedList<>(); RetryingTransactionHelper.RetryingTransactionCallback initCallback = new RetryingTransactionHelper.RetryingTransactionCallback() @@ -120,7 +128,6 @@ public class CommunityHBDataCollector extends HBBaseDataCollector { }; transactionService.getRetryingTransactionHelper().doInTransaction(initCallback, true); - // collect repository info data logger.debug("Preparing repository info data..."); Map infoValues = new HashMap(); @@ -133,7 +140,7 @@ public class CommunityHBDataCollector extends HBBaseDataCollector { this.currentRepoDescriptorDAO.getDescriptor().getId(), "acs.repository.info", "1.0", - timeStamp, + new Date(), infoValues); collectedData.add(infoData); @@ -148,7 +155,7 @@ public class CommunityHBDataCollector extends HBBaseDataCollector { this.currentRepoDescriptorDAO.getDescriptor().getId(), "acs.repository.usage.system", "1.0", - timeStamp, + new Date(), systemUsageValues); collectedData.add(systemUsageData); @@ -171,7 +178,7 @@ public class CommunityHBDataCollector extends HBBaseDataCollector { this.currentRepoDescriptorDAO.getDescriptor().getId(), "acs.repository.usage.model", "1.0", - timeStamp, + new Date(), modelUsageValues); collectedData.add(modelUsageData); @@ -209,14 +216,13 @@ public class CommunityHBDataCollector extends HBBaseDataCollector { this.currentRepoDescriptorDAO.getDescriptor().getId(), "acs.repository.license", "1.0", - timeStamp, + new Date(), licenseValues); collectedData.add(licenseData); return collectedData; } - /** * Initializes static parameters on first invocation. Avoid doing it on construction due to bootstrap dependencies * (e.g. patch service must have run) diff --git a/src/main/java/org/alfresco/heartbeat/HBBaseDataCollector.java b/src/main/java/org/alfresco/heartbeat/HBBaseDataCollector.java index 46540c9dc6..dbff6352ac 100644 --- a/src/main/java/org/alfresco/heartbeat/HBBaseDataCollector.java +++ b/src/main/java/org/alfresco/heartbeat/HBBaseDataCollector.java @@ -27,6 +27,7 @@ package org.alfresco.heartbeat; import java.util.List; +import org.alfresco.heartbeat.datasender.HBData; import org.alfresco.service.cmr.repository.HBDataCollectorService; public abstract class HBBaseDataCollector diff --git a/src/main/java/org/alfresco/heartbeat/HBDataCollectorServiceImpl.java b/src/main/java/org/alfresco/heartbeat/HBDataCollectorServiceImpl.java index bf5e1a6608..61836dac18 100644 --- a/src/main/java/org/alfresco/heartbeat/HBDataCollectorServiceImpl.java +++ b/src/main/java/org/alfresco/heartbeat/HBDataCollectorServiceImpl.java @@ -28,21 +28,25 @@ package org.alfresco.heartbeat; import java.util.LinkedList; import java.util.List; +import org.alfresco.heartbeat.datasender.HBData; +import org.alfresco.heartbeat.datasender.HBDataSenderService; import org.alfresco.service.cmr.repository.HBDataCollectorService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.springframework.context.ApplicationContext; public class HBDataCollectorServiceImpl implements HBDataCollectorService { - /** The logger. */ private static final Log logger = LogFactory.getLog(HBDataCollectorServiceImpl.class); private List collectors = new LinkedList<>(); -// private HBDataSenderService dataSender; + private HBDataSenderService hbDataSenderService; private boolean enabled; + public void setHbDataSenderService(HBDataSenderService hbDataSenderService) + { + this.hbDataSenderService = hbDataSenderService; + } @Override public void registerCollector(HBBaseDataCollector collector) @@ -55,17 +59,15 @@ public class HBDataCollectorServiceImpl implements HBDataCollectorService { for (HBBaseDataCollector collector : collectors) { - List data = collector.collectData(); - -// try -// { -// dataSender.sendData(data); -// } -// catch (Exception e) -// { -// // log exception; -// } + try + { + hbDataSenderService.sendData(data); + } + catch (Exception e) + { + // log exception; + } } } diff --git a/src/main/java/org/alfresco/heartbeat/HeartBeat.java b/src/main/java/org/alfresco/heartbeat/HeartBeat.java index a4c34c9a99..853c8539b2 100644 --- a/src/main/java/org/alfresco/heartbeat/HeartBeat.java +++ b/src/main/java/org/alfresco/heartbeat/HeartBeat.java @@ -25,51 +25,27 @@ */ package org.alfresco.heartbeat; -import org.alfresco.repo.descriptor.DescriptorDAO; -import org.alfresco.repo.dictionary.CustomModelsInfo; -import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; -import org.alfresco.repo.usage.RepoUsageComponent; -import org.alfresco.service.cmr.admin.RepoUsage; -import org.alfresco.service.cmr.dictionary.CustomModelService; +import java.io.IOException; +import java.security.GeneralSecurityException; +import java.util.Date; + import org.alfresco.service.cmr.repository.HBDataCollectorService; -import org.alfresco.service.cmr.security.AuthorityService; -import org.alfresco.service.cmr.security.AuthorityType; -import org.alfresco.service.descriptor.Descriptor; import org.alfresco.service.license.LicenseDescriptor; -import org.alfresco.service.license.LicenseException; import org.alfresco.service.license.LicenseService; import org.alfresco.service.license.LicenseService.LicenseChangeHandler; -import org.alfresco.service.transaction.TransactionService; -import org.alfresco.traitextender.SpringExtensionBundle; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.json.JSONException; -import org.json.JSONObject; -import org.quartz.*; +import org.quartz.Job; +import org.quartz.JobDataMap; +import org.quartz.JobDetail; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.quartz.Scheduler; +import org.quartz.SchedulerException; +import org.quartz.SimpleTrigger; +import org.quartz.Trigger; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext; -import org.springframework.extensions.surf.util.Base64; - -import javax.sql.DataSource; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStreamWriter; -import java.lang.reflect.Method; -import java.net.HttpURLConnection; -import java.net.InetAddress; -import java.net.NetworkInterface; -import java.net.URL; -import java.security.GeneralSecurityException; -import java.security.KeyStore; -import java.security.PublicKey; -import java.security.SecureRandom; -import java.security.cert.Certificate; -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.text.SimpleDateFormat; -import java.util.*; /** * This class communicates some very basic repository statistics to Alfresco on a regular basis. @@ -205,13 +181,13 @@ public class HeartBeat implements LicenseChangeHandler * @throws GeneralSecurityException * an encryption related exception */ - public void sendData() throws IOException, GeneralSecurityException + public void collectAndSendData() throws IOException, GeneralSecurityException { this.dataCollectorService.collectAndSendData(); } /** - * Listens for license changes. If a license is change or removed, the heartbeat job is resheduled. + * Listens for license changes. If a license is change or removed, the heartbeat job is rescheduled. */ public synchronized void onLicenseChange(LicenseDescriptor licenseDescriptor) { @@ -297,7 +273,7 @@ public class HeartBeat implements LicenseChangeHandler final HeartBeat heartBeat = (HeartBeat) dataMap.get("heartBeat"); try { - heartBeat.sendData(); + heartBeat.collectAndSendData(); } catch (final Exception e) { diff --git a/src/main/resources/alfresco/heartbeat-context.xml b/src/main/resources/alfresco/heartbeat-context.xml index a951267d27..dd63dfed9a 100644 --- a/src/main/resources/alfresco/heartbeat-context.xml +++ b/src/main/resources/alfresco/heartbeat-context.xml @@ -3,8 +3,12 @@ + + + +