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)

Reply via email to