diff --git a/.github/workflows/java8Check.yml b/.github/workflows/java8Check.yml
new file mode 100644
index 0000000..5673e30
--- /dev/null
+++ b/.github/workflows/java8Check.yml
@@ -0,0 +1,43 @@
+name: Check java class version
+on:
+ push:
+ branches:
+ - "*"
+ pull_request:
+ types: [opened, synchronize, reopened]
+jobs:
+ build:
+ name: Build and check
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
+ - name: Set up JDK 17
+ uses: actions/setup-java@v4
+ with:
+ java-version: 17
+ distribution: 'zulu' # Alternative distribution options are available.
+ - name: Cache Maven packages
+ uses: actions/cache@v4
+ with:
+ path: ~/.m2
+ key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
+ restore-keys: ${{ runner.os }}-m2
+ - name: Build and check
+ run: |
+ mvn -P sonar package
+ cd java8Test
+ mvn package
+
+ echo "checking ../javaluator-demo/target/javaluator-demo.jar"
+ java -jar target/javaReleaseTest.jar ../javaluator-demo/target/javaluator-demo.jar 52
+
+ # Let check the library itself in case demo pom points to an older release of the library
+ OUT="$(ls ../javaluator/target/javaluator*.jar | grep -v javadoc.jar | grep -v sources.jar)"
+ echo "checking $OUT"
+ java -jar target/javaReleaseTest.jar $OUT 52
+
+ OUT="$(ls ../javaluator-examples/target/javaluator-examples*.jar | grep -v javadoc.jar | grep -v sources.jar)"
+ echo "checking $OUT"
+ java -jar target/javaReleaseTest.jar $OUT 52
\ No newline at end of file
diff --git a/DeliveryProcess.md b/DeliveryProcess.md
index b5bcb1b..be79b15 100644
--- a/DeliveryProcess.md
+++ b/DeliveryProcess.md
@@ -3,27 +3,34 @@
## Deploy the artifact on Maven central
1. Push the code in `master` branch.
-It will trigger some workflows. Please note that `tutorial` workflow may fail! It only means [Javaluator tutorial on Javaluator's site](https://javaluator.fathzer.com) require some updates.
-If Sonar quality gate fail ... try to fix its complaints ;-)
+It will trigger some workflows. Please note that `tutorial` workflow may fail! If it fails, it means that [Javaluator tutorial on Javaluator's site](https://javaluator.fathzer.com) require some updates.
+If Sonar quality gate fails ... try to fix its complaints ;-)
-2. Run `mvn clean deploy` on the project.
-As the compiler target is Java 1.6, it will fail with recent release of Java. Java 8 is able to make the compile.
-The easiest way to use java 8 is to [configure a *toolchain*](#HowToConfigureToolchain).
+2. Ensure *toolchain* is configured ([see how to do it](#how-to-configure-toolchain)) and the jdk required in [*pom.xml*](https://github.com/fathzer/javaluator/blob/master/pom.xml)) is available.
+
+3. Run `mvn clean deploy` on the project.
Of course, signing material (certificate and its password) are not included in this project: There should be `fathzer_private_key.asc` and `fathzer_key_pwd.txt` files in the user's home directory.
3. Create a release in Github.
## Javaluator's site update
-1. Update the [`father/hosting`](https://github.com/fathzer/hosting) private project.
+1. If a new demo has to be compiled, run `mvn -P demo clean package` on the project.
+
+2. Update the [`father/hosting`](https://github.com/fathzer/hosting) private project.
- If the `tutorial` workflow fails, have a look at its logs, it should contains the list of files that should be updated in the project. Once the project is updated, retry the failed action, it should succeed.
- Add the version release notes to the `javaluator/www/en/doc/relnotes.txt` file.
-2. Don't forget to push the updates in the production site!
+3. Don't forget to push the updates in the production site!
+
+## Update javadoc on javadoc.io
+
+Once the Maven artifacts are available on [Maven central](https://search.maven.org/search?q=a:javaluator), open the link `https://javadoc.io/doc/com.fathzer/javaluator/*VERSION*/` were *VERSION* is the new release number.
+javadoc.io will process the request and made the new release available after a couple of minutes.
## How to configure toolchain
-Add a *toolchain.xml* file](#HowToConfigureToolchain) in your `.m2` directory.
+Add a *toolchain.xml* file in your `.m2` directory.
This file should contain something like:
```
@@ -32,7 +39,7 @@ This file should contain something like:
jdk
- 8
+ 21
sun
@@ -41,5 +48,4 @@ This file should contain something like:
```
-Once it is done, java 8 is activated with the `jdk` system property: `mvn -Djdk=8 clean deploy`
diff --git a/java8Test/README.md b/java8Test/README.md
new file mode 100644
index 0000000..5f5593a
--- /dev/null
+++ b/java8Test/README.md
@@ -0,0 +1 @@
+This folder contains a program used by 'java8Check.yml' workflow to check if generated classes are compatible with a java 8 (the exact release is defined in the workflow) virtual machine.
\ No newline at end of file
diff --git a/java8Test/pom.xml b/java8Test/pom.xml
new file mode 100644
index 0000000..1a64585
--- /dev/null
+++ b/java8Test/pom.xml
@@ -0,0 +1,50 @@
+
+ 4.0.0
+
+ com.fathzer
+ parent-pom
+ 1.0.8
+
+
+ java-release-test
+ 0.0.1
+ java-release-test
+ A program that tests a jar contains classes compatible with a
+ specific java release.
+
+
+ UTF-8
+ true
+ true
+ true
+ true
+
+
+
+
+
+ maven-shade-plugin
+ 3.4.1
+
+ javaReleaseTest
+
+
+ com.fathzer.java.release.Check
+
+
+
+
+
+ package
+
+ shade
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/java8Test/src/main/java/com/fathzer/java/release/Check.java b/java8Test/src/main/java/com/fathzer/java/release/Check.java
new file mode 100644
index 0000000..60e759a
--- /dev/null
+++ b/java8Test/src/main/java/com/fathzer/java/release/Check.java
@@ -0,0 +1,47 @@
+package com.fathzer.java.release;
+
+import java.io.DataInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.function.Predicate;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+
+public class Check {
+ private static final String CLASS_SUFFIX = ".class";
+
+ public static void main(String[] args) {
+ try {
+ if (args.length!=2) {
+ throw new IllegalArgumentException("This program requires two arguments: a jar file path and a maximum class level");
+ }
+ final File jar = new File(args[0]);
+ final int maxRelease = Integer.parseInt(args[1]);
+ new Check().check(jar, maxRelease, s->s.endsWith("-info.class"));
+ System.out.println("ok");
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.exit(1);
+ }
+ }
+
+ private void check(File jar, int maxRelease, Predicate ignored) throws IOException {
+ try (ZipInputStream zip = new ZipInputStream(new FileInputStream(jar))) {
+ final DataInputStream data = new DataInputStream(zip);
+ for (ZipEntry entry = zip.getNextEntry(); entry!=null; entry = zip.getNextEntry()) {
+ if (!entry.isDirectory() && entry.getName().endsWith(CLASS_SUFFIX) && !ignored.test(entry.getName())) {
+ if (zip.skip(6)!=6) {
+ throw new IOException("End of file reached before major class version");
+ }
+ final int release = data.readUnsignedShort();
+ if (release>maxRelease) {
+ throw new IllegalArgumentException("The major class version of "+entry.getName()+" is "+release);
+ }
+ }
+ }
+ }
+ }
+
+
+}
diff --git a/javaluator-demo/pom.xml b/javaluator-demo/pom.xml
index 27bce10..cacc38f 100644
--- a/javaluator-demo/pom.xml
+++ b/javaluator-demo/pom.xml
@@ -5,10 +5,10 @@
com.fathzer
javaluator-parent-pom
- 1.0.0
+ 1.0.1
javaluator-demo
- 3.0.2
+ 3.0.3
true
@@ -20,7 +20,7 @@
com.fathzer
javaluator
- 3.0.4
+ 3.0.5
com.fathzer
@@ -46,6 +46,17 @@
+
+
+ *:*
+
+ module-info.class
+ META-INF/*.SF
+ META-INF/*.DSA
+ META-INF/*.RSA
+
+
+
diff --git a/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/ConstantTableModel.java b/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/ConstantTableModel.java
index 319c551..9f43708 100644
--- a/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/ConstantTableModel.java
+++ b/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/ConstantTableModel.java
@@ -15,12 +15,9 @@ public class ConstantTableModel extends AbstractTableModel {
private List constants;
public ConstantTableModel(Collection collection) {
- this.constants = new ArrayList(collection);
- Collections.sort(this.constants, new Comparator() {
- public int compare(Constant c1, Constant c2) {
- return c1.getName().compareTo(c2.getName());
- }
- });
+ this.constants = new ArrayList<>(collection);
+ final Comparator cmp = (c1, c2) -> c1.getName().compareTo(c2.getName());
+ Collections.sort(this.constants, cmp);
}
public int getColumnCount() {
diff --git a/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/DemoPanel.java b/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/DemoPanel.java
index 57b3749..2a2cff3 100644
--- a/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/DemoPanel.java
+++ b/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/DemoPanel.java
@@ -5,8 +5,6 @@
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeEvent;
import java.awt.Insets;
import javax.swing.border.TitledBorder;
@@ -86,8 +84,7 @@ private JLabel getLblNewLabel() {
private TextWidget getExpression() {
if (expression == null) {
expression = new TextWidget();
- expression.addPropertyChangeListener(TextWidget.TEXT_PROPERTY, new PropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent evt) {
+ expression.addPropertyChangeListener(TextWidget.TEXT_PROPERTY, evt -> {
try {
String exp = expression.getText();
Object result = exp.length()==0 ? exp : getEvaluator().evaluate(exp);
@@ -98,7 +95,6 @@ public void propertyChange(PropertyChangeEvent evt) {
getResultLabel().setText("error: "+e);
resultLabel.setForeground(Color.RED);
}
- }
});
expression.setColumns(30);
}
diff --git a/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/FunctionTableModel.java b/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/FunctionTableModel.java
index 470e762..b5f7498 100644
--- a/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/FunctionTableModel.java
+++ b/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/FunctionTableModel.java
@@ -3,7 +3,6 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.Comparator;
import java.util.List;
import javax.swing.table.AbstractTableModel;
@@ -15,12 +14,8 @@ public class FunctionTableModel extends AbstractTableModel {
private List functions;
public FunctionTableModel(Collection collection) {
- this.functions = new ArrayList(collection);
- Collections.sort(this.functions, new Comparator() {
- public int compare(Function f1, Function f2) {
- return f1.getName().compareTo(f2.getName());
- }
- });
+ this.functions = new ArrayList<>(collection);
+ Collections.sort(this.functions, (f1,f2) -> f1.getName().compareTo(f2.getName()));
}
public int getColumnCount() {
diff --git a/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/OperatorTableModel.java b/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/OperatorTableModel.java
index 373d3ed..3e17590 100644
--- a/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/OperatorTableModel.java
+++ b/javaluator-demo/src/main/java/com/fathzer/soft/javaluator/demo/OperatorTableModel.java
@@ -3,7 +3,6 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.Comparator;
import java.util.List;
import javax.swing.table.AbstractTableModel;
@@ -15,12 +14,8 @@ public class OperatorTableModel extends AbstractTableModel {
private List operators;
public OperatorTableModel(Collection collection) {
- this.operators = new ArrayList(collection);
- Collections.sort(this.operators, new Comparator() {
- public int compare(Operator o1, Operator o2) {
- return o1.getPrecedence()-o2.getPrecedence();
- }
- });
+ this.operators = new ArrayList<>(collection);
+ Collections.sort(this.operators, (o1, o2) -> o1.getPrecedence()-o2.getPrecedence());
}
public int getColumnCount() {
diff --git a/javaluator-demo/src/main/java/module-info.java b/javaluator-demo/src/main/java/module-info.java
new file mode 100644
index 0000000..9508c55
--- /dev/null
+++ b/javaluator-demo/src/main/java/module-info.java
@@ -0,0 +1,5 @@
+module javaluator.demo {
+ requires javaluator;
+ requires java.desktop;
+ requires ajlib;
+}
\ No newline at end of file
diff --git a/javaluator-examples/pom.xml b/javaluator-examples/pom.xml
index b14a6eb..0e7a844 100644
--- a/javaluator-examples/pom.xml
+++ b/javaluator-examples/pom.xml
@@ -4,11 +4,11 @@
com.fathzer
javaluator-parent-pom
- 1.0.0
+ 1.0.1
javaluator-examples
- 3.0.4
+ 3.0.5
javaluator-examples
Some examples of use of Javaluator.
@@ -17,29 +17,7 @@
com.fathzer
javaluator
- 3.0.4
+ 3.0.5
-
-
-
-
- org.apache.maven.plugins
- maven-install-plugin
- 2.5.1
-
- true
-
-
-
-
- org.apache.maven.plugins
- maven-deploy-plugin
- 2.8.1
-
- true
-
-
-
-
\ No newline at end of file
diff --git a/javaluator-examples/src/main/java/com/fathzer/soft/javaluator/examples/TextualOperatorsEvaluator.java b/javaluator-examples/src/main/java/com/fathzer/soft/javaluator/examples/TextualOperatorsEvaluator.java
index 38d19c6..b60e7f0 100644
--- a/javaluator-examples/src/main/java/com/fathzer/soft/javaluator/examples/TextualOperatorsEvaluator.java
+++ b/javaluator-examples/src/main/java/com/fathzer/soft/javaluator/examples/TextualOperatorsEvaluator.java
@@ -67,7 +67,7 @@ protected Iterator tokenize(String expression) {
}
public static void main(String[] args) {
- Map variableToValue = new HashMap();
+ Map variableToValue = new HashMap<>();
variableToValue.put("type", "PORT");
AbstractEvaluator evaluator = new TextualOperatorsEvaluator();
System.out.println ("type=PORT -> "+evaluator.evaluate("type=PORT", variableToValue));
diff --git a/javaluator-examples/src/main/java/com/fathzer/soft/javaluator/examples/Variables.java b/javaluator-examples/src/main/java/com/fathzer/soft/javaluator/examples/Variables.java
index ce800e6..3f484d5 100644
--- a/javaluator-examples/src/main/java/com/fathzer/soft/javaluator/examples/Variables.java
+++ b/javaluator-examples/src/main/java/com/fathzer/soft/javaluator/examples/Variables.java
@@ -12,7 +12,7 @@ public static void main(String[] args) {
// Create the evaluator
final DoubleEvaluator eval = new DoubleEvaluator();
// Create a new empty variable set
- final StaticVariableSet variables = new StaticVariableSet();
+ final StaticVariableSet variables = new StaticVariableSet<>();
double x = 0;
final double step = Math.PI/8;
while (x<=Math.PI/2) {
diff --git a/javaluator-examples/src/main/java/module-info.java b/javaluator-examples/src/main/java/module-info.java
new file mode 100644
index 0000000..79f44c0
--- /dev/null
+++ b/javaluator-examples/src/main/java/module-info.java
@@ -0,0 +1,4 @@
+module javaluator.examples {
+ exports com.fathzer.soft.javaluator.examples;
+ requires javaluator;
+}
\ No newline at end of file
diff --git a/javaluator-examples/src/test/java/com/fathzer/soft/javaluator/examples/junit/ExamplesTest.java b/javaluator-examples/src/test/java/com/fathzer/soft/javaluator/examples/junit/ExamplesTest.java
index 6ab2fdc..1a5fa53 100644
--- a/javaluator-examples/src/test/java/com/fathzer/soft/javaluator/examples/junit/ExamplesTest.java
+++ b/javaluator-examples/src/test/java/com/fathzer/soft/javaluator/examples/junit/ExamplesTest.java
@@ -34,7 +34,7 @@ public void testExtended() {
ExtendedDoubleEvaluator evaluator = new ExtendedDoubleEvaluator();
// Test that all this stuff is ok
String expression = "sqrt(abs(-2))^2";
- assertEquals(2, evaluator.evaluate(expression), 0.00001);;
+ assertEquals(2, evaluator.evaluate(expression), 0.00001);
}
@Test
diff --git a/javaluator-examples/test.sh b/javaluator-examples/test.sh
new file mode 100644
index 0000000..4ded9fa
--- /dev/null
+++ b/javaluator-examples/test.sh
@@ -0,0 +1,11 @@
+./detectDiff.sh ../../hosting/javaluator/www/en/doc/tutorial ./src/main/java/com/fathzer/soft/javaluator/examples
+echo "result diff="$?
+
+./detectDiff.sh ../../hosting/javaluator/www/en/doc/tutorial ../../hosting/javaluator/www/en/doc/tutorial
+echo "result same dir="$?
+
+./detectDiff.sh ../../hosting/javaluator/www/en/doc/tutorialx ./src/main/java/com/fathzer/soft/javaluator/examples
+echo "result missing src dir="$?
+
+./detectDiff.sh ../../hosting/javaluator/www/en/doc/tutorial ./src/main/java/com/fathzer/soft/javaluator/exampless
+echo "result missing dest dir="$?
diff --git a/javaluator/pom.xml b/javaluator/pom.xml
index 49690c8..97a09e3 100644
--- a/javaluator/pom.xml
+++ b/javaluator/pom.xml
@@ -5,15 +5,14 @@
com.fathzer
javaluator-parent-pom
- 1.0.0
+ 1.0.1
javaluator
- 3.0.4
+ 3.0.5
javaluator
- Javaluator is a simple, but powerful, infix expression
- evaluator for Java.
+ Javaluator is a simple, but powerful, infix expression evaluator for Java.
diff --git a/javaluator/src/main/java/com/fathzer/soft/javaluator/AbstractEvaluator.java b/javaluator/src/main/java/com/fathzer/soft/javaluator/AbstractEvaluator.java
index 356102d..587017c 100644
--- a/javaluator/src/main/java/com/fathzer/soft/javaluator/AbstractEvaluator.java
+++ b/javaluator/src/main/java/com/fathzer/soft/javaluator/AbstractEvaluator.java
@@ -33,18 +33,18 @@ public abstract class AbstractEvaluator {
*/
protected AbstractEvaluator(Parameters parameters) {
//TODO if constants, operators, functions are duplicated => error
- final List tokenDelimitersBuilder = new ArrayList();
- this.functions = new HashMap();
- this.operators = new HashMap>();
- this.constants = new HashMap();
- this.functionBrackets = new HashMap();
+ final List tokenDelimitersBuilder = new ArrayList<>();
+ this.functions = new HashMap<>();
+ this.operators = new HashMap<>();
+ this.constants = new HashMap<>();
+ this.functionBrackets = new HashMap<>();
for (final BracketPair pair : parameters.getFunctionBrackets()) {
functionBrackets.put(pair.getOpen(), pair);
functionBrackets.put(pair.getClose(), pair);
tokenDelimitersBuilder.add(pair.getOpen());
tokenDelimitersBuilder.add(pair.getClose());
}
- this.expressionBrackets = new HashMap();
+ this.expressionBrackets = new HashMap<>();
for (final BracketPair pair : parameters.getExpressionBrackets()) {
expressionBrackets.put(pair.getOpen(), pair);
expressionBrackets.put(pair.getClose(), pair);
@@ -56,7 +56,7 @@ protected AbstractEvaluator(Parameters parameters) {
tokenDelimitersBuilder.add(ope.getSymbol());
List known = this.operators.get(ope.getSymbol());
if (known==null) {
- known = new ArrayList();
+ known = new ArrayList<>();
this.operators.put(ope.getSymbol(), known);
}
known.add(ope);
@@ -187,7 +187,7 @@ private Iterator getArguments(Deque values, int nb) {
if (values.size() result = new LinkedList();
+ LinkedList result = new LinkedList<>();
for (int i = 0; i values = new ArrayDeque(); // values stack
- final Deque stack = new ArrayDeque(); // operator stack
- final Deque previousValuesSize = functions.isEmpty()?null:new ArrayDeque();
+ final Deque values = new ArrayDeque<>(); // values stack
+ final Deque stack = new ArrayDeque<>(); // operator stack
+ final Deque previousValuesSize = functions.isEmpty()?null:new ArrayDeque<>();
final Iterator tokens = tokenize(expression);
Token previous = null;
while (tokens.hasNext()) {
@@ -395,7 +395,7 @@ private BracketPair getBracketPair(String token) {
* @return a collection of operators.
*/
public Collection getOperators() {
- ArrayList result = new ArrayList();
+ ArrayList result = new ArrayList<>();
Collection> values = this.operators.values();
for (List list : values) {
result.addAll(list);
diff --git a/javaluator/src/main/java/com/fathzer/soft/javaluator/DoubleEvaluator.java b/javaluator/src/main/java/com/fathzer/soft/javaluator/DoubleEvaluator.java
index a9b1af0..1acee67 100644
--- a/javaluator/src/main/java/com/fathzer/soft/javaluator/DoubleEvaluator.java
+++ b/javaluator/src/main/java/com/fathzer/soft/javaluator/DoubleEvaluator.java
@@ -144,12 +144,7 @@ public enum Style {
private static Parameters defaultParameters;
private static final Pattern SCIENTIFIC_NOTATION_PATTERN = Pattern.compile("([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)[eE][+-]?\\d+)$");
- private static final ThreadLocal FORMATTER = new ThreadLocal() {
- @Override
- protected NumberFormat initialValue() {
- return NumberFormat.getNumberInstance(Locale.US);
- }
- };
+ private static final ThreadLocal FORMATTER = ThreadLocal.withInitial(() -> NumberFormat.getNumberInstance(Locale.US));
/** Gets a copy of DoubleEvaluator standard default parameters.
*
The returned parameters contains all the predefined operators, functions and constants.
@@ -219,7 +214,7 @@ protected Iterator tokenize(String expression) {
if (supportsScientificNotation) {
// There's a trap with scientific number notation (1E+50 for example):
// + is considered as an operator. We'll make a basic work around...
- final List tokens = new ArrayList();
+ final List tokens = new ArrayList<>();
final Iterator rawTokens = super.tokenize(expression);
while (rawTokens.hasNext()) {
tokens.add(rawTokens.next());
diff --git a/javaluator/src/main/java/com/fathzer/soft/javaluator/Parameters.java b/javaluator/src/main/java/com/fathzer/soft/javaluator/Parameters.java
index 3877130..fcd6e27 100644
--- a/javaluator/src/main/java/com/fathzer/soft/javaluator/Parameters.java
+++ b/javaluator/src/main/java/com/fathzer/soft/javaluator/Parameters.java
@@ -25,12 +25,12 @@ public class Parameters {
*
Function argument separator is set to ','.
*/
public Parameters() {
- this.operators = new ArrayList();
- this.functions = new ArrayList();
- this.constants = new ArrayList();
- this.translations = new HashMap();
- this.expressionBrackets = new ArrayList();
- this.functionBrackets = new ArrayList();
+ this.operators = new ArrayList<>();
+ this.functions = new ArrayList<>();
+ this.constants = new ArrayList<>();
+ this.translations = new HashMap<>();
+ this.expressionBrackets = new ArrayList<>();
+ this.functionBrackets = new ArrayList<>();
setFunctionArgumentSeparator(',');
}
diff --git a/javaluator/src/main/java/com/fathzer/soft/javaluator/StaticVariableSet.java b/javaluator/src/main/java/com/fathzer/soft/javaluator/StaticVariableSet.java
index 1d84134..0a79b6e 100644
--- a/javaluator/src/main/java/com/fathzer/soft/javaluator/StaticVariableSet.java
+++ b/javaluator/src/main/java/com/fathzer/soft/javaluator/StaticVariableSet.java
@@ -16,7 +16,7 @@ public class StaticVariableSet implements AbstractVariableSet {
*
Builds a new empty variable set.
*/
public StaticVariableSet() {
- this.varToValue = new HashMap();
+ this.varToValue = new HashMap<>();
}
/** Gets the value of a variable.
diff --git a/javaluator/src/main/java/com/fathzer/soft/javaluator/Tokenizer.java b/javaluator/src/main/java/com/fathzer/soft/javaluator/Tokenizer.java
index a74fe07..f3e01f1 100644
--- a/javaluator/src/main/java/com/fathzer/soft/javaluator/Tokenizer.java
+++ b/javaluator/src/main/java/com/fathzer/soft/javaluator/Tokenizer.java
@@ -2,7 +2,6 @@
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
@@ -70,12 +69,7 @@ private static Pattern delimitersToRegexp(List delimiters) {
// the longer may be before the shorter (&& should be before &) or the regexpr
// parser will recognize && as two &.
//TODO Create a test to verify that operators that includes others are working
- Collections.sort(delimiters, new Comparator() {
- @Override
- public int compare(String o1, String o2) {
- return o2.compareTo(o1);
- }
- });
+ Collections.sort(delimiters, (o1, o2) -> o2.compareTo(o1));
// Build a string that will contain the regular expression
StringBuilder result = new StringBuilder();
result.append('(');
@@ -108,7 +102,7 @@ private void addToTokens (List tokens, String token) {
*/
public Iterator tokenize(String string) {
if (pattern!=null) {
- List res = new ArrayList();
+ List res = new ArrayList<>();
Matcher m = pattern.matcher(string);
int pos = 0;
while (m.find()) {
diff --git a/javaluator/src/main/java/module-info.java b/javaluator/src/main/java/module-info.java
new file mode 100644
index 0000000..257aa50
--- /dev/null
+++ b/javaluator/src/main/java/module-info.java
@@ -0,0 +1,3 @@
+module javaluator {
+ exports com.fathzer.soft.javaluator;
+}
\ No newline at end of file
diff --git a/javaluator/src/test/java/com/fathzer/soft/javaluator/junit/BracketsTest.java b/javaluator/src/test/java/com/fathzer/soft/javaluator/junit/BracketsTest.java
index 4343fc6..43f0717 100644
--- a/javaluator/src/test/java/com/fathzer/soft/javaluator/junit/BracketsTest.java
+++ b/javaluator/src/test/java/com/fathzer/soft/javaluator/junit/BracketsTest.java
@@ -26,8 +26,7 @@ private DoubleEvaluator buildEvaluator() {
params.addExpressionBracket(BracketPair.PARENTHESES);
params.addExpressionBracket(BracketPair.BRACKETS);
params.addFunctionBracket(BracketPair.ANGLES);
- DoubleEvaluator eval = new DoubleEvaluator(params);
- return eval;
+ return new DoubleEvaluator(params);
}
@Test (expected=IllegalArgumentException.class)
diff --git a/pom.xml b/pom.xml
index a21a8b6..9793e44 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,7 +8,7 @@
1.0.8
javaluator-parent-pom
- 1.0.0
+ 1.0.1
pom
javaluator-parent
@@ -22,9 +22,7 @@
UTF-8
- java16
- 1.6
- 1.6
+ java18
@@ -43,21 +41,22 @@
fathzer
https://sonarcloud.io
- e1,e2,e3
+ e1,e3
java:S106
- javaluator-examples/**/*
-
- java:S2293
- **/*
-
+
+ javaluator-examples/**/*
+
java:S1948
- javaluator-demo/**/*
+
+ javaluator-demo/**/*
javaluator-demo/**
-
+
javaluator-examples/**/*.java
- 1.7
- 1.7
+ 11
+ 11
true
@@ -88,11 +87,57 @@
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.2.5
+
+
+
org.codehaus.mojo
animal-sniffer-maven-plugin
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ default-compile
+
+ 11
+
+
+
+
+ base-compile
+
+ compile
+
+
+
+
+ module-info.java
+
+
+
+
+
+
+ 8
+
+
+ 21
+
+
+