syncope-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ilgro...@apache.org
Subject svn commit: r1586349 - in /syncope/branches/1_0_X/core/src/main: java/org/apache/syncope/core/persistence/beans/ java/org/apache/syncope/core/propagation/ java/org/apache/syncope/core/rest/data/ java/org/apache/syncope/core/util/ java/org/apache/syncop...
Date Thu, 10 Apr 2014 15:56:51 GMT
Author: ilgrosso
Date: Thu Apr 10 15:56:50 2014
New Revision: 1586349

URL: http://svn.apache.org/r1586349
Log:
Refactoring JEXL evaluation

Added:
    syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/
    syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/ClassFreeUberspectImpl.java
  (with props)
    syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/EmptyClassLoader.java
  (with props)
    syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/JexlUtil.java
      - copied, changed from r1586341, syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/JexlUtil.java
Removed:
    syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/JexlUtil.java
Modified:
    syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractDerAttr.java
    syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/propagation/PropagationManager.java
    syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/AbstractAttributableDataBinder.java
    syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/DerivedSchemaDataBinder.java
    syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/ResourceDataBinder.java
    syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/SchemaDataBinder.java
    syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/TaskDataBinder.java
    syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/ConnObjectUtil.java
    syncope/branches/1_0_X/core/src/main/resources/syncopeContext.xml

Modified: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractDerAttr.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractDerAttr.java?rev=1586349&r1=1586348&r2=1586349&view=diff
==============================================================================
--- syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractDerAttr.java
(original)
+++ syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractDerAttr.java
Thu Apr 10 15:56:50 2014
@@ -26,7 +26,7 @@ import javax.persistence.MappedSuperclas
 import org.apache.commons.jexl2.JexlContext;
 import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
 import org.apache.syncope.core.util.ApplicationContextProvider;
-import org.apache.syncope.core.util.JexlUtil;
+import org.apache.syncope.core.util.jexl.JexlUtil;
 import org.springframework.context.ConfigurableApplicationContext;
 
 @MappedSuperclass

Modified: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/propagation/PropagationManager.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/propagation/PropagationManager.java?rev=1586349&r1=1586348&r2=1586349&view=diff
==============================================================================
--- syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/propagation/PropagationManager.java
(original)
+++ syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/propagation/PropagationManager.java
Thu Apr 10 15:56:50 2014
@@ -50,7 +50,7 @@ import org.apache.syncope.core.persisten
 import org.apache.syncope.core.rest.data.UserDataBinder;
 import org.apache.syncope.core.util.AttributableUtil;
 import org.apache.syncope.core.util.ConnObjectUtil;
-import org.apache.syncope.core.util.JexlUtil;
+import org.apache.syncope.core.util.jexl.JexlUtil;
 import org.apache.syncope.core.util.SchemaMappingUtil;
 import org.apache.syncope.core.util.VirAttrCache;
 import org.apache.syncope.core.workflow.WorkflowResult;

Modified: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/AbstractAttributableDataBinder.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/AbstractAttributableDataBinder.java?rev=1586349&r1=1586348&r2=1586349&view=diff
==============================================================================
--- syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/AbstractAttributableDataBinder.java
(original)
+++ syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/AbstractAttributableDataBinder.java
Thu Apr 10 15:56:50 2014
@@ -63,7 +63,7 @@ import org.apache.syncope.core.persisten
 import org.apache.syncope.core.persistence.dao.VirSchemaDAO;
 import org.apache.syncope.core.propagation.PropagationByResource;
 import org.apache.syncope.core.util.AttributableUtil;
-import org.apache.syncope.core.util.JexlUtil;
+import org.apache.syncope.core.util.jexl.JexlUtil;
 import org.apache.syncope.types.AttributableType;
 import org.apache.syncope.types.PropagationOperation;
 import org.apache.syncope.types.SyncopeClientExceptionType;

Modified: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/DerivedSchemaDataBinder.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/DerivedSchemaDataBinder.java?rev=1586349&r1=1586348&r2=1586349&view=diff
==============================================================================
--- syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/DerivedSchemaDataBinder.java
(original)
+++ syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/DerivedSchemaDataBinder.java
Thu Apr 10 15:56:50 2014
@@ -27,7 +27,7 @@ import org.apache.syncope.client.validat
 import org.apache.syncope.client.validation.SyncopeClientException;
 import org.apache.syncope.core.persistence.beans.AbstractDerSchema;
 import org.apache.syncope.core.persistence.beans.AbstractSchema;
-import org.apache.syncope.core.util.JexlUtil;
+import org.apache.syncope.core.util.jexl.JexlUtil;
 import org.apache.syncope.types.SyncopeClientExceptionType;
 
 @Component

Modified: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/ResourceDataBinder.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/ResourceDataBinder.java?rev=1586349&r1=1586348&r2=1586349&view=diff
==============================================================================
--- syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/ResourceDataBinder.java
(original)
+++ syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/ResourceDataBinder.java
Thu Apr 10 15:56:50 2014
@@ -44,7 +44,7 @@ import org.apache.syncope.core.persisten
 import org.apache.syncope.core.persistence.beans.SyncPolicy;
 import org.apache.syncope.core.persistence.dao.ConnInstanceDAO;
 import org.apache.syncope.core.persistence.dao.PolicyDAO;
-import org.apache.syncope.core.util.JexlUtil;
+import org.apache.syncope.core.util.jexl.JexlUtil;
 import org.apache.syncope.types.ConnConfProperty;
 import org.apache.syncope.types.IntMappingType;
 import org.apache.syncope.types.SyncopeClientExceptionType;

Modified: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/SchemaDataBinder.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/SchemaDataBinder.java?rev=1586349&r1=1586348&r2=1586349&view=diff
==============================================================================
--- syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/SchemaDataBinder.java
(original)
+++ syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/SchemaDataBinder.java
Thu Apr 10 15:56:50 2014
@@ -33,7 +33,7 @@ import org.apache.syncope.core.persisten
 import org.apache.syncope.core.persistence.beans.AbstractSchema;
 import org.apache.syncope.core.persistence.dao.SchemaDAO;
 import org.apache.syncope.core.util.AttributableUtil;
-import org.apache.syncope.core.util.JexlUtil;
+import org.apache.syncope.core.util.jexl.JexlUtil;
 import org.apache.syncope.types.SyncopeClientExceptionType;
 
 @Component

Modified: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/TaskDataBinder.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/TaskDataBinder.java?rev=1586349&r1=1586348&r2=1586349&view=diff
==============================================================================
--- syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/TaskDataBinder.java
(original)
+++ syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/rest/data/TaskDataBinder.java
Thu Apr 10 15:56:50 2014
@@ -41,7 +41,7 @@ import org.apache.syncope.core.persisten
 import org.apache.syncope.core.persistence.beans.TaskExec;
 import org.apache.syncope.core.persistence.dao.ResourceDAO;
 import org.apache.syncope.core.persistence.dao.TaskExecDAO;
-import org.apache.syncope.core.util.JexlUtil;
+import org.apache.syncope.core.util.jexl.JexlUtil;
 import org.apache.syncope.core.util.TaskUtil;
 import org.apache.syncope.types.SyncopeClientExceptionType;
 import org.quartz.Scheduler;

Modified: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/ConnObjectUtil.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/ConnObjectUtil.java?rev=1586349&r1=1586348&r2=1586349&view=diff
==============================================================================
--- syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/ConnObjectUtil.java
(original)
+++ syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/ConnObjectUtil.java
Thu Apr 10 15:56:50 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.syncope.core.util;
 
+import org.apache.syncope.core.util.jexl.JexlUtil;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;

Added: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/ClassFreeUberspectImpl.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/ClassFreeUberspectImpl.java?rev=1586349&view=auto
==============================================================================
--- syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/ClassFreeUberspectImpl.java
(added)
+++ syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/ClassFreeUberspectImpl.java
Thu Apr 10 15:56:50 2014
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.util.jexl;
+
+import org.apache.commons.jexl2.JexlInfo;
+import org.apache.commons.jexl2.introspection.JexlMethod;
+import org.apache.commons.jexl2.introspection.JexlPropertyGet;
+import org.apache.commons.jexl2.introspection.UberspectImpl;
+import org.apache.commons.logging.Log;
+
+class ClassFreeUberspectImpl extends UberspectImpl {
+
+    public ClassFreeUberspectImpl(final Log runtimeLogger) {
+        super(runtimeLogger);
+    }
+
+    @Override
+    public JexlPropertyGet getPropertyGet(final Object obj, final Object identifier, final
JexlInfo info) {
+        return "class".equals(identifier) ? null : super.getPropertyGet(obj, identifier,
info);
+    }
+
+    @Override
+    public JexlMethod getMethod(final Object obj, final String method, final Object[] args,
final JexlInfo info) {
+        return "getClass".equals(method) ? null : super.getMethod(obj, method, args, info);
+    }
+
+}

Propchange: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/ClassFreeUberspectImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/ClassFreeUberspectImpl.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/ClassFreeUberspectImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/EmptyClassLoader.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/EmptyClassLoader.java?rev=1586349&view=auto
==============================================================================
--- syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/EmptyClassLoader.java
(added)
+++ syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/EmptyClassLoader.java
Thu Apr 10 15:56:50 2014
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.util.jexl;
+
+/**
+ * A class loader that will throw {@link ClassNotFoundException} for every class name.
+ */
+class EmptyClassLoader extends ClassLoader {
+
+    @Override
+    public Class<?> loadClass(final String name) throws ClassNotFoundException {
+        throw new ClassNotFoundException("This classloader won't attemp to load " + name);
+    }
+
+    @Override
+    protected Class<?> loadClass(final String name, boolean resolve) throws ClassNotFoundException
{
+        throw new ClassNotFoundException("This classloader won't attemp to load " + name);
+    }
+
+}

Propchange: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/EmptyClassLoader.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/EmptyClassLoader.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/EmptyClassLoader.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/JexlUtil.java
(from r1586341, syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/JexlUtil.java)
URL: http://svn.apache.org/viewvc/syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/JexlUtil.java?p2=syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/JexlUtil.java&p1=syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/JexlUtil.java&r1=1586341&r2=1586349&rev=1586349&view=diff
==============================================================================
--- syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/JexlUtil.java (original)
+++ syncope/branches/1_0_X/core/src/main/java/org/apache/syncope/core/util/jexl/JexlUtil.java
Thu Apr 10 15:56:50 2014
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.syncope.core.util;
+package org.apache.syncope.core.util.jexl;
 
 import java.util.Collection;
 import java.util.List;
@@ -25,9 +25,9 @@ import org.apache.commons.jexl2.JexlCont
 import org.apache.commons.jexl2.JexlEngine;
 import org.apache.commons.jexl2.JexlException;
 import org.apache.commons.jexl2.MapContext;
+import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.apache.syncope.client.to.AbstractAttributableTO;
 import org.apache.syncope.client.to.AttributeTO;
 import org.apache.syncope.client.to.UserTO;
@@ -46,13 +46,26 @@ public class JexlUtil {
      */
     private static final Logger LOG = LoggerFactory.getLogger(JexlUtil.class);
 
-    @Autowired
-    private JexlEngine jexlEngine;
+    private static JexlEngine jexlEngine;
+
+    private static JexlEngine getEngine() {
+        synchronized (LOG) {
+            if (jexlEngine == null) {
+                jexlEngine = new JexlEngine(new ClassFreeUberspectImpl(null), null, null,
null);
+                jexlEngine.setClassLoader(new EmptyClassLoader());
+                jexlEngine.setCache(512);
+                jexlEngine.setLenient(true);
+                jexlEngine.setSilent(false);
+            }
+        }
+
+        return jexlEngine;
+    }
 
     public boolean isExpressionValid(final String expression) {
         boolean result;
         try {
-            jexlEngine.createExpression(expression);
+            getEngine().createExpression(expression);
             result = true;
         } catch (JexlException e) {
             LOG.error("Invalid jexl expression: " + expression, e);
@@ -63,20 +76,19 @@ public class JexlUtil {
     }
 
     public String evaluate(final String expression, final JexlContext jexlContext) {
-
-        String result = "";
+        String result = StringUtils.EMPTY;
 
         if (expression != null && !expression.isEmpty() && jexlContext !=
null) {
 
             try {
-                Expression jexlExpression = jexlEngine.createExpression(expression);
+                Expression jexlExpression = getEngine().createExpression(expression);
                 Object evaluated = jexlExpression.evaluate(jexlContext);
                 if (evaluated != null) {
                     result = evaluated.toString();
                 }
             } catch (JexlException e) {
                 LOG.error("Invalid jexl expression: " + expression, e);
-                result = "";
+                result = StringUtils.EMPTY;
             }
         } else {
             LOG.debug("Expression not provided or invalid context");
@@ -94,19 +106,19 @@ public class JexlUtil {
 
             jexlContext.set("username", user.getUsername() != null
                     ? user.getUsername()
-                    : "");
+                    : StringUtils.EMPTY);
             jexlContext.set("creationDate", user.getCreationDate() != null
                     ? user.getDateFormatter().format(user.getCreationDate())
-                    : "");
+                    : StringUtils.EMPTY);
             jexlContext.set("lastLoginDate", user.getLastLoginDate() != null
                     ? user.getDateFormatter().format(user.getLastLoginDate())
-                    : "");
+                    : StringUtils.EMPTY);
             jexlContext.set("failedLogins", user.getFailedLogins() != null
                     ? user.getFailedLogins()
-                    : "");
+                    : StringUtils.EMPTY);
             jexlContext.set("changePwdDate", user.getChangePwdDate() != null
                     ? user.getDateFormatter().format(user.getChangePwdDate())
-                    : "");
+                    : StringUtils.EMPTY);
         }
 
         addAttrsToContext(attributable.getAttributes(), jexlContext);
@@ -127,7 +139,7 @@ public class JexlUtil {
         for (AbstractAttr attribute : attributes) {
             List<String> attributeValues = attribute.getValuesAsStrings();
             String expressionValue = attributeValues.isEmpty()
-                    ? ""
+                    ? StringUtils.EMPTY
                     : attributeValues.get(0);
 
             LOG.debug("Add attribute {} with value {}",
@@ -149,11 +161,11 @@ public class JexlUtil {
         for (AbstractDerAttr attribute : derAttributes) {
             String expressionValue = attribute.getValue(attributes);
             if (expressionValue == null) {
-                expressionValue = "";
+                expressionValue = StringUtils.EMPTY;
             }
 
             LOG.debug("Add derived attribute {} with value {}", new Object[] { attribute.getDerivedSchema().getName(),
-                    expressionValue });
+                expressionValue });
 
             context.set(attribute.getDerivedSchema().getName(), expressionValue);
         }
@@ -170,16 +182,16 @@ public class JexlUtil {
 
             context.set("username", user.getUsername() != null
                     ? user.getUsername()
-                    : "");
+                    : StringUtils.EMPTY);
             context.set("password", user.getPassword() != null
                     ? user.getPassword()
-                    : "");
+                    : StringUtils.EMPTY);
         }
 
         for (AttributeTO attribute : attributableTO.getAttributes()) {
             List<String> attributeValues = attribute.getValues();
             String expressionValue = attributeValues.isEmpty()
-                    ? ""
+                    ? StringUtils.EMPTY
                     : attributeValues.get(0);
 
             LOG.debug("Add attribute {} with value {}", new Object[] { attribute.getSchema(),
expressionValue });
@@ -189,7 +201,7 @@ public class JexlUtil {
         for (AttributeTO attribute : attributableTO.getDerivedAttributes()) {
             List<String> attributeValues = attribute.getValues();
             String expressionValue = attributeValues.isEmpty()
-                    ? ""
+                    ? StringUtils.EMPTY
                     : attributeValues.get(0);
 
             LOG.debug("Add attribute {} with value {}", new Object[] { attribute.getSchema(),
expressionValue });
@@ -199,7 +211,7 @@ public class JexlUtil {
         for (AttributeTO attribute : attributableTO.getVirtualAttributes()) {
             List<String> attributeValues = attribute.getValues();
             String expressionValue = attributeValues.isEmpty()
-                    ? ""
+                    ? StringUtils.EMPTY
                     : attributeValues.get(0);
 
             LOG.debug("Add attribute {} with value {}", new Object[] { attribute.getSchema(),
expressionValue });

Modified: syncope/branches/1_0_X/core/src/main/resources/syncopeContext.xml
URL: http://svn.apache.org/viewvc/syncope/branches/1_0_X/core/src/main/resources/syncopeContext.xml?rev=1586349&r1=1586348&r2=1586349&view=diff
==============================================================================
--- syncope/branches/1_0_X/core/src/main/resources/syncopeContext.xml (original)
+++ syncope/branches/1_0_X/core/src/main/resources/syncopeContext.xml Thu Apr 10 15:56:50
2014
@@ -79,13 +79,7 @@ under the License.
   <task:annotation-driven executor="connectorExecutor"/>
   <task:executor id="connectorExecutor" pool-size="10"/>
   
-  <bean id="jexlEngine" class="org.apache.commons.jexl2.JexlEngine">
-    <property name="cache" value="512"/>
-    <property name="lenient" value="true"/>
-    <property name="silent" value="false"/>
-  </bean>
-  
-  <bean id="jexlUtil" class="org.apache.syncope.core.util.JexlUtil"/>
+  <bean id="jexlUtil" class="org.apache.syncope.core.util.jexl.JexlUtil" scope="singleton"/>
   
   <bean id="virAttrCache" class="org.apache.syncope.core.util.VirAttrCache" scope="singleton">
     <constructor-arg value="60"/>



Mime
View raw message