r904 - in lutinjaxx/trunk: jaxx-core jaxx-core/src/main/java/jaxx/compiler maven-jaxx-plugin maven-jaxx-plugin/src/main/java/org/codelutin/jaxx maven-jaxx-plugin/src/test/java/org/codelutin/jaxx maven-jaxx-plugin/src/test/resources maven-jaxx-plugin/src/test/resources/testcases maven-jaxx-plugin/src/test/resources/testcases/log maven-jaxx-plugin/src/test/resources/testcases/log/nolog maven-jaxx-plugin/src/test/resources/testcases/log/withlog
Author: tchemit Date: 2008-10-13 18:11:46 +0000 (Mon, 13 Oct 2008) New Revision: 904 Added: lutinjaxx/trunk/maven-jaxx-plugin/src/test/java/org/codelutin/jaxx/JaxxBaseTest.java lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/nolog.xml lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/ lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/nolog/ lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/nolog/NoLog.jaxx lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/nolog/NoLogSon.jaxx lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/withlog/ lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/withlog/NoLog.jaxx lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/withlog/WithLog.jaxx lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/withlog.xml Modified: lutinjaxx/trunk/jaxx-core/changelog lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/compiler/CompilerOptions.java lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/compiler/JAXXCompiler.java lutinjaxx/trunk/maven-jaxx-plugin/changelog lutinjaxx/trunk/maven-jaxx-plugin/src/main/java/org/codelutin/jaxx/JaxxGeneratorMojo.java lutinjaxx/trunk/maven-jaxx-plugin/src/test/java/org/codelutin/jaxx/CompilerTest.java lutinjaxx/trunk/maven-jaxx-plugin/src/test/java/org/codelutin/jaxx/I18nTest.java Log: jaxx can now generate logger in jaxx files Modified: lutinjaxx/trunk/jaxx-core/changelog =================================================================== --- lutinjaxx/trunk/jaxx-core/changelog 2008-10-11 15:38:18 UTC (rev 903) +++ lutinjaxx/trunk/jaxx-core/changelog 2008-10-13 18:11:46 UTC (rev 904) @@ -1,4 +1,5 @@ ver-0-5 chemit 20081002 + * 20081013 [chemit] can generate logger on jaxx files * 20081011 [chemit] improve site * 20081011 [chemit] fix bug on JavaFileParser : works again * 20081002 [chemit] Using lutinproject 3.0, changing groupId to org.codelutin Modified: lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/compiler/CompilerOptions.java =================================================================== --- lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/compiler/CompilerOptions.java 2008-10-11 15:38:18 UTC (rev 903) +++ lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/compiler/CompilerOptions.java 2008-10-13 18:11:46 UTC (rev 904) @@ -18,6 +18,9 @@ /** a flag to enable or disable i18n generation */ private boolean i18nable; + /** a flag to add or not logger on generated jaxx files */ + private boolean addLogger; + /** * Returns the target directory, generally specified with the "-d" option on the command line. * @@ -160,16 +163,25 @@ this.i18nable = i18nable; } + public boolean isAddLogger() { + return addLogger; + } + + public void setAddLogger(boolean addLogger) { + this.addLogger = addLogger; + } + @Override public String toString() { StringBuilder sb = new StringBuilder(super.toString()); - sb.append("\nclassPath: ").append(getClassPath()); - sb.append("\njavaOut : ").append(getTargetDirectory()); - sb.append("\noutClass : ").append(getJavacTargetDirectory()); - sb.append("\njavacOpts: ").append(getJavacOpts()); - sb.append("\nverbose: ").append(isVerbose()); - sb.append("\noptiomize: ").append(getOptimize()); - sb.append("\ni18nable: ").append(isI18nable()); + sb.append("\nclassPath : ").append(getClassPath()); + sb.append("\njavaOut : ").append(getTargetDirectory()); + sb.append("\noutClass : ").append(getJavacTargetDirectory()); + sb.append("\njavacOpts : ").append(getJavacOpts()); + sb.append("\nverbose : ").append(isVerbose()); + sb.append("\noptiomize : ").append(getOptimize()); + sb.append("\ni18nable : ").append(isI18nable()); + sb.append("\naddLogger : ").append(isAddLogger()); return sb.toString(); } } Modified: lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/compiler/JAXXCompiler.java =================================================================== --- lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/compiler/JAXXCompiler.java 2008-10-11 15:38:18 UTC (rev 903) +++ lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/compiler/JAXXCompiler.java 2008-10-13 18:11:46 UTC (rev 904) @@ -242,17 +242,6 @@ private static final int PASS_2 = 1; private static int currentPass; - static { - try { - // fixme beware, this is a very dangerous thing to use a static block - //loadLibraries(); - // fixeme for the moment the compiler is init in maven plugin, not here - } - catch (Exception e) { - throw new RuntimeException(e); - } - } - public static void init() { // forces static initializer to run if it hasn't yet } @@ -293,8 +282,9 @@ this.outputClassName = outputClassName; this.options = options; addImport(outputClassName.substring(0, outputClassName.lastIndexOf(".") + 1) + "*"); - for (Object staticImport : staticImports) + for (Object staticImport : staticImports) { addImport((String) staticImport); + } } @@ -674,6 +664,13 @@ } if (!superclassIsJAXXObject) { + // add logger + if (getOptions().isAddLogger()) { + javaFile.addImport("org.apache.commons.logging.Log"); + javaFile.addImport("org.apache.commons.logging.LogFactory"); + javaFile.addField(createLoggerField(fullClassName)); + } + javaFile.addField(new JavaField(Modifier.PROTECTED, "java.util.List<Object>", "$activeBindings", "new ArrayList<Object>()")); javaFile.addField(new JavaField(Modifier.PROTECTED, "java.util.Map<String,Object>", "$bindingSources", "new HashMap<String,Object>()")); } @@ -722,9 +719,9 @@ javaFile.addField(createJAXXObjectDescriptorField()); javaFile.addMethod(createGetJAXXObjectDescriptorMethod()); -/* - * Gestion du context - */ + /* + * Gestion du context + */ javaFile.addField(createContextField()); javaFile.addMethod(createSetContextValueMethod()); javaFile.addMethod(createSetContextValueNameMethod()); @@ -791,6 +788,9 @@ } } + private JavaField createLoggerField(String className) { + return new JavaField(Modifier.PUBLIC+Modifier.STATIC+Modifier.FINAL, "Log", "log", "LogFactory.getLog("+className+".class)"); + } /* * Gestion du context */ Modified: lutinjaxx/trunk/maven-jaxx-plugin/changelog =================================================================== --- lutinjaxx/trunk/maven-jaxx-plugin/changelog 2008-10-11 15:38:18 UTC (rev 903) +++ lutinjaxx/trunk/maven-jaxx-plugin/changelog 2008-10-13 18:11:46 UTC (rev 904) @@ -1,4 +1,5 @@ ver-0-5 chemit 20081002 + * 20081013 [chemit] can generate logger on jaxx files * 20081011 [chemit] improve site * 20081011 [chemit] refactor tests of the plugin using maven-plugin-testing-harness plugin * 20081002 [chemit] Using lutinpluginproject 3.0, changing groupId to org.codelutin Modified: lutinjaxx/trunk/maven-jaxx-plugin/src/main/java/org/codelutin/jaxx/JaxxGeneratorMojo.java =================================================================== --- lutinjaxx/trunk/maven-jaxx-plugin/src/main/java/org/codelutin/jaxx/JaxxGeneratorMojo.java 2008-10-11 15:38:18 UTC (rev 903) +++ lutinjaxx/trunk/maven-jaxx-plugin/src/main/java/org/codelutin/jaxx/JaxxGeneratorMojo.java 2008-10-13 18:11:46 UTC (rev 904) @@ -133,6 +133,16 @@ */ protected boolean i18nable; + + /** + * flag to add logger to each generated jaxx file. + * <p/> + * By default, always add it. + * + * @parameter expression="${jaxx.addLogger}" default-value="true" + */ + protected boolean addLogger; + protected String[] files; private static final String[] INCLUDES = {"**\\/*.jaxx"}; @@ -219,6 +229,7 @@ result.setTargetDirectory(outJava); result.setVerbose(verbose); result.setI18nable(i18nable); + result.setAddLogger(addLogger); return result; } Modified: lutinjaxx/trunk/maven-jaxx-plugin/src/test/java/org/codelutin/jaxx/CompilerTest.java =================================================================== --- lutinjaxx/trunk/maven-jaxx-plugin/src/test/java/org/codelutin/jaxx/CompilerTest.java 2008-10-11 15:38:18 UTC (rev 903) +++ lutinjaxx/trunk/maven-jaxx-plugin/src/test/java/org/codelutin/jaxx/CompilerTest.java 2008-10-13 18:11:46 UTC (rev 904) @@ -1,31 +1,12 @@ package org.codelutin.jaxx; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.maven.plugin.testing.AbstractMojoTestCase; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import java.io.File; -public class CompilerTest extends AbstractMojoTestCase { +public class CompilerTest extends JaxxBaseTest { - /** log */ - protected static final Log log = LogFactory.getLog(CompilerTest.class); - - @Override - protected void setUp() throws Exception { - super.setUp(); - log.info(getName()); - } - - protected JaxxGeneratorMojo getMojo(String s) throws Exception { - File testPom = new File(getBasedir(), "src/test/resources/" + s + ".xml"); - JaxxGeneratorMojo mojo = (JaxxGeneratorMojo) lookupMojo("generate", testPom); - assertNotNull(mojo); - return mojo; - } - public void testInnerClasses() throws Exception { JaxxGeneratorMojo mojo = getMojo("InnerClasses"); mojo.execute(); @@ -44,6 +25,40 @@ assertEquals(7, mojo.getFiles().length); } + public void testWithLogTests() throws Exception { + JaxxGeneratorMojo mojo = getMojo("withlog"); + mojo.execute(); + String[] files = mojo.getFiles(); + assertEquals(2, files.length); + + String withLogFile; + String withnoLogFile; + if (files[0].endsWith("WithLog.jaxx")) { + withLogFile = files[0]; + withnoLogFile = files[1]; + } else { + withLogFile = files[1]; + withnoLogFile = files[0]; + } + checkPattern(mojo, "Log log = LogFactory.getLog(", true, withLogFile); + checkPattern(mojo, "import org.apache.commons.logging.Log;", true, withLogFile); + checkPattern(mojo, "import org.apache.commons.logging.LogFactory;", true, withLogFile); + + checkPattern(mojo, "Log log = LogFactory.getLog(", false, withnoLogFile); + checkPattern(mojo, "import org.apache.commons.logging.Log;", false, withnoLogFile); + checkPattern(mojo, "import org.apache.commons.logging.LogFactory;", false, withnoLogFile); + } + + public void testNoLogTests() throws Exception { + JaxxGeneratorMojo mojo = getMojo("nolog"); + mojo.execute(); + String[] files = mojo.getFiles(); + assertEquals(2, files.length); + checkPattern(mojo, "Log log = LogFactory.getLog(", false, files); + checkPattern(mojo, "import org.apache.commons.logging.Log;", false, files); + checkPattern(mojo, "import org.apache.commons.logging.LogFactory;", false, files); + } + public void testErrors() throws Exception { JaxxGeneratorMojo mojo = getMojo("errors"); // init mojo to get alls files to treate Modified: lutinjaxx/trunk/maven-jaxx-plugin/src/test/java/org/codelutin/jaxx/I18nTest.java =================================================================== --- lutinjaxx/trunk/maven-jaxx-plugin/src/test/java/org/codelutin/jaxx/I18nTest.java 2008-10-11 15:38:18 UTC (rev 903) +++ lutinjaxx/trunk/maven-jaxx-plugin/src/test/java/org/codelutin/jaxx/I18nTest.java 2008-10-13 18:11:46 UTC (rev 904) @@ -1,84 +1,43 @@ package org.codelutin.jaxx; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.maven.plugin.testing.AbstractMojoTestCase; -import org.codelutin.util.FileUtil; +public class I18nTest extends JaxxBaseTest { -import java.io.File; -import java.io.IOException; -public class I18nTest extends AbstractMojoTestCase { - - /** log */ - protected static final Log log = LogFactory.getLog(I18nTest.class); - - - @Override - protected void setUp() throws Exception { - super.setUp(); - log.info(getName()); - } - - protected JaxxGeneratorMojo getMojo(String s) throws Exception { - File testPom = new File(getBasedir(), "src/test/resources/" + s + ".xml"); - JaxxGeneratorMojo mojo = (JaxxGeneratorMojo) lookupMojo("generate", testPom); - assertNotNull(mojo); - return mojo; - } - public void testI18nText() throws Exception { JaxxGeneratorMojo mojo = getMojo("i18n_text"); mojo.setI18nable(false); mojo.execute(); - checkPattern(mojo, "testId.setText(_(\"test.text\"));", false); + checkPattern(mojo, "testId.setText(_(\"test.text\"));", false, mojo.getFiles()); mojo.setI18nable(true); mojo.execute(); - checkPattern(mojo, "testId.setText(_(\"test.text\"));", true); - checkPattern(mojo, "\"_(\\\"test.text\\\")\"", false); + checkPattern(mojo, "testId.setText(_(\"test.text\"));", true, mojo.getFiles()); + checkPattern(mojo, "\"_(\\\"test.text\\\")\"", false, mojo.getFiles()); } public void testI18nTitle() throws Exception { JaxxGeneratorMojo mojo = getMojo("i18n_title"); mojo.setI18nable(false); mojo.execute(); - checkPattern(mojo, "testId.setTitle(_(\"test.title\"));", false); + checkPattern(mojo, "testId.setTitle(_(\"test.title\"));", false, mojo.getFiles()); mojo.setI18nable(true); mojo.execute(); - checkPattern(mojo, "testId.setTitle(_(\"test.title\"));", true); - checkPattern(mojo, "\"_(\\\"test.title\\\")\"", false); + checkPattern(mojo, "testId.setTitle(_(\"test.title\"));", true, mojo.getFiles()); + checkPattern(mojo, "\"_(\\\"test.title\\\")\"", false, mojo.getFiles()); } public void testI18nToolTipText() throws Exception { JaxxGeneratorMojo mojo = getMojo("i18n_tooltiptext"); mojo.setI18nable(false); mojo.execute(); - checkPattern(mojo, "testId.setToolTipText(_(\"test.toolTipText\"));", false); + checkPattern(mojo, "testId.setToolTipText(_(\"test.toolTipText\"));", false, mojo.getFiles()); mojo.setI18nable(true); mojo.execute(); - checkPattern(mojo, "testId.setToolTipText(_(\"test.toolTipText\"));", true); - checkPattern(mojo, "\"_(\\\"test.toolTipText\\\")\"", false); + checkPattern(mojo, "testId.setToolTipText(_(\"test.toolTipText\"));", true, mojo.getFiles()); + checkPattern(mojo, "\"_(\\\"test.toolTipText\\\")\"", false, mojo.getFiles()); } - protected void checkPattern(JaxxGeneratorMojo mojo, String pattern, boolean required) throws IOException { - String[] files = mojo.getFiles(); - for (String file : files) { - // check we have a the required testId.setTitle(_("test.title")); - File f = new File(mojo.getOutJava(), file.substring(0, file.length() - 4) + "java"); - if (mojo.isVerbose()) { - log.info("check generated file " + f); - } - assertTrue("generated file " + f + " was not found...", f.exists()); - String content = FileUtil.readAsString(f); - - String errorMessage = required ? "could not find the pattern : " : "should not have found pattern :"; - assertEquals(errorMessage + pattern + " in file " + f, required, content.contains(pattern)); - } - } - - } \ No newline at end of file Added: lutinjaxx/trunk/maven-jaxx-plugin/src/test/java/org/codelutin/jaxx/JaxxBaseTest.java =================================================================== --- lutinjaxx/trunk/maven-jaxx-plugin/src/test/java/org/codelutin/jaxx/JaxxBaseTest.java (rev 0) +++ lutinjaxx/trunk/maven-jaxx-plugin/src/test/java/org/codelutin/jaxx/JaxxBaseTest.java 2008-10-13 18:11:46 UTC (rev 904) @@ -0,0 +1,44 @@ +package org.codelutin.jaxx; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.maven.plugin.testing.AbstractMojoTestCase; +import org.codelutin.util.FileUtil; + +import java.io.File; +import java.io.IOException; + +/** @author chemit */ +public abstract class JaxxBaseTest extends AbstractMojoTestCase { + /** log */ + protected static final Log log = LogFactory.getLog(JaxxBaseTest.class); + + @Override + protected void setUp() throws Exception { + super.setUp(); + log.info(getName()); + } + + protected JaxxGeneratorMojo getMojo(String s) throws Exception { + File testPom = new File(getBasedir(), "src/test/resources/" + s + ".xml"); + JaxxGeneratorMojo mojo = (JaxxGeneratorMojo) lookupMojo("generate", testPom); + assertNotNull(mojo); + return mojo; + } + + protected void checkPattern(JaxxGeneratorMojo mojo, String pattern, boolean required, String... files) throws IOException { + for (String file : files) { + // check we have a the required testId.setTitle(_("test.title")); + File f = new File(mojo.getOutJava(), file.substring(0, file.length() - 4) + "java"); + if (mojo.isVerbose()) { + log.info("check generated file " + f); + } + + assertTrue("generated file " + f + " was not found...", f.exists()); + String content = FileUtil.readAsString(f); + + String errorMessage = required ? "could not find the pattern : " : "should not have found pattern :"; + assertEquals(errorMessage + pattern + " in file " + f, required, content.contains(pattern)); + } + } +} Added: lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/nolog.xml =================================================================== --- lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/nolog.xml (rev 0) +++ lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/nolog.xml 2008-10-13 18:11:46 UTC (rev 904) @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <build> + <plugins> + <plugin> + <groupId>org.codelutin</groupId> + <artifactId>maven-jaxx-plugin</artifactId> + <configuration> + <src>${basedir}/src/test/resources</src> + <outJava>${basedir}/target/it-generated-source/java</outJava> + <outResource>${basedir}/target/it-generated-source/resources</outResource> + <force>true</force> + <addLogger>false</addLogger> + <includes> + <value>**/log/nolog/*.jaxx</value> + </includes> + </configuration> + </plugin> + </plugins> + </build> +</project> \ No newline at end of file Copied: lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/nolog/NoLog.jaxx (from rev 901, lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/force/JButton.jaxx) =================================================================== --- lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/nolog/NoLog.jaxx (rev 0) +++ lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/nolog/NoLog.jaxx 2008-10-13 18:11:46 UTC (rev 904) @@ -0,0 +1 @@ +<JButton id='testId' text='test.text'/> \ No newline at end of file Property changes on: lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/nolog/NoLog.jaxx ___________________________________________________________________ Name: svn:mergeinfo + Added: lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/nolog/NoLogSon.jaxx =================================================================== --- lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/nolog/NoLogSon.jaxx (rev 0) +++ lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/nolog/NoLogSon.jaxx 2008-10-13 18:11:46 UTC (rev 904) @@ -0,0 +1 @@ +<NoLog id='testId' text='test.text'/> \ No newline at end of file Added: lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/withlog/NoLog.jaxx =================================================================== --- lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/withlog/NoLog.jaxx (rev 0) +++ lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/withlog/NoLog.jaxx 2008-10-13 18:11:46 UTC (rev 904) @@ -0,0 +1 @@ +<WithLog id='testId' text='test.text'/> \ No newline at end of file Added: lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/withlog/WithLog.jaxx =================================================================== --- lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/withlog/WithLog.jaxx (rev 0) +++ lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/testcases/log/withlog/WithLog.jaxx 2008-10-13 18:11:46 UTC (rev 904) @@ -0,0 +1 @@ +<JButton id='testId' text='test.text'/> \ No newline at end of file Copied: lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/withlog.xml (from rev 900, lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/force.xml) =================================================================== --- lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/withlog.xml (rev 0) +++ lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/withlog.xml 2008-10-13 18:11:46 UTC (rev 904) @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <build> + <plugins> + <plugin> + <groupId>org.codelutin</groupId> + <artifactId>maven-jaxx-plugin</artifactId> + <configuration> + <src>${basedir}/src/test/resources</src> + <outJava>${basedir}/target/it-generated-source/java</outJava> + <outResource>${basedir}/target/it-generated-source/resources</outResource> + <force>true</force> + <addLogger>true</addLogger> + <includes> + <value>**/log/withlog/*.jaxx</value> + </includes> + </configuration> + </plugin> + </plugins> + </build> +</project> \ No newline at end of file Property changes on: lutinjaxx/trunk/maven-jaxx-plugin/src/test/resources/withlog.xml ___________________________________________________________________ Name: svn:mergeinfo +
participants (1)
-
tchemit@users.labs.libre-entreprise.org