Skip to content

Commit

Permalink
Enable to add new LdapDicomConfigurationExtension by CDI Producers fix
Browse files Browse the repository at this point in the history
  • Loading branch information
gunterze committed Sep 30, 2020
1 parent 9b91d1a commit 1a41580
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.enterprise.context.ApplicationScoped;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.*;
Expand All @@ -73,7 +74,8 @@
* @author Vrinda Nayak <vrinda.nayak@j4care.com>
* @since Jul 2015
*/
class LdapArchiveConfiguration extends LdapDicomConfigurationExtension {
@ApplicationScoped
public class LdapArchiveConfiguration extends LdapDicomConfigurationExtension {

private static final Logger LOG = LoggerFactory.getLogger(LdapArchiveConfiguration.class);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,9 @@
import org.dcm4chee.arc.conf.ui.ldap.LdapArchiveUIConfiguration;

import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Instance;
import javax.enterprise.inject.Produces;
import javax.inject.Inject;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
Expand All @@ -63,6 +65,7 @@
import java.nio.file.Paths;
import java.util.Hashtable;
import java.util.Properties;
import java.util.stream.Stream;

/**
* @author Gunter Zeilinger <gunterze@gmail.com>
Expand All @@ -76,46 +79,71 @@ public class LdapArchiveConfigurationFactory {
private static final String APP_NAME_PROPERTY = "org.dcm4chee.arc.AppName";
private static final String DEF_APP_NAME = "dcm4chee-arc";

private static final LdapDicomConfigurationExtension[] configExts() {
return new LdapDicomConfigurationExtension[]{
@Inject
private Instance<LdapDicomConfigurationExtension> configExts;

@Produces
@ApplicationScoped
private static LdapAuditLoggerConfiguration ldapAuditLoggerConfiguration =
new LdapAuditLoggerConfiguration();

@Produces
@ApplicationScoped
private static LdapAuditRecordRepositoryConfiguration ldapAuditRecordRepositoryConfiguration =
new LdapAuditRecordRepositoryConfiguration();

@Produces
@ApplicationScoped
private static LdapImageReaderConfiguration ldapImageReaderConfiguration =
new LdapImageReaderConfiguration();

@Produces
@ApplicationScoped
private static LdapImageWriterConfiguration ldapImageWriterConfiguration =
new LdapImageWriterConfiguration();

@Produces
@ApplicationScoped
private static LdapHL7Configuration newLdapHL7Configuration() {
LdapHL7Configuration hl7Config = new LdapHL7Configuration();
hl7Config.addHL7ConfigurationExtension(new LdapArchiveHL7Configuration());
return hl7Config;
}

public static DicomConfiguration newLdapDicomConfiguration(URL envURL)
throws ConfigurationException {
return newLdapDicomConfiguration(envURL, Stream.of(
new LdapAuditLoggerConfiguration(),
new LdapAuditRecordRepositoryConfiguration(),
new LdapImageReaderConfiguration(),
new LdapImageWriterConfiguration(),
new LdapArchiveConfiguration(),
new LdapArchiveUIConfiguration(),
newLdapHL7Configuration()
};
};

private static LdapDicomConfigurationExtension newLdapHL7Configuration() {
LdapHL7Configuration hl7Config = new LdapHL7Configuration();
hl7Config.addHL7ConfigurationExtension(new LdapArchiveHL7Configuration());
return hl7Config;
newLdapHL7Configuration()));
}

public static DicomConfiguration newLdapDicomConfiguration(URL envURL)
private static DicomConfiguration newLdapDicomConfiguration(URL envURL,
Stream<LdapDicomConfigurationExtension> configExts)
throws ConfigurationException {
try {
return newLdapDicomConfiguration(loadProperties(envURL));
return newLdapDicomConfiguration(loadProperties(envURL), configExts);
} catch (IOException e) {
throw new ConfigurationException("Failed to load LDAP properties from " + envURL, e);
}
}

public static LdapDicomConfiguration newLdapDicomConfiguration(Hashtable<?, ?> env)
private static LdapDicomConfiguration newLdapDicomConfiguration(Hashtable<?, ?> env,
Stream<LdapDicomConfigurationExtension> configExts)
throws ConfigurationException {
LdapDicomConfiguration config = new LdapDicomConfiguration(env);
for (LdapDicomConfigurationExtension ext : configExts()) {
config.addDicomConfigurationExtension(ext);
}
configExts.forEach(config::addDicomConfigurationExtension);
return config;
}

@Produces
@ApplicationScoped
public DicomConfiguration newLdapDicomConfiguration() throws ConfigurationException {
return newLdapDicomConfiguration(envURL());
return newLdapDicomConfiguration(envURL(), configExts.stream());
}

@Produces
Expand Down Expand Up @@ -150,7 +178,7 @@ private static Properties loadProperties(URL url) throws IOException {
return p;
}

private URL envURL() {
private static URL envURL() {
String appName = System.getProperty(APP_NAME_PROPERTY, DEF_APP_NAME);
String configDir = System.getProperty(JBOSS_SERVER_CONFIG_DIR);
Path path = Paths.get(configDir, appName, LDAP_PROPERTIES);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
import org.dcm4che3.net.Device;
import org.dcm4chee.arc.conf.ui.*;

import javax.enterprise.context.ApplicationScoped;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.*;
Expand All @@ -60,6 +61,7 @@
* @author Shefki Esadi <shralsheki@gmail.com>
* @since Nov 2017
*/
@ApplicationScoped
public class LdapArchiveUIConfiguration extends LdapDicomConfigurationExtension {

@Override
Expand Down

0 comments on commit 1a41580

Please sign in to comment.