From e2dd4a35218400d718d6efdb2a531448f2bd7db6 Mon Sep 17 00:00:00 2001 From: Alex Ramos Date: Mon, 25 Mar 2019 22:16:43 -0700 Subject: [PATCH] JAXRSParser / JAXRSParserTest fixed on Windows platform (issue #49) --- .../lambadaframework/jaxrs/JAXRSParser.java | 7 ++++--- .../jaxrs/JAXRSParserTest.java | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/jax-rs-extractor/src/main/java/org/lambadaframework/jaxrs/JAXRSParser.java b/jax-rs-extractor/src/main/java/org/lambadaframework/jaxrs/JAXRSParser.java index 0a0d45a..7d9effa 100644 --- a/jax-rs-extractor/src/main/java/org/lambadaframework/jaxrs/JAXRSParser.java +++ b/jax-rs-extractor/src/main/java/org/lambadaframework/jaxrs/JAXRSParser.java @@ -106,7 +106,8 @@ private List> getClassesInPackage(String packageName, Cl final String classSeperator = "."; - final String jarPath = clazz.getProtectionDomain().getCodeSource().getLocation().toURI().getPath(); + final URL location = clazz.getProtectionDomain().getCodeSource().getLocation(); + final String jarPath = new File(location.toURI()).getAbsolutePath(); if (jarPath.endsWith(".jar")) { /** @@ -115,7 +116,7 @@ private List> getClassesInPackage(String packageName, Cl return getClassesInJarFile(jarPath); } - final String packagePath = jarPath + packageName.replace(classSeperator, File.separator); + final String packagePath = jarPath + File.separator + packageName.replace(classSeperator, File.separator); Files.walkFileTree(Paths.get(packagePath), new SimpleFileVisitor() { @Override @@ -125,7 +126,7 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) String fileName = file.toString(); if (fileName.endsWith(classExtension)) { - String className = fileName.replace(jarPath, blank).replace(File.separator, classSeperator); + String className = fileName.replace(jarPath + File.separator, blank).replace(File.separator, classSeperator); className = className.substring(0, className.length() - classExtension.length()); try { diff --git a/jax-rs-extractor/tests/java/org/lambadaframework/jaxrs/JAXRSParserTest.java b/jax-rs-extractor/tests/java/org/lambadaframework/jaxrs/JAXRSParserTest.java index b074a6c..94b0dc4 100644 --- a/jax-rs-extractor/tests/java/org/lambadaframework/jaxrs/JAXRSParserTest.java +++ b/jax-rs-extractor/tests/java/org/lambadaframework/jaxrs/JAXRSParserTest.java @@ -6,6 +6,8 @@ import java.io.File; import java.io.FilenameFilter; +import java.util.Collections; +import java.util.Comparator; import java.util.List; import org.junit.Test; @@ -43,8 +45,24 @@ public void testScanPackage() throws Exception { } assertEquals(6, totalMethod); + Collections.sort(resourceList, new PathComparator()); + + assertEquals("/resource1", resourceList.get(0).getPath()); assertEquals("/resource1", resourceList.get(1).getPath()); assertEquals("/resource1/{id}", resourceList.get(2).getPath()); assertEquals("/resource1/{id}/users", resourceList.get(3).getPath()); } + + private class PathComparator implements Comparator { + + @Override + public int compare(Resource o1, Resource o2) { + return o1.getPath().compareTo(o2.getPath()); + } + + @Override + public boolean equals(Object obj) { + return false; + } + } } \ No newline at end of file