This is an automated email from the ASF dual-hosted git repository.
sblackmon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/streams.git
The following commit(s) were added to refs/heads/master by this push:
new c36a134 resolves STREAMS-635
new dfb1ff5 Merge pull request #476 from steveblackmon/STREAMS-635
c36a134 is described below
commit c36a134263bfd4b661ea3b12fb7bbcc9e20a5aee
Author: Steve Blackmon <[email protected]>
AuthorDate: Sat Feb 16 11:26:11 2019 -0600
resolves STREAMS-635
---
.../org/apache/streams/fullcontact/FullContact.java | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git
a/streams-contrib/streams-processor-fullcontact/src/main/java/org/apache/streams/fullcontact/FullContact.java
b/streams-contrib/streams-processor-fullcontact/src/main/java/org/apache/streams/fullcontact/FullContact.java
index c79c70a..e153825 100644
---
a/streams-contrib/streams-processor-fullcontact/src/main/java/org/apache/streams/fullcontact/FullContact.java
+++
b/streams-contrib/streams-processor-fullcontact/src/main/java/org/apache/streams/fullcontact/FullContact.java
@@ -18,6 +18,7 @@
package org.apache.streams.fullcontact;
+import org.apache.streams.config.ComponentConfigurator;
import org.apache.streams.fullcontact.api.EnrichCompanyRequest;
import org.apache.streams.fullcontact.api.EnrichPersonRequest;
import org.apache.streams.fullcontact.config.FullContactConfiguration;
@@ -33,6 +34,8 @@ import org.apache.juneau.rest.client.RestClientBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
/**
@@ -50,7 +53,23 @@ public class FullContact implements CompanyEnrichment,
PersonEnrichment {
RestClientBuilder restClientBuilder;
RestClient restClient;
- private FullContact(FullContactConfiguration configuration) throws
InstantiationException {
+ private static Map<FullContactConfiguration, FullContact> INSTANCE_MAP = new
ConcurrentHashMap<>();
+
+ public static FullContact getInstance() throws InstantiationException {
+ return getInstance(new
ComponentConfigurator<>(FullContactConfiguration.class).detectConfiguration());
+ }
+
+ public static FullContact getInstance(FullContactConfiguration
configuration) throws InstantiationException {
+ if (INSTANCE_MAP.containsKey(configuration) &&
INSTANCE_MAP.get(configuration) != null) {
+ return INSTANCE_MAP.get(configuration);
+ } else {
+ FullContact fullContact = new FullContact(configuration);
+ INSTANCE_MAP.put(configuration, fullContact);
+ return INSTANCE_MAP.get(configuration);
+ }
+ }
+
+ private FullContact(FullContactConfiguration configuration) {
this.configuration = configuration;
this.parser = JsonParser.DEFAULT.builder()
.ignoreUnknownBeanProperties(true)