From f3fb63fbbcefecca0fa3b83e53bb2ae1e3d7431c Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Tue, 12 Mar 2013 07:46:34 +0000 Subject: [PATCH] SP-533, BIS-336: Bug fixed: Dynamic properties GUI tester didn't worked. SVN: 28591 --- .../openbis/generic/server/CommonServer.java | 7 ++++--- .../DynamicPropertyEvaluator.java | 3 --- .../IDynamicPropertyCalculatorFactory.java | 5 +++++ .../DynamicPropertyCalculatorFactory.java | 21 ++++++++++++++----- .../dto/DynamicPropertyEvaluationInfo.java | 1 + 5 files changed, 26 insertions(+), 11 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java index 8d4ef3523cd..cc04875791a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java @@ -138,8 +138,8 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.IDyna import ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.IDynamicPropertyEvaluator; import ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.calculator.EntityAdaptorFactory; import ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.calculator.INonAbstractEntityAdapter; -import ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.calculator.JythonDynamicPropertyCalculator; import ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.calculator.JythonEntityValidationCalculator.IValidationRequestDelegate; +import ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.calculator.api.IDynamicPropertyCalculator; import ch.systemsx.cisd.openbis.generic.server.dataaccess.entity_validation.IEntityValidatorFactory; import ch.systemsx.cisd.openbis.generic.server.dataaccess.entity_validation.api.IEntityValidator; import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.EncapsulatedCommonServer; @@ -3349,8 +3349,9 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt IEntityInformationWithPropertiesHolder entity = getEntity(info, session); try { - JythonDynamicPropertyCalculator calculator = - JythonDynamicPropertyCalculator.create(info.getScript()); + IDynamicPropertyCalculator calculator = + dynamicPropertyCalculatorFactory.getCalculator(info.getPluginType(), + info.getSciptName(), info.getScript()); IDynamicPropertyEvaluator evaluator = new DynamicPropertyEvaluator(getDAOFactory(), null, dynamicPropertyCalculatorFactory, managedPropertyEvaluatorFactory); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/DynamicPropertyEvaluator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/DynamicPropertyEvaluator.java index dda3e52f678..87d968c6cca 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/DynamicPropertyEvaluator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/DynamicPropertyEvaluator.java @@ -61,8 +61,6 @@ public class DynamicPropertyEvaluator implements IDynamicPropertyEvaluator private final IDynamicPropertyCalculatorFactory dynamicPropertyCalculatorFactory; - private final IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory; - /** path of evaluation - used to generate meaningful error message for cyclic dependencies */ private final List<EntityTypePropertyTypePE> evaluationPath = new ArrayList<EntityTypePropertyTypePE>(); @@ -79,7 +77,6 @@ public class DynamicPropertyEvaluator implements IDynamicPropertyEvaluator new EntityPropertiesConverterDelegatorFacade(daoFactory, customSessionProviderOrNull, managedPropertyEvaluatorFactory); this.dynamicPropertyCalculatorFactory = dynamicPropertyCalculatorFactory; - this.managedPropertyEvaluatorFactory = managedPropertyEvaluatorFactory; } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/IDynamicPropertyCalculatorFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/IDynamicPropertyCalculatorFactory.java index 6cd5d314add..9409c06a74b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/IDynamicPropertyCalculatorFactory.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/IDynamicPropertyCalculatorFactory.java @@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property; import ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.calculator.api.IDynamicPropertyCalculator; import ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.calculator.api.IDynamicPropertyCalculatorHotDeployPlugin; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PluginType; import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePropertyTypePE; import ch.systemsx.cisd.openbis.generic.shared.hotdeploy_plugins.ICommonPropertyBasedHotDeployPluginFactory; @@ -28,4 +29,8 @@ public interface IDynamicPropertyCalculatorFactory extends ICommonPropertyBasedHotDeployPluginFactory<IDynamicPropertyCalculatorHotDeployPlugin> { public IDynamicPropertyCalculator getCalculator(EntityTypePropertyTypePE etpt); + + public IDynamicPropertyCalculator getCalculator(PluginType pluginType, String scriptName, + String script); + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/DynamicPropertyCalculatorFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/DynamicPropertyCalculatorFactory.java index 674f2d2a6fb..ea7abcc1f46 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/DynamicPropertyCalculatorFactory.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/DynamicPropertyCalculatorFactory.java @@ -20,6 +20,7 @@ import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.IDynamicPropertyCalculatorFactory; import ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.calculator.api.IDynamicPropertyCalculator; import ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.calculator.api.IDynamicPropertyCalculatorHotDeployPlugin; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PluginType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ScriptType; import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePropertyTypePE; import ch.systemsx.cisd.openbis.generic.shared.hotdeploy_plugins.AbstractCommonPropertyBasedHotDeployPluginFactory; @@ -43,17 +44,27 @@ public class DynamicPropertyCalculatorFactory /** Returns a calculator for given script (creates a new one if nothing is found in cache). */ public IDynamicPropertyCalculator getCalculator(EntityTypePropertyTypePE etpt) { - switch (etpt.getScript().getPluginType()) + PluginType pluginType = etpt.getScript().getPluginType(); + String script = etpt.getScript().getScript(); + String scriptName = etpt.getScript().getName(); + return getCalculator(pluginType, scriptName, script); + } + + @Override + public IDynamicPropertyCalculator getCalculator(PluginType pluginType, String scriptName, + String script) + { + switch (pluginType) { case JYTHON: - return JythonDynamicPropertyCalculator.create(etpt.getScript().getScript()); + return JythonDynamicPropertyCalculator.create(script); case PREDEPLOYED: IDynamicPropertyCalculator dynamicPropertyCalculator = - tryGetPredeployedPluginByName(etpt.getScript().getName()); + tryGetPredeployedPluginByName(scriptName); if (dynamicPropertyCalculator == null) { - throw new UserFailureException("Couldn't find plugin named '" - + etpt.getScript().getName() + "'."); + throw new UserFailureException("Couldn't find plugin named '" + scriptName + + "'."); } return dynamicPropertyCalculator; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DynamicPropertyEvaluationInfo.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DynamicPropertyEvaluationInfo.java index c236779b522..72c6727ff20 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DynamicPropertyEvaluationInfo.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DynamicPropertyEvaluationInfo.java @@ -37,6 +37,7 @@ public class DynamicPropertyEvaluationInfo extends BasicEntityDescription PluginType pluginType, String scriptName, String script) { super(entityKind, entityIdentifier); + this.pluginType = pluginType; this.sciptName = scriptName; this.script = script; } -- GitLab