From: Cherian Mathew Date: Mon, 20 Jul 2015 13:37:23 +0000 (+0200) Subject: Use new find method with update X-Git-Tag: remoting-3.9.0~89 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/c93b5f35c15aa03ae45e064b82bf1e5bd1f3f9bb Use new find method with update --- diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CdmTransientEntityCacher.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CdmTransientEntityCacher.java index 2510d27e1..9bc131ea3 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CdmTransientEntityCacher.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CdmTransientEntityCacher.java @@ -143,7 +143,7 @@ public class CdmTransientEntityCacher implements ICdmCacher { private CdmBase load(CdmEntityIdentifier cei, boolean update) { - return load(CdmBase.deproxy(CdmApplicationState.getCommonService().find(cei.getCdmClass(), cei.getId()),cei.getCdmClass()), update); + return CdmApplicationState.getCommonService().findWithUpdate(cei.getCdmClass(), cei.getId()); } diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CdmServiceRequestExecutor.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CdmServiceRequestExecutor.java index 888c1ca3c..0b7ca355d 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CdmServiceRequestExecutor.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CdmServiceRequestExecutor.java @@ -44,7 +44,9 @@ public class CdmServiceRequestExecutor extends CdmAuthenticatedHttpInvokerReques logger.info("Remote invoking : " + currentRemoteInvocation.getMethodName() + "@" + config.getServiceUrl()); rir = super.doExecuteRequest(config, baos); if(rir.getValue() != null && !rir.hasException()) { - if("merge".equals(currentRemoteInvocation.getMethodName()) || "save".equals(currentRemoteInvocation.getMethodName())) { + if("merge".equals(currentRemoteInvocation.getMethodName()) || + "save".equals(currentRemoteInvocation.getMethodName()) || + "findWithUpdate".equals(currentRemoteInvocation.getMethodName())) { rir = new RemoteInvocationResult(cdmEntitySessionManager.load(rir.getValue(), true)); } else if(rir.getValue() instanceof UpdateResult){ UpdateResult result = (UpdateResult)rir.getValue(); diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/CreateNodeOperation.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/CreateNodeOperation.java index fcf5b9171..aa1a363f9 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/CreateNodeOperation.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/CreateNodeOperation.java @@ -9,7 +9,6 @@ import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; -import eu.etaxonomy.cdm.api.application.CdmApplicationState; import eu.etaxonomy.cdm.model.description.PolytomousKeyNode; import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation; import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; @@ -39,7 +38,7 @@ public class CreateNodeOperation extends AbstractPostTaxonOperation { childNode = PolytomousKeyNode.NewInstance(); parentNode.addChild(childNode); - childNode = CdmApplicationState.getCurrentAppConfig().getPolytomousKeyNodeService().merge(childNode); + return postExecute(childNode); } diff --git a/eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/operations/RemotingTestUpdateOperation.java b/eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/operations/RemotingTestUpdateOperation.java index 255849b44..727460c57 100644 --- a/eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/operations/RemotingTestUpdateOperation.java +++ b/eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/operations/RemotingTestUpdateOperation.java @@ -70,6 +70,8 @@ public class RemotingTestUpdateOperation extends RemotingCdmUpdateOperation { return testService.returnResult(result); } else if(exception != null) { return testService.throwException(exception); + } else if(cei != null) { + return testService.addChild(cei); } return null; } diff --git a/eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF b/eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF index 7f2bd7c9d..efb306994 100644 --- a/eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF +++ b/eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: eu.etaxonomy.taxeditor.test Bundle-SymbolicName: eu.etaxonomy.taxeditor.test;singleton:=true -Bundle-Version: 3.6.1.qualifier +Bundle-Version: 3.8.0.qualifier Bundle-ActivationPolicy: lazy Bundle-Vendor: EDIT Bundle-RequiredExecutionEnvironment: JavaSE-1.6 diff --git a/eu.etaxonomy.taxeditor.test/pom.xml b/eu.etaxonomy.taxeditor.test/pom.xml index 3e230b148..86844afdd 100644 --- a/eu.etaxonomy.taxeditor.test/pom.xml +++ b/eu.etaxonomy.taxeditor.test/pom.xml @@ -4,7 +4,7 @@ eu.etaxonomy taxeditor-parent - 3.6.1-SNAPSHOT + 3.8.0-SNAPSHOT 4.0.0 eu.etaxonomy.taxeditor.test diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionAwareTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionAwareTest.java index 8f35f6659..207ce093b 100644 --- a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionAwareTest.java +++ b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionAwareTest.java @@ -127,6 +127,8 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest { // TO DO : Added tests for Annotations , Markers } + + @Test public void readPolytomousKeyDataFromNodes() { PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class); @@ -161,6 +163,20 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest { Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getChildAt(0).getTaxon().getTitleCache(), "Achillea arabica Kotschy sec. Cyprus"); } + @Test + public void addGrandChildPolytomousKeyNode() { + PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class); + PolytomousKeyNode rootNode = pKey.getRoot(); + PolytomousKeyNode childNode = PolytomousKeyNode.NewInstance(); + rootNode.addChild(childNode); + + polytomousKeyService.merge(pKey); + + PolytomousKeyNode grandChildNode = PolytomousKeyNode.NewInstance(); + childNode.addChild(grandChildNode); + + polytomousKeyService.merge(pKey); + } @Test public void savePolytomousKeyNodeData() {