eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java -text
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteController.java -text
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/lazyloading/CdmLazyLoader.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmPersistentRemoteSource.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSource.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceBase.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/ICdmRemoteSource.java -text
eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java -text
eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/proxy/AbstractLazyInitializer.java -text
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/config.properties -text
--- /dev/null
+package eu.etaxonomy.cdm.remote;
+
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+
+public class CdmPersistentRemoteSource extends CdmRemoteSourceBase {
+
+ public CdmPersistentRemoteSource NewInstance(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
+ return new CdmPersistentRemoteSource(name, server, port, contextPath, nomenclaturalCode);
+ }
+
+ private CdmPersistentRemoteSource(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
+ super(name, server, port, contextPath, nomenclaturalCode);
+
+ }
+
+}
--- /dev/null
+package eu.etaxonomy.cdm.remote;
+
+import org.springframework.beans.factory.config.BeanDefinition;
+
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+
+public class CdmRemoteSource extends CdmRemoteSourceBase {
+
+
+ public static CdmRemoteSource NewInstance(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
+ return new CdmRemoteSource(name, server, port, contextPath, nomenclaturalCode);
+ }
+
+ private CdmRemoteSource(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
+ super(name, server, port, contextPath, nomenclaturalCode);
+
+ }
+
+
+}
--- /dev/null
+package eu.etaxonomy.cdm.remote;
+
+import org.springframework.remoting.RemoteConnectFailureException;
+import org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean;
+
+import eu.etaxonomy.cdm.api.service.IDatabaseService;
+import eu.etaxonomy.cdm.config.CdmSource;
+import eu.etaxonomy.cdm.config.CdmSourceException;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+
+public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
+
+ private String contextPath;
+ private String baseUrl;
+
+ private IDatabaseService databaseService;
+
+ protected CdmRemoteSourceBase(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
+ setName(name);
+ setServer(server);
+ setPort(port);
+ setContextPath(contextPath);
+ setNomenclaturalCode(nomenclaturalCode);
+ if(contextPath == null || contextPath.equals("")) {
+ setBaseUrl("http://" + server + ":" + String.valueOf(port));
+ } else {
+ setBaseUrl("http://" + server + ":" + String.valueOf(port) + "/" + contextPath);
+ }
+ HttpInvokerProxyFactoryBean proxy = new HttpInvokerProxyFactoryBean();
+ proxy.setServiceInterface(IDatabaseService.class);
+ proxy.setServiceUrl(getBaseUrl() + "/remoting/database.service");
+ proxy.afterPropertiesSet();
+ databaseService = (IDatabaseService) proxy.getObject();
+ }
+
+ @Override
+ public String getBaseUrl() {
+ return baseUrl;
+ }
+
+ public void setBaseUrl(String baseUrl) {
+ this.baseUrl = baseUrl;
+ }
+
+ @Override
+ public String getContextPath() {
+ return contextPath;
+ }
+
+ public void setContextPath(String contextPath) {
+ this.contextPath = contextPath;
+ }
+
+ @Override
+ public String getDbSchemaVersion() throws CdmSourceException {
+ return databaseService.getDbSchemaVersion();
+
+ }
+
+ @Override
+ public boolean isDbEmpty() throws CdmSourceException {
+ return databaseService.isDbEmpty();
+
+ }
+
+ @Override
+ public boolean checkConnection() throws CdmSourceException {
+ // assuming that database service works implies
+ // the connection is up
+ // if no exception is thrown then we assume that the
+ // connection is up
+
+ databaseService.getDbSchemaVersion();
+
+ return true;
+ }
+
+ @Override
+ public String getConnectionMessage() {
+ return "Conncting to Remote CDM Server " + getName();
+ }
+
+}
--- /dev/null
+package eu.etaxonomy.cdm.remote;
+
+import org.springframework.beans.factory.config.BeanDefinition;
+
+import eu.etaxonomy.cdm.config.ICdmSource;
+
+public interface ICdmRemoteSource extends ICdmSource {
+
+ public String getContextPath();
+
+ public String getBaseUrl();
+
+}