source: ccr/trunk/nhin-vista/projects/NHINC/Current/Product/Production/Gateway/SubscriptionRepository/src/gov/hhs/fha/nhinc/subscription/repository/service/SubscriptionRepositoryFactory.java@ 507

Last change on this file since 507 was 507, checked in by George Lilly, 15 years ago

NHIN gateway and adaptor for use on linux with VistA EHR and RPMS

File size: 3.8 KB
Line 
1package gov.hhs.fha.nhinc.subscription.repository.service;
2
3import gov.hhs.fha.nhinc.properties.PropertyAccessor;
4import gov.hhs.fha.nhinc.subscription.repository.SubscriptionRepositoryException;
5import org.apache.commons.logging.Log;
6import org.apache.commons.logging.LogFactory;
7
8/**
9 * Factory for getting an instance of the subscription repository service
10 *
11 * @author Neil Webb
12 */
13public class SubscriptionRepositoryFactory
14{
15 private static Log log = LogFactory.getLog(SubscriptionRepositoryFactory.class);
16 private static final String PROPERTIES_FILE_NAME = "gateway";
17 private static final String IMPL_CLASS_NAME_KEY = "subscription.repository.implementation.class";
18
19 /**
20 * Create a subscription repository service object. The implementation class
21 * for the subscription repository service is defined in the
22 * gateway.properties file using the key:
23 * "subscription.repository.implementation.class"
24 *
25 * @return Subscription repository service instance.
26 * @throws gov.hhs.fha.nhinc.subscription.repository.SubscriptionRepositoryException
27 */
28 public SubscriptionRepositoryService getSubscriptionRepositoryService() throws SubscriptionRepositoryException
29 {
30 SubscriptionRepositoryService repositoryService = null;
31 String errorMessage = "Unknown error creating subscription repository service";
32
33 String implClassName = null;
34 try
35 {
36 log.debug("Retrieving the subscription repository class name");
37 implClassName = PropertyAccessor.getProperty(PROPERTIES_FILE_NAME, IMPL_CLASS_NAME_KEY);
38 log.debug("Retrieved the subscription repository class name: " + implClassName);
39 }
40 catch (Throwable t)
41 {
42 errorMessage = "An error occured locating the implementation class " +
43 "for the subscription repository service. Please ensure " +
44 "that the implementation class is defined in the " +
45 "gateway.properties file using the key: " +
46 "\"subscription.repository.implementation.class\". The " +
47 "error message was: " + t.getMessage();
48 log.error("Error retrieving the subscription implementaion class name: " + t.getMessage(), t);
49 }
50 if ((implClassName == null) || ("".equals(implClassName.trim())))
51 {
52 if (errorMessage == null)
53 {
54 errorMessage = "Unable to locate the implementation class " +
55 "for the subscription repository service. Please ensure " +
56 "that the implementation class is defined in the " +
57 "gateway.properties file using the key: " +
58 "\"subscription.repository.implementation.class\".";
59 }
60 }
61 else
62 {
63 try
64 {
65 log.debug("Instantiating the subscription repository service using the class name: " + implClassName);
66 repositoryService = (SubscriptionRepositoryService) Class.forName(implClassName).newInstance();
67 }
68 catch (Throwable t)
69 {
70 errorMessage = "Unable to instantiate the implementation class " +
71 "for the subscription repository service. The class " +
72 "name provided was: " + implClassName +
73 ". Please ensure that this class exists and is " +
74 "accessable. The exception was: " + t.getMessage();
75
76 log.error("Error instantiating the subscription implementaion class: " + t.getMessage(), t);
77 }
78 }
79
80 if (repositoryService == null)
81 {
82 log.error(errorMessage);
83 throw new SubscriptionRepositoryException(errorMessage);
84 }
85
86 return repositoryService;
87 }
88}
Note: See TracBrowser for help on using the repository browser.