diff --git a/rules-openrewrite/addon/pom.xml b/rules-openrewrite/addon/pom.xml
index 6ff777c8c1..03b783c694 100644
--- a/rules-openrewrite/addon/pom.xml
+++ b/rules-openrewrite/addon/pom.xml
@@ -14,6 +14,13 @@
7.15.0
+
+
+ jitpack.io
+ https://jitpack.io
+
+
+
@@ -27,6 +34,7 @@
rewrite-migrate-java
0.8.0
+
+
+ com.github.mrizzi.rewrite
+ rewrite-java
+ windup-changes-SNAPSHOT
+
+
+ com.github.mrizzi.rewrite
+ rewrite-java-8
+ windup-changes-SNAPSHOT
+
org.slf4j
slf4j-jdk14
diff --git a/rules-openrewrite/addon/src/main/java/org/jboss/windup/rules/apps/openrewrite/OpenrewriteRuleProvider.java b/rules-openrewrite/addon/src/main/java/org/jboss/windup/rules/apps/openrewrite/OpenrewriteRuleProvider.java
index 0fb9ee85c6..c6ebe8c237 100644
--- a/rules-openrewrite/addon/src/main/java/org/jboss/windup/rules/apps/openrewrite/OpenrewriteRuleProvider.java
+++ b/rules-openrewrite/addon/src/main/java/org/jboss/windup/rules/apps/openrewrite/OpenrewriteRuleProvider.java
@@ -28,6 +28,7 @@
import org.ocpsoft.rewrite.config.Configuration;
import org.ocpsoft.rewrite.config.ConfigurationBuilder;
import org.ocpsoft.rewrite.context.EvaluationContext;
+import org.openrewrite.ExecutionContext;
import org.openrewrite.InMemoryExecutionContext;
import org.openrewrite.Recipe;
import org.openrewrite.Result;
@@ -35,6 +36,7 @@
import org.openrewrite.config.Environment;
import org.openrewrite.config.ResourceLoader;
import org.openrewrite.config.YamlResourceLoader;
+import org.openrewrite.java.Java8Parser;
import org.openrewrite.java.JavaParser;
import org.openrewrite.java.tree.J;
@@ -104,7 +106,8 @@ public void perform(GraphRewrite event, EvaluationContext context)
Recipe recipe = env.activateRecipes("org.konveyor.tackle.JavaxToJakarta");
- JavaParser javaParser = WindupJava8Parser.builder().build();
+// JavaParser javaParser = WindupJava8Parser.builder().build();
+ JavaParser javaParser = Java8Parser.builder().build();
// TODO change this temporary solution (just for running the test) with something that
// retrieves all the ".java" files available within the input path
Path sourceRoot = Paths.get(inputFilePath);
@@ -116,9 +119,10 @@ public void perform(GraphRewrite event, EvaluationContext context)
} catch (IOException e) {
throw new Exception("Unable to list Java source files", e);
}
- List fileList = javaParser.parse(inputPaths, null, new InMemoryExecutionContext());
+ ExecutionContext ctx = new InMemoryExecutionContext(Throwable::printStackTrace);
+ List fileList = javaParser.parse(inputPaths, null, ctx);
- List results = recipe.run(fileList);
+ List results = recipe.run(fileList, ctx);
LOG.info(String.format("%d files changed", results.size()));
results.forEach(result -> LOG.info(result.toString()));
// TODO should results be stored into the graph in some way?
diff --git a/rules-openrewrite/addon/src/main/java/org/jboss/windup/rules/apps/openrewrite/WindupJava8Parser.java b/rules-openrewrite/addon/src/main/java/org/jboss/windup/rules/apps/openrewrite/WindupJava8Parser.java
index 4cf3956f86..0b011fae78 100644
--- a/rules-openrewrite/addon/src/main/java/org/jboss/windup/rules/apps/openrewrite/WindupJava8Parser.java
+++ b/rules-openrewrite/addon/src/main/java/org/jboss/windup/rules/apps/openrewrite/WindupJava8Parser.java
@@ -1,6 +1,7 @@
package org.jboss.windup.rules.apps.openrewrite;
import java.io.File;
+import java.io.IOException;
import java.lang.reflect.Constructor;
import java.net.MalformedURLException;
import java.net.URL;
@@ -9,6 +10,7 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Collection;
+import java.util.Collections;
import java.util.List;
import org.openrewrite.ExecutionContext;
@@ -67,7 +69,7 @@ static synchronized void lazyInitClassLoaders() {
ClassLoader appClassLoader = WindupJava8Parser.class.getClassLoader();
// based on https://developer.jboss.org/thread/202247
- toolsAwareClassLoader = new URLClassLoader(new URL[]{appClassLoader.getResource("/")}, toolsClassLoader) {
+ toolsAwareClassLoader = new URLClassLoader(Collections.list(appClassLoader.getResources("")).toArray(new URL[]{}), toolsClassLoader) {
@Override
protected Class> loadClass(String name, boolean resolve) throws ClassNotFoundException {
if (!name.contains("ReloadableJava8") &&
@@ -96,6 +98,8 @@ protected Class> loadClass(String name, boolean resolve) throws ClassNotFoundE
};
} catch (MalformedURLException e) {
throw new IllegalStateException("To use WindupJava8Parser, you must run the process with a JDK and not a JRE.", e);
+ } catch (IOException e) {
+ e.printStackTrace();
}
}