From 1b777cdaa71f93cd2da5419bd09e25a4e379d240 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Wed, 18 Apr 2012 22:59:21 +0300 Subject: [PATCH] migrated codegen to use Guava --- pom.xml | 29 ++++++------------- .../mysema/codegen/AbstractCodeWriter.java | 4 +-- .../java/com/mysema/codegen/CodeWriter.java | 9 +++--- .../java/com/mysema/codegen/JavaWriter.java | 20 ++++++------- .../java/com/mysema/codegen/ScalaWriter.java | 21 ++++++-------- .../com/mysema/codegen/model/TypeExtends.java | 4 +-- .../com/mysema/codegen/JavaWriterTest.java | 12 ++++---- .../com/mysema/codegen/ScalaWriterTest.java | 7 ++--- .../codegen/support/ClassUtilsTest.java | 4 +-- template.mf | 7 ++--- 10 files changed, 48 insertions(+), 69 deletions(-) diff --git a/pom.xml b/pom.xml index 7a724b912..743763a0c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.mysema.codegen codegen - 0.4.10 + 0.4.11 Codegen Code generation and compilation for Java @@ -19,20 +19,16 @@ 4.01 3.0.1 + 11.0.2 - - net.sourceforge.collections - collections-generic - ${commons.collections.version} - - org.apache.commons - commons-lang3 - ${commons.lang.version} + com.google.guava + guava + 11.0.2 - + junit @@ -47,17 +43,10 @@ - org.apache.commons - commons-io - 1.3.2 + javax.validation + validation-api + 1.0.CR3 test - - - - javax.validation - validation-api - 1.0.CR3 - test diff --git a/src/main/java/com/mysema/codegen/AbstractCodeWriter.java b/src/main/java/com/mysema/codegen/AbstractCodeWriter.java index bc9d7ce17..0ffd85a63 100644 --- a/src/main/java/com/mysema/codegen/AbstractCodeWriter.java +++ b/src/main/java/com/mysema/codegen/AbstractCodeWriter.java @@ -7,7 +7,7 @@ package com.mysema.codegen; import java.io.IOException; -import org.apache.commons.lang3.StringUtils; +import com.google.common.base.Strings; /** * @author tiwe @@ -34,7 +34,7 @@ public abstract class AbstractCodeWriter> implem } this.appendable = appendable; this.spaces = spaces; - this.spacesString = StringUtils.leftPad("", spaces); + this.spacesString = Strings.repeat(" ", spaces); } @Override diff --git a/src/main/java/com/mysema/codegen/CodeWriter.java b/src/main/java/com/mysema/codegen/CodeWriter.java index f13957478..2bf61cd4b 100644 --- a/src/main/java/com/mysema/codegen/CodeWriter.java +++ b/src/main/java/com/mysema/codegen/CodeWriter.java @@ -9,8 +9,7 @@ import java.io.IOException; import java.lang.annotation.Annotation; import java.util.Collection; -import org.apache.commons.collections15.Transformer; - +import com.google.common.base.Function; import com.mysema.codegen.model.Parameter; import com.mysema.codegen.model.Type; @@ -34,7 +33,7 @@ public interface CodeWriter extends Appendable { CodeWriter beginClass(Type type, Type superClass, Type... interfaces) throws IOException; - CodeWriter beginConstructor(Collection params, Transformer transformer) throws IOException; + CodeWriter beginConstructor(Collection params, Function transformer) throws IOException; CodeWriter beginConstructor(Parameter... params) throws IOException; @@ -43,12 +42,12 @@ public interface CodeWriter extends Appendable { CodeWriter beginLine(String... segments) throws IOException; CodeWriter beginPublicMethod(Type returnType, String methodName, Collection parameters, - Transformer transformer) throws IOException; + Function transformer) throws IOException; CodeWriter beginPublicMethod(Type returnType, String methodName, Parameter... args) throws IOException; CodeWriter beginStaticMethod(Type type, String name, Collection params, - Transformer transformer) throws IOException; + Function transformer) throws IOException; CodeWriter beginStaticMethod(Type returnType, String methodName, Parameter... args) throws IOException; diff --git a/src/main/java/com/mysema/codegen/JavaWriter.java b/src/main/java/com/mysema/codegen/JavaWriter.java index 95e2b01e7..413fdcde7 100644 --- a/src/main/java/com/mysema/codegen/JavaWriter.java +++ b/src/main/java/com/mysema/codegen/JavaWriter.java @@ -22,9 +22,7 @@ import java.util.HashSet; import java.util.Set; import java.util.Stack; -import org.apache.commons.collections15.Transformer; -import org.apache.commons.lang3.StringEscapeUtils; - +import com.google.common.base.Function; import com.mysema.codegen.model.Parameter; import com.mysema.codegen.model.Type; @@ -160,7 +158,7 @@ public final class JavaWriter extends AbstractCodeWriter { append(enumValue.getDeclaringClass().getName() + DOT + enumValue.name()); } } else if (value instanceof String) { - String escaped = StringEscapeUtils.escapeJava(value.toString()); + String escaped = StringUtils.escapeJava(value.toString()); append(QUOTE + escaped.replace("\\/", "/") + QUOTE); } else { throw new IllegalArgumentException("Unsupported annotation value : " + value); @@ -205,7 +203,7 @@ public final class JavaWriter extends AbstractCodeWriter { @Override public JavaWriter beginConstructor(Collection parameters, - Transformer transformer) throws IOException { + Function transformer) throws IOException { types.push(types.peek()); beginLine(PUBLIC + types.peek().getSimpleName()).params(parameters, transformer) .append(" {").nl(); @@ -249,7 +247,7 @@ public final class JavaWriter extends AbstractCodeWriter { @Override public JavaWriter beginPublicMethod(Type returnType, String methodName, - Collection parameters, Transformer transformer) throws IOException { + Collection parameters, Function transformer) throws IOException { return beginMethod(PUBLIC, returnType, methodName, transform(parameters, transformer)); } @@ -261,7 +259,7 @@ public final class JavaWriter extends AbstractCodeWriter { @Override public JavaWriter beginStaticMethod(Type returnType, String methodName, - Collection parameters, Transformer transformer) throws IOException { + Collection parameters, Function transformer) throws IOException { return beginMethod(PUBLIC_STATIC, returnType, methodName, transform(parameters, transformer)); } @@ -362,7 +360,7 @@ public final class JavaWriter extends AbstractCodeWriter { return line(PACKAGE + packageName + SEMICOLON).nl(); } - private JavaWriter params(Collection parameters, Transformer transformer) + private JavaWriter params(Collection parameters, Function transformer) throws IOException { append("("); boolean first = true; @@ -370,7 +368,7 @@ public final class JavaWriter extends AbstractCodeWriter { if (!first) { append(COMMA); } - param(transformer.transform(param)); + param(transformer.apply(param)); first = false; } append(")"); @@ -470,11 +468,11 @@ public final class JavaWriter extends AbstractCodeWriter { } private Parameter[] transform(Collection parameters, - Transformer transformer) { + Function transformer) { Parameter[] rv = new Parameter[parameters.size()]; int i = 0; for (T value : parameters) { - rv[i++] = transformer.transform(value); + rv[i++] = transformer.apply(value); } return rv; } diff --git a/src/main/java/com/mysema/codegen/ScalaWriter.java b/src/main/java/com/mysema/codegen/ScalaWriter.java index e10de4703..9d0e5b2ab 100644 --- a/src/main/java/com/mysema/codegen/ScalaWriter.java +++ b/src/main/java/com/mysema/codegen/ScalaWriter.java @@ -14,10 +14,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.Set; -import org.apache.commons.collections15.Transformer; -import org.apache.commons.lang3.StringEscapeUtils; -import org.apache.commons.lang3.StringUtils; - +import com.google.common.base.Function; import com.mysema.codegen.model.Parameter; import com.mysema.codegen.model.Type; import com.mysema.codegen.model.Types; @@ -170,7 +167,7 @@ public class ScalaWriter extends AbstractCodeWriter { append(enumValue.getDeclaringClass().getName() + DOT + enumValue.name()); } } else if (value instanceof String) { - append(QUOTE + StringEscapeUtils.escapeJava(value.toString()) + QUOTE); + append(QUOTE + StringUtils.escapeJava(value.toString()) + QUOTE); } else { throw new IllegalArgumentException("Unsupported annotation value : " + value); } @@ -242,7 +239,7 @@ public class ScalaWriter extends AbstractCodeWriter { @Override public ScalaWriter beginConstructor(Collection parameters, - Transformer transformer) throws IOException { + Function transformer) throws IOException { beginLine(PUBLIC + type.getSimpleName()).params(parameters, transformer).append(" {").nl(); return goIn(); } @@ -291,7 +288,7 @@ public class ScalaWriter extends AbstractCodeWriter { @Override public ScalaWriter beginPublicMethod(Type returnType, String methodName, - Collection parameters, Transformer transformer) throws IOException { + Collection parameters, Function transformer) throws IOException { return beginMethod(DEF, returnType, methodName, transform(parameters, transformer)); } @@ -303,7 +300,7 @@ public class ScalaWriter extends AbstractCodeWriter { @Override public ScalaWriter beginStaticMethod(Type returnType, String methodName, - Collection parameters, Transformer transformer) throws IOException { + Collection parameters, Function transformer) throws IOException { return beginMethod(DEF, returnType, methodName, transform(parameters, transformer)); } @@ -450,7 +447,7 @@ public class ScalaWriter extends AbstractCodeWriter { return line(PACKAGE + packageName).nl(); } - private ScalaWriter params(Collection parameters, Transformer transformer) + private ScalaWriter params(Collection parameters, Function transformer) throws IOException { append("("); boolean first = true; @@ -458,7 +455,7 @@ public class ScalaWriter extends AbstractCodeWriter { if (!first) { append(COMMA); } - param(transformer.transform(param)); + param(transformer.apply(param)); first = false; } append(")"); @@ -558,11 +555,11 @@ public class ScalaWriter extends AbstractCodeWriter { } private Parameter[] transform(Collection parameters, - Transformer transformer) { + Function transformer) { Parameter[] rv = new Parameter[parameters.size()]; int i = 0; for (T value : parameters) { - rv[i++] = transformer.transform(value); + rv[i++] = transformer.apply(value); } return rv; } diff --git a/src/main/java/com/mysema/codegen/model/TypeExtends.java b/src/main/java/com/mysema/codegen/model/TypeExtends.java index c637dc771..5f805a53a 100644 --- a/src/main/java/com/mysema/codegen/model/TypeExtends.java +++ b/src/main/java/com/mysema/codegen/model/TypeExtends.java @@ -8,7 +8,7 @@ package com.mysema.codegen.model; import java.util.Collections; import java.util.Set; -import org.apache.commons.lang3.StringUtils; +import com.google.common.base.Strings; /** * @author tiwe @@ -41,7 +41,7 @@ public class TypeExtends extends TypeAdapter { return "?"; } else { String genericName = super.getGenericName(true, packages, classes); - return StringUtils.isEmpty(genericName) ? "?" : "? extends " + genericName; + return Strings.isNullOrEmpty(genericName) ? "?" : "? extends " + genericName; } } else { return super.getGenericName(asArgType, packages, classes); diff --git a/src/test/java/com/mysema/codegen/JavaWriterTest.java b/src/test/java/com/mysema/codegen/JavaWriterTest.java index 21952cf19..56292807e 100644 --- a/src/test/java/com/mysema/codegen/JavaWriterTest.java +++ b/src/test/java/com/mysema/codegen/JavaWriterTest.java @@ -15,11 +15,12 @@ import java.lang.annotation.ElementType; import java.lang.annotation.Target; import java.util.Arrays; -import org.apache.commons.collections15.Transformer; -import org.apache.commons.io.IOUtils; import org.junit.Before; import org.junit.Test; +import com.google.common.base.Charsets; +import com.google.common.base.Function; +import com.google.common.io.Resources; import com.mysema.codegen.model.ClassType; import com.mysema.codegen.model.Parameter; import com.mysema.codegen.model.SimpleType; @@ -29,9 +30,9 @@ import com.mysema.codegen.model.Types; public class JavaWriterTest { - private static final Transformer transformer = new Transformer() { + private static final Function transformer = new Function() { @Override - public Parameter transform(Parameter input) { + public Parameter apply(Parameter input) { return input; } }; @@ -44,8 +45,7 @@ public class JavaWriterTest { private static void match(String resource, String text) throws IOException { // TODO : try to compile ? - String expected = IOUtils - .toString(JavaWriterTest.class.getResourceAsStream(resource), "UTF-8") + String expected = Resources.toString(JavaWriterTest.class.getResource(resource), Charsets.UTF_8) .replace("\r\n", "\n").trim(); String actual = text.trim(); assertEquals(expected, actual); diff --git a/src/test/java/com/mysema/codegen/ScalaWriterTest.java b/src/test/java/com/mysema/codegen/ScalaWriterTest.java index 564ab5018..ac326c475 100644 --- a/src/test/java/com/mysema/codegen/ScalaWriterTest.java +++ b/src/test/java/com/mysema/codegen/ScalaWriterTest.java @@ -14,11 +14,10 @@ import java.util.List; import javax.validation.constraints.Max; -import org.apache.commons.collections15.Transformer; -import org.apache.commons.lang3.StringUtils; import org.junit.Before; import org.junit.Test; +import com.google.common.base.Function; import com.mysema.codegen.model.ClassType; import com.mysema.codegen.model.Parameter; import com.mysema.codegen.model.SimpleType; @@ -28,9 +27,9 @@ import com.mysema.codegen.model.Types; public class ScalaWriterTest { - private static final Transformer transformer = new Transformer() { + private static final Function transformer = new Function() { @Override - public Parameter transform(Parameter input) { + public Parameter apply(Parameter input) { return input; } }; diff --git a/src/test/java/com/mysema/codegen/support/ClassUtilsTest.java b/src/test/java/com/mysema/codegen/support/ClassUtilsTest.java index af9ecb426..3b6c6b616 100644 --- a/src/test/java/com/mysema/codegen/support/ClassUtilsTest.java +++ b/src/test/java/com/mysema/codegen/support/ClassUtilsTest.java @@ -8,7 +8,6 @@ package com.mysema.codegen.support; import static org.junit.Assert.assertEquals; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -17,7 +16,6 @@ import java.util.Locale; import java.util.Map; import java.util.Set; -import org.apache.commons.collections15.Bag; import org.junit.Test; public class ClassUtilsTest { @@ -43,7 +41,7 @@ public class ClassUtilsTest { assertEquals(List.class, ClassUtils.normalize(ArrayList.class)); assertEquals(Set.class, ClassUtils.normalize(HashSet.class)); assertEquals(Map.class, ClassUtils.normalize(HashMap.class)); - assertEquals(Collection.class, ClassUtils.normalize(Bag.class)); +// assertEquals(Collection.class, ClassUtils.normalize(Bag.class)); } } diff --git a/template.mf b/template.mf index 8ab2a5bc0..2b838ec97 100644 --- a/template.mf +++ b/template.mf @@ -3,7 +3,6 @@ Bundle-Name: Codegen Bundle-Vendor: Mysema Bundle-ManifestVersion: 2 Import-Template: - javax.annotation.*;version="0", - org.apache.commons.collections15.*;version="${commons.collections.version}", - org.apache.commons.lang3.*;version="${commons.lang.version}", - javax.tools.*;version="0" + javax.annotation.*;version="0", + javax.tools.*;version="0", + com.google.common.*;version="${guava.version}"