From 12b636bc018c3dcd4d378e6506ac6ae220c033dc Mon Sep 17 00:00:00 2001 From: jakubs <jakubs> Date: Mon, 18 Apr 2016 14:02:31 +0000 Subject: [PATCH] SSDM-3510 - make it possible to use jython 2.7 everywhere where we use python SVN: 36197 --- .../CustomASServiceScriptRunnerFactory.java | 21 ++++---- .../web/server/calculator/RowCalculator.java | 2 +- .../generic/server/JythonEvaluatorPool.java | 11 ++-- .../JythonDynamicPropertyCalculator.java | 5 +- .../JythonEntityValidationCalculator.java | 6 +-- .../shared/calculator/AbstractCalculator.java | 5 +- .../managed_property/IAtomicEvaluation.java | 4 +- .../JythonManagedPropertyEvaluator.java | 24 +++++---- .../source/java/genericApplicationContext.xml | 8 ++- openbis/source/java/service.properties | 4 +- .../server/JythonEvaluatorPoolTest.java | 54 +++++++++---------- .../server/TestJythonEvaluatorPool.java | 6 ++- 12 files changed, 83 insertions(+), 67 deletions(-) diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/helper/service/CustomASServiceScriptRunnerFactory.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/helper/service/CustomASServiceScriptRunnerFactory.java index c9e72d2c034..7837c8e87a7 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/helper/service/CustomASServiceScriptRunnerFactory.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/helper/service/CustomASServiceScriptRunnerFactory.java @@ -24,22 +24,22 @@ import ch.ethz.sis.openbis.generic.asapi.v3.plugin.service.context.ServiceContex import ch.systemsx.cisd.common.jython.JythonUtils; import ch.systemsx.cisd.common.jython.evaluator.Evaluator; import ch.systemsx.cisd.common.jython.evaluator.EvaluatorException; +import ch.systemsx.cisd.common.jython.evaluator.IJythonEvaluator; /** - * - * * @author Franz-Josef Elmer */ class CustomASServiceScriptRunnerFactory implements IScriptRunnerFactory { private final String scriptPath; + private final IApplicationServerApi applicationService; public CustomASServiceScriptRunnerFactory(String scriptPath, IApplicationServerApi applicationService) { this.scriptPath = scriptPath; this.applicationService = applicationService; - Evaluator.initialize(); + Evaluator.getFactory().initialize(); } @Override @@ -56,7 +56,7 @@ class CustomASServiceScriptRunnerFactory implements IScriptRunnerFactory try { - Evaluator evaluator = new Evaluator("", pythonPath, null, scriptString, false); + IJythonEvaluator evaluator = Evaluator.getFactory().create("", pythonPath, scriptPath, null, scriptString, false); String sessionToken = context.getSessionToken(); ExecutionContext executionContext = new ExecutionContext(sessionToken, applicationService); return new ServiceScriptRunner(evaluator, executionContext); @@ -65,16 +65,16 @@ class CustomASServiceScriptRunnerFactory implements IScriptRunnerFactory throw new EvaluatorException(ex.getMessage() + " [" + scriptPath + "]"); } } - + private static final class ServiceScriptRunner implements IServiceScriptRunner { private static final String PROCESS_FUNCTION_NAME = "process"; - - private Evaluator evaluator; + + private IJythonEvaluator evaluator; private ExecutionContext context; - ServiceScriptRunner(Evaluator evaluator, ExecutionContext context) + ServiceScriptRunner(IJythonEvaluator evaluator, ExecutionContext context) { this.evaluator = evaluator; this.context = context; @@ -83,7 +83,7 @@ class CustomASServiceScriptRunnerFactory implements IScriptRunnerFactory throw new EvaluatorException("Function '" + PROCESS_FUNCTION_NAME + "' was not defined in the processing plugin script"); } - + } @Override @@ -94,7 +94,7 @@ class CustomASServiceScriptRunnerFactory implements IScriptRunnerFactory { return (Serializable) result; } - throw new EvaluatorException("Function '" + PROCESS_FUNCTION_NAME + throw new EvaluatorException("Function '" + PROCESS_FUNCTION_NAME + "' dosn't return a serializable object. Object type: " + result.getClass()); } } @@ -102,6 +102,7 @@ class CustomASServiceScriptRunnerFactory implements IScriptRunnerFactory public static final class ExecutionContext { private final String sessionToken; + private final IApplicationServerApi applicationService; ExecutionContext(String sessionToken, IApplicationServerApi applicationService) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowCalculator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowCalculator.java index 64987713ef4..addab7c3127 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowCalculator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowCalculator.java @@ -40,7 +40,7 @@ public class RowCalculator extends AbstractCalculator public RowCalculator(ITableDataProvider provider, String expression, Set<ParameterWithValue> parameters) { - super(new Evaluator(substitudeParameters(expression, parameters), Math.class, + super(Evaluator.getFactory().create(substitudeParameters(expression, parameters), Math.class, getBasicInitialScript())); row = new Row(provider); evaluator.set("row", row); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/JythonEvaluatorPool.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/JythonEvaluatorPool.java index 77333fdd250..9e9992a2071 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/JythonEvaluatorPool.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/JythonEvaluatorPool.java @@ -27,6 +27,7 @@ import org.apache.log4j.Logger; import ch.systemsx.cisd.common.jython.evaluator.Evaluator; import ch.systemsx.cisd.common.jython.evaluator.EvaluatorException; +import ch.systemsx.cisd.common.jython.evaluator.IJythonEvaluator; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; @@ -164,9 +165,9 @@ public class JythonEvaluatorPool implements IJythonEvaluatorPool /** * Create the evaluator that has the body, and the default expression to be evaluated. */ - private Evaluator createEvaluatorFor(String expression, Class<?> clazz, String script) + private IJythonEvaluator createEvaluatorFor(String expression, Class<?> clazz, String script) { - return new Evaluator(expression, clazz, script); + return Evaluator.getFactory().create(expression, clazz, script); } /** @@ -174,7 +175,7 @@ public class JythonEvaluatorPool implements IJythonEvaluatorPool */ public static class EvaluatorState { - private final Evaluator evaluator; + private final IJythonEvaluator evaluator; private final Map<String, Object> initialGlobals; @@ -182,7 +183,7 @@ public class JythonEvaluatorPool implements IJythonEvaluatorPool private final Lock lock; - public EvaluatorState(Evaluator evaluator) + public EvaluatorState(IJythonEvaluator evaluator) { this.evaluator = evaluator; this.lock = new ReentrantLock(); @@ -237,7 +238,7 @@ public class JythonEvaluatorPool implements IJythonEvaluatorPool } - public Evaluator getEvaluator() + public IJythonEvaluator getEvaluator() { return evaluator; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/JythonDynamicPropertyCalculator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/JythonDynamicPropertyCalculator.java index f2e441dd521..cbec98f6b9b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/JythonDynamicPropertyCalculator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/JythonDynamicPropertyCalculator.java @@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.calc import ch.systemsx.cisd.common.jython.evaluator.Evaluator; import ch.systemsx.cisd.common.jython.evaluator.EvaluatorException; +import ch.systemsx.cisd.common.jython.evaluator.IJythonEvaluator; import ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.calculator.api.IDynamicPropertyCalculator; import ch.systemsx.cisd.openbis.generic.shared.IJythonEvaluatorPool; import ch.systemsx.cisd.openbis.generic.shared.calculator.AbstractCalculator; @@ -77,7 +78,7 @@ public class JythonDynamicPropertyCalculator implements IDynamicPropertyCalculat return runner.evaluate(new IAtomicEvaluation<String>() { @Override - public String evaluate(Evaluator evaluator) + public String evaluate(IJythonEvaluator evaluator) { evaluator.set(ENTITY_VARIABLE_NAME, entity); return evaluator.evalAsStringLegacy2_2(); @@ -90,7 +91,7 @@ public class JythonDynamicPropertyCalculator implements IDynamicPropertyCalculat runner.evaluate(new IAtomicEvaluation<Void>() { @Override - public Void evaluate(Evaluator evaluator) + public Void evaluate(IJythonEvaluator evaluator) { return null; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/JythonEntityValidationCalculator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/JythonEntityValidationCalculator.java index 8cad262542c..50f695f73de 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/JythonEntityValidationCalculator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/JythonEntityValidationCalculator.java @@ -16,8 +16,8 @@ package ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.calculator; -import ch.systemsx.cisd.common.jython.evaluator.Evaluator; import ch.systemsx.cisd.common.jython.evaluator.EvaluatorException; +import ch.systemsx.cisd.common.jython.evaluator.IJythonEvaluator; import ch.systemsx.cisd.openbis.generic.shared.IJythonEvaluatorPool; import ch.systemsx.cisd.openbis.generic.shared.calculator.AbstractCalculator; import ch.systemsx.cisd.openbis.generic.shared.hotdeploy_plugins.api.IEntityAdaptor; @@ -103,7 +103,7 @@ public class JythonEntityValidationCalculator return runner.evaluate(new IAtomicEvaluation<String>() { @Override - public String evaluate(Evaluator evaluator) + public String evaluate(IJythonEvaluator evaluator) { evaluator.set(CALCULATOR_VARIABLE, wrappedValidationRequestedDelegate); evaluator.set(ENTITY_VARIABLE_NAME, entity); @@ -118,7 +118,7 @@ public class JythonEntityValidationCalculator runner.evaluate(new IAtomicEvaluation<Void>() { @Override - public Void evaluate(Evaluator evaluator) + public Void evaluate(IJythonEvaluator evaluator) { return null; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/calculator/AbstractCalculator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/calculator/AbstractCalculator.java index bcc63a8ac6b..a1ae5dbaa11 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/calculator/AbstractCalculator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/calculator/AbstractCalculator.java @@ -20,6 +20,7 @@ import java.math.BigInteger; import ch.systemsx.cisd.common.jython.evaluator.Evaluator; import ch.systemsx.cisd.common.jython.evaluator.EvaluatorException; +import ch.systemsx.cisd.common.jython.evaluator.IJythonEvaluator; import ch.systemsx.cisd.openbis.generic.shared.basic.PrimitiveValue; /** @@ -40,9 +41,9 @@ public class AbstractCalculator + "def float(x):return toFloat(x)" + NEWLINE; } - protected final Evaluator evaluator; + protected final IJythonEvaluator evaluator; - public AbstractCalculator(Evaluator evaluator) + public AbstractCalculator(IJythonEvaluator evaluator) { this.evaluator = evaluator; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/IAtomicEvaluation.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/IAtomicEvaluation.java index 31599d06c19..ad000a97f73 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/IAtomicEvaluation.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/IAtomicEvaluation.java @@ -16,7 +16,7 @@ package ch.systemsx.cisd.openbis.generic.shared.managed_property; -import ch.systemsx.cisd.common.jython.evaluator.Evaluator; +import ch.systemsx.cisd.common.jython.evaluator.IJythonEvaluator; /** * Evaluation of python code loaded in the interpreter of an Evaluator. @@ -25,5 +25,5 @@ import ch.systemsx.cisd.common.jython.evaluator.Evaluator; */ public interface IAtomicEvaluation<T> { - public T evaluate(Evaluator evaluator); + public T evaluate(IJythonEvaluator evaluator); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/JythonManagedPropertyEvaluator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/JythonManagedPropertyEvaluator.java index cc64698c4d7..30fe43f3b9c 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/JythonManagedPropertyEvaluator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/JythonManagedPropertyEvaluator.java @@ -26,6 +26,7 @@ import org.apache.log4j.Logger; import ch.systemsx.cisd.common.jython.evaluator.Evaluator; import ch.systemsx.cisd.common.jython.evaluator.EvaluatorException; +import ch.systemsx.cisd.common.jython.evaluator.IJythonEvaluator; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ManagedUiActionDescriptionFactory; @@ -121,10 +122,11 @@ public class JythonManagedPropertyEvaluator implements IManagedPropertyEvaluator { this(new IEvaluationRunner() { - private Evaluator evaluator; + private IJythonEvaluator evaluator; + { this.evaluator = - new Evaluator("", ManagedPropertyFunctions.class, scriptExpression); + Evaluator.getFactory().create("", ManagedPropertyFunctions.class, scriptExpression); } @Override @@ -142,7 +144,7 @@ public class JythonManagedPropertyEvaluator implements IManagedPropertyEvaluator updateFromBatchFunctionDefined = runner.evaluate(new IAtomicEvaluation<Boolean>() { @Override - public Boolean evaluate(Evaluator evaluator) + public Boolean evaluate(IJythonEvaluator evaluator) { return evaluator.hasFunction(UPDATE_FROM_BATCH_INPUT_FUNCTION); } @@ -152,7 +154,7 @@ public class JythonManagedPropertyEvaluator implements IManagedPropertyEvaluator runner.evaluate(new IAtomicEvaluation<Boolean>() { @Override - public Boolean evaluate(Evaluator evaluator) + public Boolean evaluate(IJythonEvaluator evaluator) { return evaluator.hasFunction(UPDATE_FROM_REGISTRATION_FORM_FUNCTION); } @@ -161,7 +163,7 @@ public class JythonManagedPropertyEvaluator implements IManagedPropertyEvaluator boolean batchColumnNamesFunctionDefined = runner.evaluate(new IAtomicEvaluation<Boolean>() { @Override - public Boolean evaluate(Evaluator evaluator) + public Boolean evaluate(IJythonEvaluator evaluator) { return evaluator.hasFunction(BATCH_COLUMN_NAMES_FUNCTION); } @@ -170,7 +172,7 @@ public class JythonManagedPropertyEvaluator implements IManagedPropertyEvaluator boolean inputWidgetsFunctionDefined = runner.evaluate(new IAtomicEvaluation<Boolean>() { @Override - public Boolean evaluate(Evaluator evaluator) + public Boolean evaluate(IJythonEvaluator evaluator) { return evaluator.hasFunction(INPUT_WIDGETS_FUNCTION); } @@ -263,7 +265,7 @@ public class JythonManagedPropertyEvaluator implements IManagedPropertyEvaluator Object result = runner.evaluate(new IAtomicEvaluation<Object>() { @Override - public Object evaluate(Evaluator evaluator) + public Object evaluate(IJythonEvaluator evaluator) { return evaluator.evalFunction(functionName); } @@ -291,7 +293,7 @@ public class JythonManagedPropertyEvaluator implements IManagedPropertyEvaluator runner.evaluate(new IAtomicEvaluation<Void>() { @Override - public Void evaluate(Evaluator evaluator) + public Void evaluate(IJythonEvaluator evaluator) { evaluator.set(PROPERTY_VARIABLE_NAME, managedProperty); evaluator.set(PROPERTY_PE_VARIABLE_NAME, entityProperty); @@ -314,7 +316,7 @@ public class JythonManagedPropertyEvaluator implements IManagedPropertyEvaluator runner.evaluate(new IAtomicEvaluation<Void>() { @Override - public Void evaluate(Evaluator evaluator) + public Void evaluate(IJythonEvaluator evaluator) { evaluator.set(PROPERTY_VARIABLE_NAME, managedProperty); evaluator.set(PERSON_VARIABLE_NAME, person); @@ -351,7 +353,7 @@ public class JythonManagedPropertyEvaluator implements IManagedPropertyEvaluator runner.evaluate(new IAtomicEvaluation<Void>() { @Override - public Void evaluate(Evaluator evaluator) + public Void evaluate(IJythonEvaluator evaluator) { evaluator.set(PROPERTY_VARIABLE_NAME, managedProperty); evaluator.set(PERSON_VARIABLE_NAME, person); @@ -371,7 +373,7 @@ public class JythonManagedPropertyEvaluator implements IManagedPropertyEvaluator runner.evaluate(new IAtomicEvaluation<Void>() { @Override - public Void evaluate(Evaluator evaluator) + public Void evaluate(IJythonEvaluator evaluator) { evaluator.set(PROPERTY_VARIABLE_NAME, managedProperty); evaluator.set(PERSON_VARIABLE_NAME, person); diff --git a/openbis/source/java/genericApplicationContext.xml b/openbis/source/java/genericApplicationContext.xml index 870bcbe558b..c726b7fe9e6 100644 --- a/openbis/source/java/genericApplicationContext.xml +++ b/openbis/source/java/genericApplicationContext.xml @@ -25,6 +25,7 @@ <bean id="exception-translator" class="ch.systemsx.cisd.openbis.generic.server.business.bo.NextExceptionFallbackExceptionTranslator" /> + <bean id="memory-monitor" class="ch.systemsx.cisd.common.monitoring.JMXMemoryMonitorSpringBean" /> @@ -281,6 +282,10 @@ <property name="timeout" value="${server-timeout-in-minutes}" /> </bean> + <bean id="jython-evaluator" class="ch.systemsx.cisd.common.jython.evaluator.JythonEvaluatorSpringComponent" > + <constructor-arg ref="propertyConfigurer" /> + </bean> + <bean id="etl-entity-operation-checker" class="ch.systemsx.cisd.openbis.generic.server.ETLEntityOperationChecker" /> @@ -288,7 +293,7 @@ class="ch.systemsx.cisd.openbis.generic.server.business.EntityOperationChecker" /> <bean id="jython-evaluator-pool" - class="ch.systemsx.cisd.openbis.generic.server.JythonEvaluatorPool"> + class="ch.systemsx.cisd.openbis.generic.server.JythonEvaluatorPool" depends-on="jython-evaluator"> <constructor-arg ref="dao-factory" /> <constructor-arg value="${jython-evaluator-pool-size}" /> </bean> @@ -439,4 +444,5 @@ class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation" value="classpath:ehcache.xml" /> </bean> + </beans> diff --git a/openbis/source/java/service.properties b/openbis/source/java/service.properties index 80fcbbc1b08..f3366bd383a 100644 --- a/openbis/source/java/service.properties +++ b/openbis/source/java/service.properties @@ -174,4 +174,6 @@ demo.property_2 = some value 2 # Name of the file that stores Web Client configuration web-client-configuration-file = etc/web-client.properties -entity-history.enabled = true \ No newline at end of file +entity-history.enabled = true + +jython-version=2.7 \ No newline at end of file diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/JythonEvaluatorPoolTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/JythonEvaluatorPoolTest.java index 0ff99ad9fd6..9f74240f4a2 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/JythonEvaluatorPoolTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/JythonEvaluatorPoolTest.java @@ -49,7 +49,7 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import ch.systemsx.cisd.common.filesystem.FileUtilities; -import ch.systemsx.cisd.common.jython.evaluator.Evaluator; +import ch.systemsx.cisd.common.jython.evaluator.IJythonEvaluator; import ch.systemsx.cisd.common.utilities.TestResources; import ch.systemsx.cisd.openbis.generic.server.JythonEvaluatorPool.EvaluatorState; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; @@ -76,8 +76,8 @@ public class JythonEvaluatorPoolTest long start = System.currentTimeMillis(); while (secondsSpentSince(start) < 2) { - List<Evaluator> resultList = executeParallel(getEvaluatorInUse()); - assertThat(resultList, isFilledWithSameInstanceOf(Evaluator.class)); + List<IJythonEvaluator> resultList = executeParallel(getEvaluatorInUse()); + assertThat(resultList, isFilledWithSameInstanceOf(IJythonEvaluator.class)); } } @@ -95,7 +95,7 @@ public class JythonEvaluatorPoolTest int counter = 5; @Override - public String evaluate(Evaluator evaluator) + public String evaluate(IJythonEvaluator evaluator) { evaluator.set("action", this); evaluator.set("runner", runner); @@ -202,24 +202,24 @@ public class JythonEvaluatorPoolTest return results; } - private Callable<Evaluator> getEvaluatorInUse() + private Callable<IJythonEvaluator> getEvaluatorInUse() { final String script = "def something():\n\treturn '" + UUID.randomUUID().toString() + "'"; - return new Callable<Evaluator>() + return new Callable<IJythonEvaluator>() { @Override - public Evaluator call() throws Exception + public IJythonEvaluator call() throws Exception { return pool.getManagedPropertiesRunner(script).evaluate( - new IAtomicEvaluation<Evaluator>() - { - @Override - public Evaluator evaluate(Evaluator evaluator) - { - return evaluator; - } - }); + new IAtomicEvaluation<IJythonEvaluator>() + { + @Override + public IJythonEvaluator evaluate(IJythonEvaluator evaluator) + { + return evaluator; + } + }); } }; } @@ -235,17 +235,17 @@ public class JythonEvaluatorPoolTest { return pool.getManagedPropertiesRunner(script).evaluate( new IAtomicEvaluation<Integer>() - { - @Override - public Integer evaluate(Evaluator evaluator) - { - Integer x = - (Integer) evaluator - .evalFunction("return_x_if_defined_else_0"); - evaluator.evalFunction("set_x", 3); - return x; - } - }); + { + @Override + public Integer evaluate(IJythonEvaluator evaluator) + { + Integer x = + (Integer) evaluator + .evalFunction("return_x_if_defined_else_0"); + evaluator.evalFunction("set_x", 3); + return x; + } + }); } }; } @@ -255,7 +255,7 @@ public class JythonEvaluatorPoolTest return new IAtomicEvaluation<Void>() { @Override - public Void evaluate(Evaluator evaluator) + public Void evaluate(IJythonEvaluator evaluator) { return null; } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/TestJythonEvaluatorPool.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/TestJythonEvaluatorPool.java index efed5627f5e..fb3324b1cb1 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/TestJythonEvaluatorPool.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/TestJythonEvaluatorPool.java @@ -17,6 +17,7 @@ package ch.systemsx.cisd.openbis.generic.server; import ch.systemsx.cisd.common.jython.evaluator.Evaluator; +import ch.systemsx.cisd.common.jython.evaluator.IJythonEvaluator; import ch.systemsx.cisd.openbis.generic.shared.IJythonEvaluatorPool; import ch.systemsx.cisd.openbis.generic.shared.managed_property.IAtomicEvaluation; import ch.systemsx.cisd.openbis.generic.shared.managed_property.IEvaluationRunner; @@ -32,14 +33,15 @@ public class TestJythonEvaluatorPool implements IJythonEvaluatorPool { return new IEvaluationRunner() { - private Evaluator evaluator; + private IJythonEvaluator evaluator; + { Class<?> importClass = clazz; if (importClass == null) { importClass = Math.class; } - this.evaluator = new Evaluator(expression, importClass, script); + this.evaluator = Evaluator.getFactory().create(expression, importClass, script); } @Override -- GitLab