diff --git a/java/tracking-server-core/src/main/java/gov/va/med/edp/dao/rpc/VistaLinkBigBoardDao.java b/java/tracking-server-core/src/main/java/gov/va/med/edp/dao/rpc/VistaLinkBigBoardDao.java
index ce82b39..afe054d 100644
--- a/java/tracking-server-core/src/main/java/gov/va/med/edp/dao/rpc/VistaLinkBigBoardDao.java
+++ b/java/tracking-server-core/src/main/java/gov/va/med/edp/dao/rpc/VistaLinkBigBoardDao.java
@@ -1,7 +1,7 @@
package gov.va.med.edp.dao.rpc;
import gov.va.med.edp.dao.TrackingDao;
-import gov.va.med.edp.rpc.VistaLinkDaoSupport;
+import gov.va.med.edp.vistalink.VistaLinkDaoSupport;
import org.springframework.dao.DataAccessException;
import java.util.ArrayList;
diff --git a/java/tracking-server-core/src/main/java/gov/va/med/edp/dao/rpc/VistaLinkServerPackageVersionDao.java b/java/tracking-server-core/src/main/java/gov/va/med/edp/dao/rpc/VistaLinkServerPackageVersionDao.java
index 527bc5e..26ca77a 100644
--- a/java/tracking-server-core/src/main/java/gov/va/med/edp/dao/rpc/VistaLinkServerPackageVersionDao.java
+++ b/java/tracking-server-core/src/main/java/gov/va/med/edp/dao/rpc/VistaLinkServerPackageVersionDao.java
@@ -1,6 +1,6 @@
package gov.va.med.edp.dao.rpc;
-import gov.va.med.edp.rpc.VistaLinkDaoSupport;
+import gov.va.med.edp.vistalink.VistaLinkTemplate;
import gov.va.med.edp.vo.BigBoardDebugInfoVO;
import gov.va.med.edp.dao.ServerPackageVersionDao;
@@ -9,6 +9,7 @@ import java.util.HashMap;
import java.io.StringReader;
import java.io.IOException;
+import gov.va.med.vistalink.adapter.spi.VistaLinkServerInfo;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.InputSource;
@@ -34,8 +35,10 @@ public class VistaLinkServerPackageVersionDao extends VistaLinkBigBoardDao imple
}
public BigBoardDebugInfoVO getVistaLinkConnectionInfo(String stationNumber) throws DataAccessException {
- return getRpcTemplate().getVistaLinkConnectionInfo(stationNumber, EDPTRACKING_APPLICATION_USER);
- }
+ VistaLinkServerInfo vistaLinkServerInfo = getRpcTemplate().getConnectionInfo(stationNumber, EDPTRACKING_APPLICATION_USER, VistaLinkTemplate.USER_TYPE_APPLICATION_PROXY);
+ BigBoardDebugInfoVO bbd = new BigBoardDebugInfoVO(vistaLinkServerInfo.getAddress().toString(), new Integer(vistaLinkServerInfo.getPort()).toString());
+ return bbd;
+ }
private String getVersion(String result) {
Document doc = buildDocument(result);
diff --git a/java/tracking-server-core/src/main/java/gov/va/med/edp/dao/rpc/VistaLinkTrackingDao.java b/java/tracking-server-core/src/main/java/gov/va/med/edp/dao/rpc/VistaLinkTrackingDao.java
index 826724d..6b48d1f 100644
--- a/java/tracking-server-core/src/main/java/gov/va/med/edp/dao/rpc/VistaLinkTrackingDao.java
+++ b/java/tracking-server-core/src/main/java/gov/va/med/edp/dao/rpc/VistaLinkTrackingDao.java
@@ -1,5 +1,6 @@
package gov.va.med.edp.dao.rpc;
+import gov.va.med.edp.vistalink.VistaLinkDaoSupport;
import org.springframework.dao.DataAccessException;
import java.util.List;
@@ -7,7 +8,6 @@ import java.util.Map;
import java.util.ArrayList;
import gov.va.med.edp.dao.TrackingDao;
-import gov.va.med.edp.rpc.VistaLinkDaoSupport;
public class VistaLinkTrackingDao extends VistaLinkDaoSupport implements TrackingDao {
static final String EDPF_TRACKING_SYSTEM_CONTEXT = "EDPF TRACKING SYSTEM";
diff --git a/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/ConnectionFactoryLocator.java b/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/ConnectionFactoryLocator.java
deleted file mode 100644
index 75e5bc5..0000000
--- a/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/ConnectionFactoryLocator.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package gov.va.med.edp.rpc;
-
-import org.springframework.dao.DataAccessResourceFailureException;
-
-import javax.resource.cci.ConnectionFactory;
-
-/**
- * Implementations of this interface retrieve JCA connection factories for a particular VistA station number.
- *
- * @see InstitutionMappingConnectionFactoryLocator
- */
-public interface ConnectionFactoryLocator {
- /**
- * Retrieves a connection factory for the specified station number, or throws an exception. Never should return null.
- *
- * @param stationNumber
- * @return the connection factory for the specified station number, or throw a data access resource exception if there is none.
- * @throws DataAccessResourceFailureException
- *
- */
- ConnectionFactory getConnectionFactory(String stationNumber) throws DataAccessResourceFailureException;
-}
diff --git a/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/InstitutionMappingConnectionFactoryLocator.java b/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/InstitutionMappingConnectionFactoryLocator.java
deleted file mode 100644
index d5e410f..0000000
--- a/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/InstitutionMappingConnectionFactoryLocator.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package gov.va.med.edp.rpc;
-
-import gov.va.med.vistalink.adapter.cci.VistaLinkConnectionFactory;
-import gov.va.med.vistalink.institution.InstitutionMapNotInitializedException;
-import gov.va.med.vistalink.institution.InstitutionMappingDelegate;
-import gov.va.med.vistalink.institution.InstitutionMappingNotFoundException;
-import org.springframework.dao.DataAccessResourceFailureException;
-
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import javax.resource.cci.ConnectionFactory;
-import java.text.MessageFormat;
-
-public class InstitutionMappingConnectionFactoryLocator implements ConnectionFactoryLocator {
- private static final String NO_CONNECTION_FACTORY = "Unable to obtain connection factory for station ''{0}''";
- private static final String NO_CONNECTION_FACTORY_JNDI = "Unable to obtain connection factory for station ''{0}'' at JNDI name ''{1}''";
-
- public ConnectionFactory getConnectionFactory(String stationNumber) throws DataAccessResourceFailureException {
- try {
- String jndiConnectorName = InstitutionMappingDelegate.getJndiConnectorNameForInstitution(
- stationNumber);
- try {
- Context ic = new InitialContext();
- VistaLinkConnectionFactory vistaLinkConnectionFactory = (VistaLinkConnectionFactory) ic.lookup(jndiConnectorName);
- if (vistaLinkConnectionFactory == null)
- throw new DataAccessResourceFailureException(MessageFormat.format(NO_CONNECTION_FACTORY_JNDI, new Object[]{stationNumber, jndiConnectorName}));
- return vistaLinkConnectionFactory;
- } catch (NamingException e) {
- throw new DataAccessResourceFailureException(MessageFormat.format(NO_CONNECTION_FACTORY_JNDI, new Object[]{stationNumber, jndiConnectorName}), e);
- }
- } catch (InstitutionMappingNotFoundException e) {
- throw new DataAccessResourceFailureException(MessageFormat.format(NO_CONNECTION_FACTORY, new Object[]{stationNumber}), e);
- } catch (InstitutionMapNotInitializedException e) {
- throw new DataAccessResourceFailureException(MessageFormat.format(NO_CONNECTION_FACTORY, new Object[]{stationNumber}), e);
- }
-
- }
-}
diff --git a/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/VistaLinkDaoSupport.java b/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/VistaLinkDaoSupport.java
deleted file mode 100644
index bdbf6ab..0000000
--- a/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/VistaLinkDaoSupport.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package gov.va.med.edp.rpc;
-
-import org.springframework.dao.support.DaoSupport;
-
-public class VistaLinkDaoSupport extends DaoSupport {
-
- private VistaLinkRpcTemplate rpcTemplate;
-
- protected void checkDaoConfig() throws IllegalArgumentException {
- if (this.rpcTemplate == null) {
- setConnectionFactoryLocator(new InstitutionMappingConnectionFactoryLocator());
- }
- }
-
- protected VistaLinkRpcTemplate createRpcTemplate(ConnectionFactoryLocator connectionFactoryLocator) {
- return new VistaLinkRpcTemplate(connectionFactoryLocator);
- }
-
- public ConnectionFactoryLocator getConnectionFactoryLocator() {
- return rpcTemplate.getConnectionFactoryLocator();
- }
-
- public void setConnectionFactoryLocator(ConnectionFactoryLocator connectionFactoryLocator) {
- setRpcTemplate(createRpcTemplate(connectionFactoryLocator));
- }
-
- public VistaLinkRpcTemplate getRpcTemplate() {
- return rpcTemplate;
- }
-
- public void setRpcTemplate(VistaLinkRpcTemplate rpcTemplate) {
- this.rpcTemplate = rpcTemplate;
- }
-}
diff --git a/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/VistaLinkRpcDataRetrievalFailureException.java b/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/VistaLinkRpcDataRetrievalFailureException.java
deleted file mode 100644
index cc010e7..0000000
--- a/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/VistaLinkRpcDataRetrievalFailureException.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package gov.va.med.edp.rpc;
-
-import gov.va.med.vistalink.adapter.record.VistaLinkFaultException;
-import org.springframework.dao.DataRetrievalFailureException;
-
-public class VistaLinkRpcDataRetrievalFailureException extends DataRetrievalFailureException {
-
- private VistaLinkFaultException fault;
-
- public VistaLinkRpcDataRetrievalFailureException(VistaLinkFaultException fault) {
- super(fault.getMessage(), fault);
- this.fault = fault;
- }
-
- public String getErrorCode() {
- return fault.getErrorCode();
- }
-
- public String getErrorMessage() {
- return fault.getErrorMessage();
- }
-
- public String getErrorType() {
- return fault.getErrorType();
- }
-
- public String getFaultActor() {
- return fault.getFaultActor();
- }
-
- public String getFaultCode() {
- return fault.getFaultCode();
- }
-
- public String getFaultString() {
- return fault.getFaultString();
- }
-}
diff --git a/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/VistaLinkRpcInvalidApiUsageException.java b/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/VistaLinkRpcInvalidApiUsageException.java
deleted file mode 100644
index 0580f53..0000000
--- a/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/VistaLinkRpcInvalidApiUsageException.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package gov.va.med.edp.rpc;
-
-import org.springframework.dao.InvalidDataAccessApiUsageException;
-import gov.va.med.vistalink.adapter.record.VistaLinkFaultException;
-
-/**
- * TODO: document VistaLinkRpcInvalidApiUsageException
- */
-public class VistaLinkRpcInvalidApiUsageException extends InvalidDataAccessApiUsageException {
-
- private VistaLinkFaultException fault;
-
- public VistaLinkRpcInvalidApiUsageException(VistaLinkFaultException fault) {
- super(fault.getMessage());
- this.fault = fault;
- }
-
- public String getErrorCode() {
- return fault.getErrorCode();
- }
-
- public String getErrorMessage() {
- return fault.getErrorMessage();
- }
-
- public String getErrorType() {
- return fault.getErrorType();
- }
-
- public String getFaultActor() {
- return fault.getFaultActor();
- }
-
- public String getFaultCode() {
- return fault.getFaultCode();
- }
-
- public String getFaultString() {
- return fault.getFaultString();
- }
-}
diff --git a/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/VistaLinkRpcPermissionDeniedException.java b/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/VistaLinkRpcPermissionDeniedException.java
deleted file mode 100644
index 00bd764..0000000
--- a/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/VistaLinkRpcPermissionDeniedException.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package gov.va.med.edp.rpc;
-
-import gov.va.med.vistalink.adapter.record.VistaLinkFaultException;
-import org.springframework.dao.PermissionDeniedDataAccessException;
-
-public class VistaLinkRpcPermissionDeniedException extends PermissionDeniedDataAccessException {
-
- private VistaLinkFaultException fault;
-
- public VistaLinkRpcPermissionDeniedException(VistaLinkFaultException fault) {
- super(fault.getMessage(), fault);
- this.fault = fault;
- }
-
- public String getErrorCode() {
- return fault.getErrorCode();
- }
-
- public String getErrorMessage() {
- return fault.getErrorMessage();
- }
-
- public String getErrorType() {
- return fault.getErrorType();
- }
-
- public String getFaultActor() {
- return fault.getFaultActor();
- }
-
- public String getFaultCode() {
- return fault.getFaultCode();
- }
-
- public String getFaultString() {
- return fault.getFaultString();
- }
-}
diff --git a/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/VistaLinkRpcTemplate.java b/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/VistaLinkRpcTemplate.java
deleted file mode 100644
index 708eb65..0000000
--- a/java/tracking-server-core/src/main/java/gov/va/med/edp/rpc/VistaLinkRpcTemplate.java
+++ /dev/null
@@ -1,169 +0,0 @@
-package gov.va.med.edp.rpc;
-
-import gov.va.med.edp.vo.BigBoardDebugInfoVO;
-import gov.va.med.exception.FoundationsException;
-import gov.va.med.vistalink.adapter.cci.VistaLinkAppProxyConnectionSpec;
-import gov.va.med.vistalink.adapter.cci.VistaLinkConnection;
-import gov.va.med.vistalink.adapter.cci.VistaLinkConnectionSpec;
-import gov.va.med.vistalink.adapter.cci.VistaLinkDuzConnectionSpec;
-import gov.va.med.vistalink.adapter.record.LoginsDisabledFaultException;
-import gov.va.med.vistalink.adapter.record.VistaLinkFaultException;
-import gov.va.med.vistalink.adapter.spi.VistaLinkServerInfo;
-import gov.va.med.vistalink.rpc.*;
-import gov.va.med.vistalink.security.m.SecurityFaultException;
-import gov.va.med.vistalink.security.m.SecurityDivisionDeterminationFaultException;
-import org.apache.log4j.Logger;
-import org.springframework.dao.*;
-import org.springframework.jca.cci.core.CciTemplate;
-import org.springframework.jca.cci.core.ConnectionCallback;
-import org.springframework.util.Assert;
-
-import javax.resource.ResourceException;
-import javax.resource.cci.Connection;
-import javax.resource.cci.ConnectionFactory;
-import java.sql.SQLException;
-import java.text.MessageFormat;
-import java.util.List;
-
-/**
- * This is the central class in the rpc package. It simplifies the use of VistaLink RPCs and helps to avoid common errors.
- * It executes core RPC workflow, leaving application code to provide RPC names and parameters and extract results. This
- * class executes RPCs with VistaLink, initiating iteration over RPC results and catching VistaLink exceptions and
- * translating them to the generic data access exception hierarchy defined in the org.springframework.dao package.
- */
-public class VistaLinkRpcTemplate {
-
- private static final int USER_TYPE_DUZ = 1;
- private static final int USER_TYPE_APPLICATION_PROXY = 2;
-
- static final int DEFAULT_TIMEOUT = 10000;
-
- private static Logger log = Logger.getLogger(VistaLinkRpcTemplate.class);
-
- private int timeOut = DEFAULT_TIMEOUT;
- private String rpcContext;
- private ConnectionFactoryLocator connectionFactoryLocator;
-
- private static final String UNABLE_TO_EXECUTE_RPC = "Unable to execute RPC";
-
- public VistaLinkRpcTemplate(ConnectionFactoryLocator connectionFactoryLocator) {
- this.connectionFactoryLocator = connectionFactoryLocator;
- }
-
- public String rpcAsUser(final String division, final String duz, final String rpcContext, final String rpcName) throws DataAccessException {
- return rpcAsUser(division, duz, rpcContext, rpcName, null);
- }
-
- public String rpcAsUser(final String division, final String duz, final String rpcContext, final String rpcName, final List params) throws DataAccessException {
- return rpc(division, duz, rpcContext, rpcName, params, USER_TYPE_DUZ);
- }
-
- public String rpcAsApplication(final String division, final String applicationProxyName, final String rpcContext, final String rpcName) throws DataAccessException {
- return rpcAsApplication(division, applicationProxyName, rpcContext, rpcName, null);
- }
-
- public String rpcAsApplication(final String division, final String applicationProxyName, final String rpcContext, final String rpcName, final List params) throws DataAccessException {
- return rpc(division, applicationProxyName, rpcContext, rpcName, params, USER_TYPE_APPLICATION_PROXY);
- }
-
- public BigBoardDebugInfoVO getVistaLinkConnectionInfo(final String division, final String user) throws DataAccessException {
- return getConnectionInfo(division, user, USER_TYPE_APPLICATION_PROXY);
- }
-
- public String rpc(final String division, final String user, final String rpcContext, final String rpcName, final List params, final int userType) throws DataAccessException {
- if (log.isDebugEnabled())
- log.debug(MessageFormat.format("''{0}'' called in context ''{1}'' by ''{2}'' at facility ''{3}'' with params: {4}", new Object[]{rpcName, rpcContext, user, division, params}));
-
- ConnectionFactory connectionFactory = connectionFactoryLocator.getConnectionFactory(division);
- try {
- CciTemplate t = new CciTemplate(connectionFactory, createConnectionSpec(division, user, userType));
- RpcResponse response = (RpcResponse) t.execute(new ConnectionCallback() {
- public Object doInConnection(Connection connection, ConnectionFactory connectionFactory) throws ResourceException, SQLException, DataAccessException {
- try {
- Assert.isInstanceOf(VistaLinkConnection.class, connection);
- VistaLinkConnection conn = (VistaLinkConnection) connection;
- conn.setTimeOut(getTimeOut());
-
- RpcRequest request = RpcRequestFactory.getRpcRequest(rpcContext, rpcName);
- request.setUseProprietaryMessageFormat(true);
- request.setXmlResponse(false);
-
- if (params != null) {
- request.setParams(params);
- }
-
- return conn.executeRPC(request);
- } catch (IllegalArgumentException e) {
- throw new InvalidDataAccessApiUsageException(UNABLE_TO_EXECUTE_RPC, e);
- } catch (NoRpcContextFaultException e) {
- throw new VistaLinkRpcInvalidApiUsageException(e);
- } catch (RpcNotOkForProxyUseException e) {
- throw new VistaLinkRpcInvalidApiUsageException(e);
- } catch (RpcNotInContextFaultException e) {
- throw new VistaLinkRpcPermissionDeniedException(e);
- } catch (LoginsDisabledFaultException e) {
- throw new DataAccessResourceFailureException(UNABLE_TO_EXECUTE_RPC, e);
- } catch (SecurityDivisionDeterminationFaultException e) {
- throw new VistaLinkRpcInvalidApiUsageException(e);
- } catch (SecurityFaultException e) {
- throw new VistaLinkRpcPermissionDeniedException(e);
- } catch (VistaLinkFaultException e) {
- throw new DataRetrievalFailureException(UNABLE_TO_EXECUTE_RPC, e);
- } catch (FoundationsException e) {
- throw new DataRetrievalFailureException(UNABLE_TO_EXECUTE_RPC, e);
- }
- }
- });
- String result = response.getResults();
- if (log.isDebugEnabled()) {
- log.debug(MessageFormat.format("''{0}'' returned: {1}", new Object[]{rpcName, result}));
- }
- return result;
- } catch (IllegalArgumentException e) {
- throw new InvalidDataAccessApiUsageException(UNABLE_TO_EXECUTE_RPC, e);
- }
- }
-
- private BigBoardDebugInfoVO getConnectionInfo(final String division, final String user, final int userType) throws DataAccessException {
- VistaLinkConnection conn = null;
- ConnectionFactory connectionFactory = connectionFactoryLocator.getConnectionFactory(division);
- try {
- conn = (VistaLinkConnection)connectionFactory.getConnection(createConnectionSpec(division, user, userType));
- } catch (ResourceException e) {
- throw new DataAccessResourceFailureException("error getting connection info", e);
- }
- VistaLinkServerInfo vistaLinkServerInfo = conn.getConnectionInfo();
- BigBoardDebugInfoVO bbd = new BigBoardDebugInfoVO(vistaLinkServerInfo.getAddress().toString(), new Integer(vistaLinkServerInfo.getPort()).toString());
- return bbd;
- }
-
- private VistaLinkConnectionSpec createConnectionSpec(String division, String user, int userType) {
- switch (userType) {
- case USER_TYPE_APPLICATION_PROXY:
- return new VistaLinkAppProxyConnectionSpec(division, user);
- case USER_TYPE_DUZ:
- default:
- return new VistaLinkDuzConnectionSpec(division, user);
- }
- }
-
- public int getTimeOut() {
- return timeOut;
- }
-
- public void setTimeOut(int timeOut) {
- this.timeOut = timeOut;
- }
-
- public String getRpcContext() {
- return rpcContext;
- }
-
- public void setRpcContext(String rpcContext) {
- this.rpcContext = rpcContext;
- }
-
- public ConnectionFactoryLocator getConnectionFactoryLocator() {
- return connectionFactoryLocator;
- }
-}
diff --git a/java/tracking-server-main/src/main/webapp/WEB-INF/config/data-access-config.xml b/java/tracking-server-main/src/main/webapp/WEB-INF/config/data-access-config.xml
index 2f5b94d..4a2803b 100644
--- a/java/tracking-server-main/src/main/webapp/WEB-INF/config/data-access-config.xml
+++ b/java/tracking-server-main/src/main/webapp/WEB-INF/config/data-access-config.xml
@@ -1,9 +1,16 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/java/tracking-server-main/src/main/webapp/WEB-INF/config/security-config.xml b/java/tracking-server-main/src/main/webapp/WEB-INF/config/security-config.xml
index fb0287a..b774c53 100644
--- a/java/tracking-server-main/src/main/webapp/WEB-INF/config/security-config.xml
+++ b/java/tracking-server-main/src/main/webapp/WEB-INF/config/security-config.xml
@@ -32,7 +32,7 @@
-
+
-
-
-
-
\ No newline at end of file
diff --git a/java/tracking-server-main/src/main/webapp/WEB-INF/config/vistalink-config.xml b/java/tracking-server-main/src/main/webapp/WEB-INF/config/vistalink-config.xml
index bf90d1b..00ab000 100644
--- a/java/tracking-server-main/src/main/webapp/WEB-INF/config/vistalink-config.xml
+++ b/java/tracking-server-main/src/main/webapp/WEB-INF/config/vistalink-config.xml
@@ -4,13 +4,23 @@
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd">
+
+
+
+
+
+
+
+
-
-
+
+
+
-
-
+
+
diff --git a/java/tracking-server-vista/src/main/java/gov/va/med/edp/vistalink/VistaLinkTemplate.java b/java/tracking-server-vista/src/main/java/gov/va/med/edp/vistalink/VistaLinkTemplate.java
index 4845150..ed92d0f 100644
--- a/java/tracking-server-vista/src/main/java/gov/va/med/edp/vistalink/VistaLinkTemplate.java
+++ b/java/tracking-server-vista/src/main/java/gov/va/med/edp/vistalink/VistaLinkTemplate.java
@@ -3,9 +3,11 @@ package gov.va.med.edp.vistalink;
import gov.va.med.exception.FoundationsException;
import gov.va.med.vistalink.adapter.cci.VistaLinkAppProxyConnectionSpec;
import gov.va.med.vistalink.adapter.cci.VistaLinkConnection;
+import gov.va.med.vistalink.adapter.cci.VistaLinkConnectionSpec;
import gov.va.med.vistalink.adapter.cci.VistaLinkDuzConnectionSpec;
import gov.va.med.vistalink.adapter.record.LoginsDisabledFaultException;
import gov.va.med.vistalink.adapter.record.VistaLinkFaultException;
+import gov.va.med.vistalink.adapter.spi.VistaLinkServerInfo;
import gov.va.med.vistalink.rpc.*;
import gov.va.med.vistalink.security.m.SecurityFaultException;
import org.springframework.dao.*;
@@ -31,6 +33,9 @@ import java.util.List;
*/
public class VistaLinkTemplate {
+ public static final int USER_TYPE_DUZ = 1;
+ public static final int USER_TYPE_APPLICATION_PROXY = 2;
+
static final int DEFAULT_TIMEOUT = 10000;
private static Logger log = LoggerFactory.getLogger(VistaLinkTemplate.class);
@@ -141,4 +146,26 @@ public class VistaLinkTemplate {
// }
// return paramList;
// }
+
+ public VistaLinkServerInfo getConnectionInfo(final String division, final String user, final int userType) throws DataAccessException {
+ VistaLinkConnection conn = null;
+ ConnectionFactory connectionFactory = connectionFactoryLocator.getConnectionFactory(division);
+ try {
+ conn = (VistaLinkConnection) connectionFactory.getConnection(createConnectionSpec(division, user, userType));
+ } catch (ResourceException e) {
+ throw new DataAccessResourceFailureException("error getting connection info", e);
+ }
+ VistaLinkServerInfo vistaLinkServerInfo = conn.getConnectionInfo();
+ return vistaLinkServerInfo;
+ }
+
+ private VistaLinkConnectionSpec createConnectionSpec(String division, String user, int userType) {
+ switch (userType) {
+ case USER_TYPE_APPLICATION_PROXY:
+ return new VistaLinkAppProxyConnectionSpec(division, user);
+ case USER_TYPE_DUZ:
+ default:
+ return new VistaLinkDuzConnectionSpec(division, user);
+ }
+ }
}