You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by ni...@apache.org on 2018/08/15 13:28:51 UTC
metron git commit: METRON-1703 Make Core Profiler Components
Serializable (nickwallen) closes apache/metron#1145
Repository: metron
Updated Branches:
refs/heads/feature/METRON-1699-create-batch-profiler a1e25a4bf -> 4fb920167
METRON-1703 Make Core Profiler Components Serializable (nickwallen) closes apache/metron#1145
Project: http://git-wip-us.apache.org/repos/asf/metron/repo
Commit: http://git-wip-us.apache.org/repos/asf/metron/commit/4fb92016
Tree: http://git-wip-us.apache.org/repos/asf/metron/tree/4fb92016
Diff: http://git-wip-us.apache.org/repos/asf/metron/diff/4fb92016
Branch: refs/heads/feature/METRON-1699-create-batch-profiler
Commit: 4fb9201670acf9960087f004f8858e99c0a87981
Parents: a1e25a4
Author: nickwallen <ni...@nickallen.org>
Authored: Wed Aug 15 09:26:42 2018 -0400
Committer: nickallen <ni...@apache.org>
Committed: Wed Aug 15 09:26:42 2018 -0400
----------------------------------------------------------------------
.../profiler/DefaultMessageDistributor.java | 28 +++++++++++---------
.../metron/profiler/DefaultMessageRouter.java | 3 ++-
.../apache/metron/profiler/MessageRoute.java | 4 ++-
.../profiler/clock/DefaultClockFactory.java | 4 ++-
.../metron/profiler/clock/EventTimeClock.java | 3 ++-
5 files changed, 25 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metron/blob/4fb92016/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/DefaultMessageDistributor.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/DefaultMessageDistributor.java b/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/DefaultMessageDistributor.java
index 82f7174..c926a70 100644
--- a/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/DefaultMessageDistributor.java
+++ b/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/DefaultMessageDistributor.java
@@ -20,19 +20,11 @@
package org.apache.metron.profiler;
-import static java.lang.String.format;
-
import com.google.common.base.Ticker;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.RemovalListener;
import com.google.common.cache.RemovalNotification;
-import java.lang.invoke.MethodHandles;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.metron.common.configuration.profiler.ProfileConfig;
import org.apache.metron.stellar.dsl.Context;
@@ -40,6 +32,16 @@ import org.json.simple.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.Serializable;
+import java.lang.invoke.MethodHandles;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+
+import static java.lang.String.format;
+
/**
* The default implementation of a {@link MessageDistributor}.
*
@@ -57,7 +59,7 @@ import org.slf4j.LoggerFactory;
* lost.
*
*/
-public class DefaultMessageDistributor implements MessageDistributor {
+public class DefaultMessageDistributor implements MessageDistributor, Serializable {
protected static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@@ -73,7 +75,7 @@ public class DefaultMessageDistributor implements MessageDistributor {
* messages. Once it has not received messages for a period of time, it is
* moved to the expired cache.
*/
- private transient Cache<Integer, ProfileBuilder> activeCache;
+ private Cache<Integer, ProfileBuilder> activeCache;
/**
* A cache of expired profiles.
@@ -84,7 +86,7 @@ public class DefaultMessageDistributor implements MessageDistributor {
* can flush the state of the expired profile. If the client does not flush
* the expired profiles, this state will be lost forever.
*/
- private transient Cache<Integer, ProfileBuilder> expiredCache;
+ private Cache<Integer, ProfileBuilder> expiredCache;
/**
* Create a new message distributor.
@@ -287,7 +289,7 @@ public class DefaultMessageDistributor implements MessageDistributor {
/**
* A listener that is notified when profiles expire from the active cache.
*/
- private class ActiveCacheRemovalListener implements RemovalListener<Integer, ProfileBuilder> {
+ private class ActiveCacheRemovalListener implements RemovalListener<Integer, ProfileBuilder>, Serializable {
@Override
public void onRemoval(RemovalNotification<Integer, ProfileBuilder> notification) {
@@ -305,7 +307,7 @@ public class DefaultMessageDistributor implements MessageDistributor {
/**
* A listener that is notified when profiles expire from the active cache.
*/
- private class ExpiredCacheRemovalListener implements RemovalListener<Integer, ProfileBuilder> {
+ private class ExpiredCacheRemovalListener implements RemovalListener<Integer, ProfileBuilder>, Serializable {
@Override
public void onRemoval(RemovalNotification<Integer, ProfileBuilder> notification) {
http://git-wip-us.apache.org/repos/asf/metron/blob/4fb92016/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/DefaultMessageRouter.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/DefaultMessageRouter.java b/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/DefaultMessageRouter.java
index d1a1a3b..19bfa8c 100644
--- a/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/DefaultMessageRouter.java
+++ b/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/DefaultMessageRouter.java
@@ -30,6 +30,7 @@ import org.json.simple.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.Serializable;
import java.lang.invoke.MethodHandles;
import java.util.ArrayList;
import java.util.List;
@@ -44,7 +45,7 @@ import static java.lang.String.format;
* A single telemetry message may need to take multiple routes. This is the case
* when a message is needed by more than one profile.
*/
-public class DefaultMessageRouter implements MessageRouter {
+public class DefaultMessageRouter implements MessageRouter, Serializable {
protected static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
http://git-wip-us.apache.org/repos/asf/metron/blob/4fb92016/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/MessageRoute.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/MessageRoute.java b/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/MessageRoute.java
index 7288f03..680e4e8 100644
--- a/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/MessageRoute.java
+++ b/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/MessageRoute.java
@@ -22,6 +22,8 @@ package org.apache.metron.profiler;
import org.apache.metron.common.configuration.profiler.ProfileConfig;
+import java.io.Serializable;
+
/**
* Defines the 'route' a message must take through the Profiler.
*
@@ -33,7 +35,7 @@ import org.apache.metron.common.configuration.profiler.ProfileConfig;
*
* @see MessageRouter
*/
-public class MessageRoute {
+public class MessageRoute implements Serializable {
/**
* The definition of the profile on this route.
http://git-wip-us.apache.org/repos/asf/metron/blob/4fb92016/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/clock/DefaultClockFactory.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/clock/DefaultClockFactory.java b/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/clock/DefaultClockFactory.java
index d62e62b..8a574f6 100644
--- a/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/clock/DefaultClockFactory.java
+++ b/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/clock/DefaultClockFactory.java
@@ -21,6 +21,8 @@ package org.apache.metron.profiler.clock;
import org.apache.metron.common.configuration.profiler.ProfilerConfig;
+import java.io.Serializable;
+
/**
* Creates a {@link Clock} based on the profiler configuration.
*
@@ -29,7 +31,7 @@ import org.apache.metron.common.configuration.profiler.ProfilerConfig;
*
* <p>The default implementation of a {@link ClockFactory}.
*/
-public class DefaultClockFactory implements ClockFactory {
+public class DefaultClockFactory implements ClockFactory, Serializable {
/**
* @param config The profiler configuration.
http://git-wip-us.apache.org/repos/asf/metron/blob/4fb92016/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/clock/EventTimeClock.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/clock/EventTimeClock.java b/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/clock/EventTimeClock.java
index 5cd574e..c094b7d 100644
--- a/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/clock/EventTimeClock.java
+++ b/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/clock/EventTimeClock.java
@@ -26,6 +26,7 @@ import org.slf4j.LoggerFactory;
import java.lang.invoke.MethodHandles;
import java.util.Optional;
+import java.io.Serializable;
/**
* A {@link Clock} that advances based on event time.
@@ -33,7 +34,7 @@ import java.util.Optional;
* Event time is advanced by the timestamps contained within telemetry messages, rather
* than the system clock.
*/
-public class EventTimeClock implements Clock {
+public class EventTimeClock implements Clock, Serializable {
protected static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());