diff --git a/nx01-x4o-driver/module-info.java b/nx01-x4o-driver/module-info.java
index 76b2ed0..dacdba7 100644
--- a/nx01-x4o-driver/module-info.java
+++ b/nx01-x4o-driver/module-info.java
@@ -37,12 +37,15 @@ open module ᣕᕁᐤᣳ.ᕽᙾᐤ.ᒄᣗᑊᘁᓫᣗ {
requires transitive ᣕᕁᐤᣳ.ᕽᙾᐤ.ᔿᣔᑊᔆᒄᐤᒼ;
requires transitive ᣕᕁᐤᣳ.ᕽᙾᐤ.ᣘᒼᣳᔥ;
requires transitive java.logging;
- requires transitive org.apache.tomcat.jasper.el;
+ // TODO: remove EL, this breaks OSGI resolving
+ //requires transitive org.apache.tomcat.jasper.el;
// TEMP for tests only
requires java.desktop;
// M2E is correct for now allowing two module-info per project, missing;
//test-requires java.desktop;
+ //test-requires transitive org.junit.jupiter.engine;
+ //test-requires transitive org.junit.jupiter.api;
exports META-INF/x4o-drivers.xml;
diff --git a/nx01-x4o-driver/pom.xml b/nx01-x4o-driver/pom.xml
index 4638b32..9895d56 100644
--- a/nx01-x4o-driver/pom.xml
+++ b/nx01-x4o-driver/pom.xml
@@ -20,10 +20,6 @@
love.distributedrebirth.nx01
nx01-x4o-maisdoc
-
- org.apache.tomcat
- tomcat-jasper-el
-
org.junit.jupiter
junit-jupiter
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OELContext.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OELContext.java
deleted file mode 100644
index 2062b35..0000000
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OELContext.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (c) 2004-2014, Willem Cazander
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package org.x4o.xml.el;
-
-import java.util.HashMap;
-
-import jakarta.el.ArrayELResolver;
-import jakarta.el.BeanELResolver;
-import jakarta.el.CompositeELResolver;
-import jakarta.el.ELContext;
-import jakarta.el.ELResolver;
-import jakarta.el.FunctionMapper;
-import jakarta.el.ListELResolver;
-import jakarta.el.MapELResolver;
-import jakarta.el.VariableMapper;
-
-/**
- * X4OELFunctionMapper simple EL context.
- *
- * @author Willem Cazander
- * @version 1.0 Sep 14, 2010
- */
-public class X4OELContext extends ELContext {
-
- private ELResolver elResolver = null;
- private FunctionMapper functionMapper = null;
- private VariableMapper variableMapper = null;
-
- /**
- * Creates a X4OELContext.
- */
- public X4OELContext() {
-
- CompositeELResolver compositeELResolver = new CompositeELResolver();
- compositeELResolver.add(new X4OELResolver(new HashMap(100)));
- compositeELResolver.add(new ArrayELResolver());
- compositeELResolver.add(new ListELResolver());
- compositeELResolver.add(new BeanELResolver());
- compositeELResolver.add(new MapELResolver());
-
- elResolver = compositeELResolver;
- functionMapper = new X4OELFunctionMapper();
- variableMapper = new X4OELVariableMapper();
- }
-
- /**
- * Returns the ELResolver.
- *
- * @return The ELResolver.
- * @see javax.el.ELContext#getELResolver()
- */
- @Override
- public ELResolver getELResolver() {
- return elResolver;
- }
-
- /**
- * Returns the FunctionMapper.
- *
- * @return The FunctionMapper.
- * @see javax.el.ELContext#getFunctionMapper()
- */
- @Override
- public FunctionMapper getFunctionMapper() {
- return functionMapper;
- }
-
- /**
- * Returns the VariableMapper.
- *
- * @return The VariableMapper.
- * @see javax.el.ELContext#getVariableMapper()
- */
- @Override
- public VariableMapper getVariableMapper() {
- return variableMapper;
- }
-}
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OELFunctionMapper.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OELFunctionMapper.java
deleted file mode 100644
index 62482c6..0000000
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OELFunctionMapper.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) 2004-2014, Willem Cazander
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package org.x4o.xml.el;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.HashMap;
-import java.util.Map;
-
-import jakarta.el.FunctionMapper;
-
-/**
- * X4OELFunctionMapper simple EL function mapper.
- *
- * @author Willem Cazander
- * @version 1.0 Sep 14, 2010
- */
-public class X4OELFunctionMapper extends FunctionMapper {
-
- /**
- * Stores the el to method function mapping.
- */
- private Map functionMap = null;
-
- /**
- * Creates a X4OELFunctionMapper.
- */
- public X4OELFunctionMapper() {
- functionMap = new HashMap(50);
- }
-
- /**
- * Resolves method el functions.
- *
- * @param prefix The function prefix.
- * @param localName The local name of function.
- * @return The resolved function or null is not found.
- */
- @Override
- public Method resolveFunction(String prefix, String localName) {
- String key = prefix + ":" + localName;
- return functionMap.get(key);
- }
-
- /**
- * Add an static method to the function mapper.
- *
- * @param prefix The function prefix.
- * @param localName The local name of function.
- * @param method The method to execute on.
- */
- public void addFunction(String prefix, String localName, Method method) {
- if (prefix == null || localName == null || method == null) {
- throw new NullPointerException();
- }
- int modifiers = method.getModifiers();
- if (!Modifier.isPublic(modifiers)) {
- throw new IllegalArgumentException("method not public");
- }
- if (!Modifier.isStatic(modifiers)) {
- throw new IllegalArgumentException("method not static");
- }
- Class> retType = method.getReturnType();
- if (retType == Void.TYPE) {
- throw new IllegalArgumentException("method returns void");
- }
-
- String key = prefix + ":" + localName;
- functionMap.put(key, method);
- }
-}
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OELResolver.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OELResolver.java
deleted file mode 100644
index 2d90da8..0000000
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OELResolver.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (c) 2004-2014, Willem Cazander
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package org.x4o.xml.el;
-
-import java.util.Iterator;
-import java.util.Map;
-
-import jakarta.el.ELContext;
-import jakarta.el.ELResolver;
-import jakarta.el.MapELResolver;
-
-/**
- * X4OELResolver simple EL resolver.
- *
- * @author Willem Cazander
- * @version 1.0 Sep 14, 2010
- */
-public class X4OELResolver extends ELResolver {
-
- private ELResolver delegate = null;
- private Map objectStore = null;
-
- /**
- * Creates X4OELResolver which is backed by the objectStore.
- *
- * @param objectStore The objectStore.
- */
- public X4OELResolver(Map objectStore) {
- this.objectStore = objectStore;
- delegate = new MapELResolver();
- }
-
- /**
- * Checks if base object is null and else return objectStore.
- *
- * @param base The base object to check.
- * @return Returns the base object or objectStore.
- */
- private Object checkBase(Object base) {
- if (base == null) {
- return objectStore;
- }
- return base;
- }
-
- @Override
- public Object getValue(ELContext context, Object base, Object property) {
- base = checkBase(base);
- return delegate.getValue(context, base, property);
- }
-
- @Override
- public Class> getCommonPropertyType(ELContext context, Object base) {
- base = checkBase(base);
- return delegate.getCommonPropertyType(context, base);
- }
-
-// @Override
-// @SuppressWarnings({ "rawtypes", "unchecked" })
-// public Iterator getFeatureDescriptors(ELContext context, Object base) {
-// base = checkBase(base);
-// return delegate.getFeatureDescriptors(context, base);
-// }
-
- @Override
- public Class> getType(ELContext context, Object base, Object property) {
- base = checkBase(base);
- return delegate.getType(context, base, property);
- }
-
- @Override
- public boolean isReadOnly(ELContext context, Object base, Object property) {
- base = checkBase(base);
- return delegate.isReadOnly(context, base, property);
- }
-
- @Override
- public void setValue(ELContext context, Object base, Object property, Object value) {
- base = checkBase(base);
- delegate.setValue(context, base, property, value);
- }
-}
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OELVariableMapper.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OELVariableMapper.java
deleted file mode 100644
index 224c21f..0000000
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OELVariableMapper.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2004-2014, Willem Cazander
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package org.x4o.xml.el;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import jakarta.el.ValueExpression;
-import jakarta.el.VariableMapper;
-
-/**
- * X4OELVariableMapper simple EL variable mapper.
- *
- * @author Willem Cazander
- * @version 1.0 Sep 14, 2010
- */
-public class X4OELVariableMapper extends VariableMapper {
-
- /** Map to hold all the expressions used. */
- private Map expressions = null;
-
- /**
- * Creates the X4OELVariableMapper.
- */
- public X4OELVariableMapper() {
- expressions = new HashMap();
- }
-
- /**
- * @see javax.el.VariableMapper#resolveVariable(java.lang.String)
- * @param var Resolve this var to an ValueExpression.
- * @return The resolved ValueExpression of the var.
- */
- @Override
- public ValueExpression resolveVariable(String var) {
- return expressions.get(var);
- }
-
- /**
- * @see javax.el.VariableMapper#setVariable(java.lang.String, javax.el.ValueExpression)
- * @param var Resolve this var to an ValueExpression.
- * @param expression The ValueExpression of the var.
- * @return The ValueExpression being set.
- */
- @Override
- public ValueExpression setVariable(String var, ValueExpression expression) {
- return expressions.put(var, expression);
- }
-}
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OExpressionFactory.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OExpressionFactory.java
deleted file mode 100644
index 3340682..0000000
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OExpressionFactory.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 2004-2014, Willem Cazander
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package org.x4o.xml.el;
-
-import jakarta.el.ELContext;
-import jakarta.el.ExpressionFactory;
-
-import org.x4o.xml.lang.X4OLanguageClassLoader;
-
-/**
- * X4OExpressionFactory finds and loads the needed impl.
- *
- * @author Willem Cazander
- * @version 1.0 Apr 7, 2013
- */
-public class X4OExpressionFactory {
-
- static public final String EL_FACTORY_IMPL_APACHE = "org.apache.el.ExpressionFactoryImpl";
- static public final String EL_FACTORY_IMPL_ODYSSEUS = "de.odysseus.el.ExpressionFactoryImpl";
-
- static public ExpressionFactory createExpressionFactory() {
- ExpressionFactory result = null;
- try {
- Class> expressionFactoryClass = X4OLanguageClassLoader.loadClass(EL_FACTORY_IMPL_APACHE);
- result = X4OLanguageClassLoader.newInstance(ExpressionFactory.class, expressionFactoryClass);
- } catch (ClassNotFoundException e) {
- try {
- Class> expressionFactoryClass = X4OLanguageClassLoader.loadClass(EL_FACTORY_IMPL_ODYSSEUS);
- result = X4OLanguageClassLoader.newInstance(ExpressionFactory.class, expressionFactoryClass);
- } catch (ClassNotFoundException ee) {
- throw new RuntimeException("Could not load ExpressionFactory tried: " + EL_FACTORY_IMPL_APACHE + " and " + EL_FACTORY_IMPL_ODYSSEUS
- + " but could not load one of them.");
- }
- }
- return result;
- }
-
- static public ELContext createELContext(Class> elContextClass) {
- try {
- return X4OLanguageClassLoader.newInstance(ELContext.class, elContextClass);
- } catch (ClassNotFoundException e) {
- throw new RuntimeException("Could not create instance of ELContext: " + e.getMessage(), e);
- }
- }
-}
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/el/package-info.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/el/package-info.java
deleted file mode 100644
index be21db4..0000000
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/el/package-info.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2004-2014, Willem Cazander
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * The Expression Language classes.
- *
- *
- * @since 1.0
- */
-
-package org.x4o.xml.el;
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java
index 8807ad4..09486dd 100644
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java
+++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java
@@ -25,8 +25,6 @@ package org.x4o.xml.eld;
import java.io.IOException;
import java.util.logging.Logger;
-import jakarta.el.ValueExpression;
-
import org.x4o.xml.X4ODriver;
import org.x4o.xml.X4ODriverManager;
import org.x4o.xml.io.DefaultX4OReader;
@@ -110,14 +108,16 @@ public class EldModuleLoader implements X4OLanguageModuleLoader {
}
public static X4OLanguage getLanguage(X4OLanguageSession context) {
- ValueExpression ee = context.getExpressionLanguageFactory().createValueExpression(context.getExpressionLanguageContext(),
- "${" + EL_PARENT_LANGUAGE + "}", X4OLanguage.class);
- return (X4OLanguage) ee.getValue(context.getExpressionLanguageContext());
+// ValueExpression ee = context.getExpressionLanguageFactory().createValueExpression(context.getExpressionLanguageContext(),
+// "${" + EL_PARENT_LANGUAGE + "}", X4OLanguage.class);
+// return (X4OLanguage) ee.getValue(context.getExpressionLanguageContext());
+ return (X4OLanguage) context.resolveContextBean("${" + EL_PARENT_LANGUAGE + "}");
}
public static X4OLanguageModule getLanguageModule(X4OLanguageSession context) {
- ValueExpression ee = context.getExpressionLanguageFactory().createValueExpression(context.getExpressionLanguageContext(),
- "${" + EL_PARENT_LANGUAGE_MODULE + "}", X4OLanguageModule.class);
- return (X4OLanguageModule) ee.getValue(context.getExpressionLanguageContext());
+// ValueExpression ee = context.getExpressionLanguageFactory().createValueExpression(context.getExpressionLanguageContext(),
+// "${" + EL_PARENT_LANGUAGE_MODULE + "}", X4OLanguageModule.class);
+// return (X4OLanguageModule) ee.getValue(context.getExpressionLanguageContext());
+ return (X4OLanguageModule) context.resolveContextBean("${" + EL_PARENT_LANGUAGE_MODULE + "}");
}
}
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/element/DefaultElementAttributeValueParser.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/element/DefaultElementAttributeValueParser.java
index 8a6ad0b..170185c 100644
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/element/DefaultElementAttributeValueParser.java
+++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/element/DefaultElementAttributeValueParser.java
@@ -25,8 +25,6 @@ package org.x4o.xml.element;
import java.util.Locale;
import java.util.logging.Logger;
-import jakarta.el.ValueExpression;
-
import org.x4o.xml.conv.ObjectConverterException;
/**
@@ -100,9 +98,10 @@ public class DefaultElementAttributeValueParser implements ElementAttributeValue
* @see org.x4o.xml.element.ElementAttributeValueParser#getELParameterValue(java.lang.String, org.x4o.xml.element.Element)
*/
public Object getELParameterValue(String value, Element element) throws ElementAttributeValueParserException {
- ValueExpression e = element.getLanguageSession().getExpressionLanguageFactory()
- .createValueExpression(element.getLanguageSession().getExpressionLanguageContext(), (String) value, Object.class);
- return e.getValue(element.getLanguageSession().getExpressionLanguageContext());
+ //ValueExpression e = element.getLanguageSession().getExpressionLanguageFactory()
+ // .createValueExpression(element.getLanguageSession().getExpressionLanguageContext(), (String) value, Object.class);
+ //return e.getValue(element.getLanguageSession().getExpressionLanguageContext());
+ return element.getLanguageSession().resolveContextBean(value);
}
/**
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java
index ddf0366..0f6a87d 100644
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java
+++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java
@@ -31,7 +31,6 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
-import jakarta.el.ValueExpression;
import javax.xml.parsers.ParserConfigurationException;
import org.x4o.sax3.io.ContentWriter;
@@ -115,16 +114,17 @@ public class DefaultX4OReader extends AbstractX4OReader {
throws X4OConnectionException, SAXException, IOException {
Objects.requireNonNull(languageSession, "Can't read into null language session");
Objects.requireNonNull(input, "Can't read a null input stream");
- Objects.requireNonNull(systemId, "No system-id provided for the input streamn");
- Objects.requireNonNull(basePath, "No base-path provided for the input streamn"); // TODO; make optional, use default working folder
+ Objects.requireNonNull(systemId, "No system-id provided for the input stream");
+ Objects.requireNonNull(basePath, "No base-path provided for the input stream"); // TODO; make optional, use default working folder
setProperty(INPUT_STREAM, input);
setProperty(INPUT_SYSTEM_ID, systemId);
setProperty(INPUT_BASE_PATH, basePath);
for (String name : elBeans.keySet()) {
Object bean = elBeans.get(name);
- ValueExpression ve = languageSession.getExpressionLanguageFactory().createValueExpression(languageSession.getExpressionLanguageContext(),
- "${" + name + "}", bean.getClass());
- ve.setValue(languageSession.getExpressionLanguageContext(), bean);
+ languageSession.storeContextBean(name, bean);
+// ValueExpression ve = languageSession.getExpressionLanguageFactory().createValueExpression(languageSession.getExpressionLanguageContext(),
+// "${" + name + "}", bean.getClass());
+// ve.setValue(languageSession.getExpressionLanguageContext(), bean);
}
readSession(languageSession);
}
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/AbstractX4OLanguageConfiguration.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/AbstractX4OLanguageConfiguration.java
index 98375ee..f199185 100644
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/AbstractX4OLanguageConfiguration.java
+++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/AbstractX4OLanguageConfiguration.java
@@ -50,7 +50,6 @@ public abstract class AbstractX4OLanguageConfiguration implements X4OLanguageCon
private Class> defaultLanguageVersionFilter = null;
private Class> defaultLanguageLoader = null;
- private Class> defaultExpressionLanguageContext = null;
/**
* Default constructor.
@@ -295,18 +294,4 @@ public abstract class AbstractX4OLanguageConfiguration implements X4OLanguageCon
public void setDefaultLanguageLoader(Class> defaultLanguageLoader) {
this.defaultLanguageLoader = defaultLanguageLoader;
}
-
- /**
- * @return the defaultExpressionLanguageContext
- */
- public Class> getDefaultExpressionLanguageContext() {
- return defaultExpressionLanguageContext;
- }
-
- /**
- * @param defaultExpressionLanguageContext the defaultExpressionLanguageContext to set
- */
- public void setDefaultExpressionLanguageContext(Class> defaultExpressionLanguageContext) {
- this.defaultExpressionLanguageContext = defaultExpressionLanguageContext;
- }
}
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/AbstractX4OLanguageSession.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/AbstractX4OLanguageSession.java
index c840f48..e544836 100644
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/AbstractX4OLanguageSession.java
+++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/AbstractX4OLanguageSession.java
@@ -28,12 +28,10 @@ import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
-import jakarta.el.ELContext;
-import jakarta.el.ExpressionFactory;
-
import org.x4o.xml.element.Element;
import org.x4o.xml.element.ElementAttributeValueParser;
import org.x4o.xml.element.ElementObjectPropertyValue;
+import org.x4o.xml.element.ElementObjectPropertyValueException;
import org.x4o.xml.io.X4ODebugWriter;
import org.x4o.xml.lang.phase.X4OPhase;
import org.x4o.xml.lang.phase.X4OPhaseListener;
@@ -46,10 +44,9 @@ import org.x4o.xml.lang.phase.X4OPhaseListener;
*/
public abstract class AbstractX4OLanguageSession implements X4OLanguageSessionLocal {
- private Logger logger = null;
- private X4OLanguage language = null;
- private ExpressionFactory expressionFactory = null;
- private ELContext eLContext = null;
+ private final Logger logger;
+ private final X4OLanguage language;
+ private final Map beans = new HashMap<>();
private ElementAttributeValueParser elementAttributeValueParser = null;
private ElementObjectPropertyValue elementObjectPropertyValue = null;
private List dirtyElements = null;
@@ -68,7 +65,7 @@ public abstract class AbstractX4OLanguageSession implements X4OLanguageSessionLo
throw new NullPointerException("language may not be null");
}
logger = Logger.getLogger(AbstractX4OLanguageSession.class.getName());
- logger.finest("Creating new ParsingContext");
+ logger.finest("Creating new " + this.getClass().getName());
this.language = language;
dirtyElements = new ArrayList<>(20);
phaseSkip = new ArrayList<>(5);
@@ -78,39 +75,40 @@ public abstract class AbstractX4OLanguageSession implements X4OLanguageSessionLo
public X4OLanguage getLanguage() {
return language;
}
-
- /**
- * @see org.x4o.xml.lang.X4OLanguageSession#getExpressionLanguageContext()
- */
- public ELContext getExpressionLanguageContext() {
- return eLContext;
- }
-
- /**
- * @see org.x4o.xml.lang.X4OLanguageSessionLocal#setExpressionLanguageContext(javax.el.ELContext)
- */
- public void setExpressionLanguageContext(ELContext context) {
- if (eLContext != null) {
- throw new IllegalStateException("Can only set elContext once.");
+
+ public Object resolveContextBean(String named) {
+ if (named.startsWith("${") == false) {
+ return named; // equal to EL, rework invoke from X4OPhaseLanguageRead.java:359
}
- eLContext = context;
- }
-
- /**
- * @see org.x4o.xml.lang.X4OLanguageSession#getExpressionLanguageFactory()
- */
- public ExpressionFactory getExpressionLanguageFactory() {
- return expressionFactory;
- }
-
- /**
- * @see org.x4o.xml.lang.X4OLanguageSessionLocal#setExpressionLanguageFactory(javax.el.ExpressionFactory)
- */
- public void setExpressionLanguageFactory(ExpressionFactory expressionFactory) {
- if (this.expressionFactory != null) {
- throw new IllegalStateException("Can only set expressionFactory once.");
+ named = named.substring(2, named.length() - 1);
+
+ Object result = null;
+ if (named.contains(".")) {
+ int dotIdx = named.indexOf('.');
+ String beanName = named.substring(0, dotIdx);
+ String beanPropPath = named.substring(dotIdx + 1, named.length());
+ result = beans.get(beanName);
+ if (result == null) {
+ throw new NullPointerException("Failed to resolve: " + beanName);
+ }
+ try {
+ result = getElementObjectPropertyValue().getProperty(result, beanPropPath);
+ } catch (ElementObjectPropertyValueException e) {
+ throw new IllegalStateException(e);
+ }
+ } else {
+ result = beans.get(named);
}
- this.expressionFactory = expressionFactory;
+ if (result == null) {
+ //throw new NullPointerException("Failed to resolve: " + named);
+ //TODO: fixme old java EL returns null, which fails unit tests on "date0" missing bean
+ }
+ return result;
+ }
+
+ public void storeContextBean(String name, Object bean) {
+ logger.finer("storeContextBean name = " + name);
+ beans.put(name, bean);
}
/**
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java
index d12c253..cbe09fd 100644
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java
+++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java
@@ -29,7 +29,6 @@ import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
-import org.x4o.xml.el.X4OExpressionFactory;
import org.x4o.xml.element.Element;
import org.x4o.xml.element.ElementAttributeValueParser;
import org.x4o.xml.element.ElementBindingHandler;
@@ -147,13 +146,13 @@ public class DefaultX4OLanguage implements X4OLanguageLocal {
protected X4OLanguageSession buildElementLanguage(X4OLanguageSessionLocal languageSession) {
try {
- if (languageSession.getExpressionLanguageFactory() == null) {
- languageSession.setExpressionLanguageFactory(X4OExpressionFactory.createExpressionFactory());
- }
- if (languageSession.getExpressionLanguageContext() == null) {
- languageSession.setExpressionLanguageContext(
- X4OExpressionFactory.createELContext(languageSession.getLanguage().getLanguageConfiguration().getDefaultExpressionLanguageContext()));
- }
+// if (languageSession.getExpressionLanguageFactory() == null) {
+// languageSession.setExpressionLanguageFactory(X4OExpressionFactory.createExpressionFactory());
+// }
+// if (languageSession.getExpressionLanguageContext() == null) {
+// languageSession.setExpressionLanguageContext(
+// X4OExpressionFactory.createELContext(languageSession.getLanguage().getLanguageConfiguration().getDefaultExpressionLanguageContext()));
+// }
if (languageSession.getElementAttributeValueParser() == null) {
languageSession.setElementAttributeValueParser(X4OLanguageClassLoader.newInstance(ElementAttributeValueParser.class,
getLanguageConfiguration().getDefaultElementAttributeValueParser()));
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageConfiguration.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageConfiguration.java
index 4c4e023..7cf932a 100644
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageConfiguration.java
+++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageConfiguration.java
@@ -26,7 +26,6 @@ import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
-import org.x4o.xml.el.X4OELContext;
import org.x4o.xml.element.DefaultElement;
import org.x4o.xml.element.DefaultElementAttributeValueParser;
import org.x4o.xml.element.DefaultElementBodyCharacters;
@@ -73,7 +72,6 @@ public class DefaultX4OLanguageConfiguration extends AbstractX4OLanguageConfigur
if (getDefaultElementNamespaceAttributeComparator()==null){ setDefaultElementNamespaceAttributeComparator( DefaultElementNamespaceAttributeComparator.class); }
if (getDefaultLanguageVersionFilter()==null) { setDefaultLanguageVersionFilter( DefaultX4OLanguageVersionFilter.class); }
if (getDefaultLanguageLoader()==null) { setDefaultLanguageLoader( DefaultX4OLanguageLoader.class); }
- if (getDefaultExpressionLanguageContext()==null) { setDefaultExpressionLanguageContext( X4OELContext.class); }
}
//@formatter:on
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageConfiguration.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageConfiguration.java
index 897f9e6..12041a8 100644
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageConfiguration.java
+++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageConfiguration.java
@@ -83,9 +83,4 @@ public interface X4OLanguageConfiguration {
* @return Returns the X4OLanguageLoader which loads languages into the element context.
*/
Class> getDefaultLanguageLoader();
-
- /**
- * @return Returns the Expression Language Context which holds the el objects.
- */
- Class> getDefaultExpressionLanguageContext();
}
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageConfigurationLocal.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageConfigurationLocal.java
index 10b6e32..e1b83d5 100644
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageConfigurationLocal.java
+++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageConfigurationLocal.java
@@ -65,6 +65,4 @@ public interface X4OLanguageConfigurationLocal extends X4OLanguageConfiguration
void setDefaultLanguageVersionFilter(Class> value);
void setDefaultLanguageLoader(Class> value);
-
- void setDefaultExpressionLanguageContext(Class> value);
}
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSession.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSession.java
index e4a286b..e1d1de6 100644
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSession.java
+++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSession.java
@@ -24,9 +24,6 @@ package org.x4o.xml.lang;
import java.util.List;
-import jakarta.el.ELContext;
-import jakarta.el.ExpressionFactory;
-
import org.x4o.xml.element.Element;
import org.x4o.xml.element.ElementAttributeValueParser;
import org.x4o.xml.element.ElementObjectPropertyValue;
@@ -46,20 +43,12 @@ public interface X4OLanguageSession extends AutoCloseable {
* @return Returns the language from which this session in created.
*/
X4OLanguage getLanguage();
+
- /**
- * Gets the EL Context.
- *
- * @return Returns the ELContext.
- */
- ELContext getExpressionLanguageContext();
-
- /**
- * Gets the ExpressionFactory.
- *
- * @return Returns the ExpressionFactory.
- */
- ExpressionFactory getExpressionLanguageFactory();
+ Object resolveContextBean(String named);
+
+ // move to local?
+ void storeContextBean(String name, Object bean);
/**
* @return Returns the ElementAttributeValueParser.
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSessionLocal.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSessionLocal.java
index e316540..8403119 100644
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSessionLocal.java
+++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSessionLocal.java
@@ -24,9 +24,6 @@ package org.x4o.xml.lang;
import java.util.List;
-import jakarta.el.ELContext;
-import jakarta.el.ExpressionFactory;
-
import org.x4o.xml.element.ElementAttributeValueParser;
import org.x4o.xml.element.ElementObjectPropertyValue;
import org.x4o.xml.io.X4ODebugWriter;
@@ -49,20 +46,6 @@ public interface X4OLanguageSessionLocal extends X4OLanguageSession {
*/
List storePhaseListeners(String phaseId);
- /**
- * Sets the EL Context.
- *
- * @param context The ELContext to set.
- */
- void setExpressionLanguageContext(ELContext context);
-
- /**
- * Sets the ExpressionFactory.
- *
- * @param expressionFactory The ExpressionFactory to set.
- */
- void setExpressionLanguageFactory(ExpressionFactory expressionFactory);
-
/**
* @param elementAttributeValueParser The elementAttributeValueParser to set.
*/
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/meta/ELIDAttributeHandler.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/meta/ELIDAttributeHandler.java
index e80bf89..a274369 100644
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/meta/ELIDAttributeHandler.java
+++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/meta/ELIDAttributeHandler.java
@@ -24,8 +24,6 @@ package org.x4o.xml.lang.meta;
import java.util.logging.Logger;
-import jakarta.el.ValueExpression;
-
import org.x4o.xml.element.AbstractElementNamespaceAttribute;
import org.x4o.xml.element.Element;
import org.x4o.xml.element.ElementConfiguratorException;
@@ -56,10 +54,11 @@ public class ELIDAttributeHandler extends AbstractElementNamespaceAttribute {
if (element.getElementObject() == null) {
throw new NullPointerException("Can't bind null object to el context");
}
- ValueExpression ee = element.getLanguageSession().getExpressionLanguageFactory().createValueExpression(
- element.getLanguageSession().getExpressionLanguageContext(), "${" + attributeValue + "}", element.getElementObject().getClass());
+ //ValueExpression ee = element.getLanguageSession().getExpressionLanguageFactory().createValueExpression(
+ // element.getLanguageSession().getExpressionLanguageContext(), "${" + attributeValue + "}", element.getElementObject().getClass());
Logger.getLogger(ELIDAttributeHandler.class.getName())
.finer("Set Variable in ELContext: " + "${" + attributeValue + "}" + " object SET: " + element.getElementObject());
- ee.setValue(element.getLanguageSession().getExpressionLanguageContext(), element.getElementObject());
+ //ee.setValue(element.getLanguageSession().getExpressionLanguageContext(), element.getElementObject());
+ element.getLanguageSession().storeContextBean(attributeValue, element.getElementObject());
}
}
diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/meta/ELReferenceElement.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/meta/ELReferenceElement.java
index a6436ef..fcd8bd1 100644
--- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/meta/ELReferenceElement.java
+++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/meta/ELReferenceElement.java
@@ -24,8 +24,6 @@ package org.x4o.xml.lang.meta;
import java.util.logging.Logger;
-import jakarta.el.ValueExpression;
-
import org.x4o.xml.element.AbstractElement;
import org.x4o.xml.element.ElementException;
@@ -44,9 +42,10 @@ public class ELReferenceElement extends AbstractElement {
if ("".equals(attributeValue) | attributeValue == null) {
throw new ElementException("Set the el.ref attribute");
}
- ValueExpression ee = getLanguageSession().getExpressionLanguageFactory().createValueExpression(getLanguageSession().getExpressionLanguageContext(),
- "${" + attributeValue + "}", Object.class);
+ //ValueExpression ee = getLanguageSession().getExpressionLanguageFactory().createValueExpression(getLanguageSession().getExpressionLanguageContext(),
+ // "${" + attributeValue + "}", Object.class);
Logger.getLogger(ELReferenceElement.class.getName()).finer("Get Variable in ELContext: ${" + attributeValue + "}");
- setElementObject(ee.getValue(getLanguageSession().getExpressionLanguageContext()));
+ //setElementObject(ee.getValue(getLanguageSession().getExpressionLanguageContext()));
+ setElementObject(getLanguageSession().resolveContextBean("${" + attributeValue + "}"));
}
}
diff --git a/nx01-x4o-driver/src/test/java/org/x4o/xml/eld/xsd/EldXsdLanguageTaskTest.java b/nx01-x4o-driver/src/test/java/org/x4o/xml/eld/xsd/EldXsdLanguageTaskTest.java
index b791ce5..b0db23e 100644
--- a/nx01-x4o-driver/src/test/java/org/x4o/xml/eld/xsd/EldXsdLanguageTaskTest.java
+++ b/nx01-x4o-driver/src/test/java/org/x4o/xml/eld/xsd/EldXsdLanguageTaskTest.java
@@ -56,7 +56,6 @@ public class EldXsdLanguageTaskTest {
return result;
}
- @Test
private File testSchema(String language, String outputPostfix, Map props) throws Exception {
X4ODriver> driver = X4ODriverManager.getX4ODriver(language);
X4OLanguageTask task = driver.getLanguageTask(EldXsdLanguageTask.TASK_ID);
diff --git a/nx01-x4o-driver/src/test/java/org/x4o/xml/io/X4OReaderSessionTest.java b/nx01-x4o-driver/src/test/java/org/x4o/xml/io/X4OReaderSessionTest.java
index 548da49..3b938b3 100644
--- a/nx01-x4o-driver/src/test/java/org/x4o/xml/io/X4OReaderSessionTest.java
+++ b/nx01-x4o-driver/src/test/java/org/x4o/xml/io/X4OReaderSessionTest.java
@@ -30,7 +30,6 @@ import java.net.URL;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.x4o.xml.X4ODriver;
-import org.x4o.xml.lang.X4OLanguageSession;
import org.x4o.xml.test.TestDriver;
import org.x4o.xml.test.models.TestBean;
import org.x4o.xml.test.models.TestObjectRoot;
diff --git a/nx01-x4o-driver/src/test/java/org/x4o/xml/test/swixml/SwiXmlDriver.java b/nx01-x4o-driver/src/test/java/org/x4o/xml/test/swixml/SwiXmlDriver.java
index ab62819..1493dd0 100644
--- a/nx01-x4o-driver/src/test/java/org/x4o/xml/test/swixml/SwiXmlDriver.java
+++ b/nx01-x4o-driver/src/test/java/org/x4o/xml/test/swixml/SwiXmlDriver.java
@@ -24,8 +24,6 @@ package org.x4o.xml.test.swixml;
import java.awt.Component;
-import jakarta.el.ValueExpression;
-
import org.x4o.xml.X4ODriver;
import org.x4o.xml.X4ODriverManager;
import org.x4o.xml.lang.X4OLanguageSession;
@@ -52,9 +50,10 @@ public class SwiXmlDriver extends X4ODriver {
* @return Returns the SwingEngine for this elementLanguage.
*/
static public SwingEngine getSwingEngine(X4OLanguageSession elementLanguage) {
- ValueExpression ee = elementLanguage.getExpressionLanguageFactory().createValueExpression(elementLanguage.getExpressionLanguageContext(),
- "${" + SwiXmlDriver.LANGUAGE_EL_SWING_ENGINE + "}", Object.class);
- SwingEngine se = (SwingEngine) ee.getValue(elementLanguage.getExpressionLanguageContext());
+ //ValueExpression ee = elementLanguage.getExpressionLanguageFactory().createValueExpression(elementLanguage.getExpressionLanguageContext(),
+ // "${" + SwiXmlDriver.LANGUAGE_EL_SWING_ENGINE + "}", Object.class);
+ //SwingEngine se = (SwingEngine) ee.getValue(elementLanguage.getExpressionLanguageContext());
+ SwingEngine se = (SwingEngine) elementLanguage.resolveContextBean("${" + SwiXmlDriver.LANGUAGE_EL_SWING_ENGINE + "}");
return se;
}
diff --git a/pom.xml b/pom.xml
index 0288d99..524de22 100644
--- a/pom.xml
+++ b/pom.xml
@@ -189,11 +189,6 @@
commonmark
0.22.0
-
- org.apache.tomcat
- tomcat-jasper-el
- 11.0.20
-
org.apache.ant
ant
diff --git a/src/site/wigiti/README-x4o.md b/src/site/wigiti/README-x4o.md
index cfc10d4..e5b0ea2 100644
--- a/src/site/wigiti/README-x4o.md
+++ b/src/site/wigiti/README-x4o.md
@@ -4,10 +4,10 @@ X4O is not an XML parser but a recursive self configuring XML dialect language l
X4O is very old code from pre 1.5 non-generics nice object java.
-## 2025 TODO
+## 2025++ TODO
- Add 18 bit SAX4 XML read and write support
-- RM 8 bit String DEP, replace javax.el by simple obj map
+- (DONE) RM 8 bit String DEP, replace javax.el by simple obj map
- Upgrade X4O element language to support 18 bit XML
- Remove some features to ease "write" and SAX4 support
- Move all XML uri's to oasis style thus replacing all internal http namespace locators
@@ -16,10 +16,10 @@ X4O is very old code from pre 1.5 non-generics nice object java.
- Cleanup old todo/ideas from below
- Add global task runners besides language task runners
- Fix manual init of X4OLanguageLocal as it was designed that X4OLanguage + parsed ELD tree could be cached in driver manager
+- Rewrite model (.xml.element + .xml.eld.lang) to new enter-`RICE` bean replacement, split to data records and lamda records holders.
## OLD todo
-- Fix debug output
- RM function methods from Element interface
- finish eld doc-output content
- Make generic/safe? config bean