Eugene-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
December 2008
- 3 participants
- 27 discussions
[Lutingenerator-commits] r408 - lutingenerator/trunk maven-generator-plugin/trunk
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
15 Dec '08
Author: tchemit
Date: 2008-12-15 02:37:52 +0000 (Mon, 15 Dec 2008)
New Revision: 408
Modified:
lutingenerator/trunk/changelog.txt
lutingenerator/trunk/pom.xml
maven-generator-plugin/trunk/pom.xml
Log:
push back scm
Modified: lutingenerator/trunk/changelog.txt
===================================================================
--- lutingenerator/trunk/changelog.txt 2008-12-15 02:32:19 UTC (rev 407)
+++ lutingenerator/trunk/changelog.txt 2008-12-15 02:37:52 UTC (rev 408)
@@ -1,3 +1,8 @@
+0.64 ?? 200812??
+
+0.63 chemit 20081215
+ * 20081215 [chemit] fix up to date regression on generation
+
0.62 chemit 20081210
* 20081210 [chemit] use lutinproject 3.2 and lutinutil 1.0
* 20081208 [chorlet] - correction bug #1737: Prise en compte du MetaModel UML dans les fichiers XMI
Modified: lutingenerator/trunk/pom.xml
===================================================================
--- lutingenerator/trunk/pom.xml 2008-12-15 02:32:19 UTC (rev 407)
+++ lutingenerator/trunk/pom.xml 2008-12-15 02:37:52 UTC (rev 408)
@@ -103,9 +103,9 @@
<!--Source control management-->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/lutingenerator/lutingenerator/trunk</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/lutingenerator/lutingenerator/trunk</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/lutingenerator/…</url>
+ <connection>${maven.scm.connection}</connection>
+ <developerConnection>${maven.scm.developerConnection}</developerConnection>
+ <url>${maven.scm.url}</url>
</scm>
</project>
Modified: maven-generator-plugin/trunk/pom.xml
===================================================================
--- maven-generator-plugin/trunk/pom.xml 2008-12-15 02:32:19 UTC (rev 407)
+++ maven-generator-plugin/trunk/pom.xml 2008-12-15 02:37:52 UTC (rev 408)
@@ -21,7 +21,7 @@
<dependency>
<groupId>org.codelutin</groupId>
<artifactId>lutingenerator</artifactId>
- <version>0.63</version>
+ <version>0.64-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
@@ -75,9 +75,9 @@
<!--Source control management-->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/lutingenerator/maven-generator-plugin/trunk</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/lutingenerator/maven-generator-plugin/trunk</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/maven-generator…</url>
+ <connection>${maven.scm.connection}</connection>
+ <developerConnection>${maven.scm.developerConnection}</developerConnection>
+ <url>${maven.scm.url}</url>
</scm>
</project>
1
0
[Lutingenerator-commits] r407 - maven-generator-plugin/trunk
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
15 Dec '08
Author: tchemit
Date: 2008-12-15 02:32:19 +0000 (Mon, 15 Dec 2008)
New Revision: 407
Modified:
maven-generator-plugin/trunk/pom.xml
Log:
[maven-release-plugin] prepare for next development iteration
Modified: maven-generator-plugin/trunk/pom.xml
===================================================================
--- maven-generator-plugin/trunk/pom.xml 2008-12-15 02:32:15 UTC (rev 406)
+++ maven-generator-plugin/trunk/pom.xml 2008-12-15 02:32:19 UTC (rev 407)
@@ -13,7 +13,7 @@
</parent>
<artifactId>maven-generator-plugin</artifactId>
- <version>0.63</version>
+ <version>0.64-SNAPSHOT</version>
<!-- POM Relationships : Inheritance : Dependencies -->
<dependencies>
@@ -75,9 +75,9 @@
<!--Source control management-->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/lutingenerator/maven-generator-plugin/tags/0.63</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/lutingenerator/maven-generator-plugin/tags/0.63</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/maven-generator…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/lutingenerator/maven-generator-plugin/trunk</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/lutingenerator/maven-generator-plugin/trunk</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/maven-generator…</url>
</scm>
</project>
1
0
[Lutingenerator-commits] r406 - in maven-generator-plugin/tags: . 0.63 0.63/src/main/java/org/codelutin/generator/plugin
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
15 Dec '08
Author: tchemit
Date: 2008-12-15 02:32:15 +0000 (Mon, 15 Dec 2008)
New Revision: 406
Added:
maven-generator-plugin/tags/0.63/
maven-generator-plugin/tags/0.63/README.txt
maven-generator-plugin/tags/0.63/changelog.txt
maven-generator-plugin/tags/0.63/pom.xml
maven-generator-plugin/tags/0.63/src/main/java/org/codelutin/generator/plugin/Xmi2Model.java
Removed:
maven-generator-plugin/tags/0.63/changelog
maven-generator-plugin/tags/0.63/pom.xml
maven-generator-plugin/tags/0.63/src/main/java/org/codelutin/generator/plugin/Xmi2Model.java
Log:
[maven-release-plugin] copy for tag 0.63
Copied: maven-generator-plugin/tags/0.63 (from rev 387, maven-generator-plugin/trunk)
Copied: maven-generator-plugin/tags/0.63/README.txt (from rev 389, maven-generator-plugin/trunk/README.txt)
===================================================================
--- maven-generator-plugin/tags/0.63/README.txt (rev 0)
+++ maven-generator-plugin/tags/0.63/README.txt 2008-12-15 02:32:15 UTC (rev 406)
@@ -0,0 +1,2 @@
+To deploy new version of pom: mvn deploy
+To install localy: mvn install
Deleted: maven-generator-plugin/tags/0.63/changelog
===================================================================
--- maven-generator-plugin/trunk/changelog 2008-12-09 09:49:14 UTC (rev 387)
+++ maven-generator-plugin/tags/0.63/changelog 2008-12-15 02:32:15 UTC (rev 406)
@@ -1,40 +0,0 @@
-0.62-SNAPSHOT
- * 20081208 [chorlet] correction bug #1737: Prise en compte du MetaModel UML dans les fichiers XMI
- - ajout du support des fichiers default-java.xml et default-uml14.xmi
-
-0.62 chemit 200811??
- * 20081203 [chemit] add a encoding goal property to be dispatched in all generator to control file generation encoding
- * 20081118 [chemit] use lutinproject 3.1
- * 20081117 [chemit]
- - add extraClassPathDirectory parameter to can specify an extra directory to add in classLoader
- - bump lutingenerator version
-
-0.61 chatellier 20081114
- * 20081107 [chatellier]
- - add test compile dir and test resources in generation gaol
- * 20081101 [chemit]
- - add an excludeTemplates property on GeneratorPlugin to permit exclusion of generators for some composite generator
- - bump lutingenerator to 0.61
-
-0.60 chemit 20081013
- * 20081013 [chemit]
- - remove addCompileDirectory option (always done) + add dynamic resources
- - use lutingenerator 0.60
- - clean pom
-
-0.51 thimel 20080925
- * 20080925 [thimel] Refactor pom using the correct architecture
- * 20080925 [thimel] Switched License to LGPL
- * 20080723 [chemit]
- - add generated sources in maven project's compilation directories via addCompilationDirectory plugin property
-
- * 20070525 [chatellier]
- - add Xmi2StateModel goal
- - improve Xmi2Model Hierarchy
- * 20070525 [chatellier] update ant dependency to 1.7.0
- * 20070525 [chatellier] replacing lutinxml.XSLAntTask by Ant.XSLTProcess
-
-0.50 ??? ???
-
- * 20070420 [chatellier] add goal to copy a set of generated files
- * 20070420 [chatellier] update lutingenerator depencency to 0.50
Copied: maven-generator-plugin/tags/0.63/changelog.txt (from rev 404, maven-generator-plugin/trunk/changelog.txt)
===================================================================
--- maven-generator-plugin/tags/0.63/changelog.txt (rev 0)
+++ maven-generator-plugin/tags/0.63/changelog.txt 2008-12-15 02:32:15 UTC (rev 406)
@@ -0,0 +1,42 @@
+0.64 ?? 200812??
+
+0.63 chemit 20081215
+ * 20081215 [chemit] follow lutingenerator release
+
+0.62 chemit 20081210
+ * 20081210 [chemit] use lutinpluginproject 3.2
+ * 20081203 [chemit] add a encoding goal property to be dispatched in all generator to control file generation encoding
+ * 20081118 [chemit] use lutinproject 3.1
+ * 20081117 [chemit]
+ - add extraClassPathDirectory parameter to can specify an extra directory to add in classLoader
+ - bump lutingenerator version
+
+0.61 chatellier 20081114
+ * 20081107 [chatellier]
+ - add test compile dir and test resources in generation gaol
+ * 20081101 [chemit]
+ - add an excludeTemplates property on GeneratorPlugin to permit exclusion of generators for some composite generator
+ - bump lutingenerator to 0.61
+
+0.60 chemit 20081013
+ * 20081013 [chemit]
+ - remove addCompileDirectory option (always done) + add dynamic resources
+ - use lutingenerator 0.60
+ - clean pom
+
+0.51 thimel 20080925
+ * 20080925 [thimel] Refactor pom using the correct architecture
+ * 20080925 [thimel] Switched License to LGPL
+ * 20080723 [chemit]
+ - add generated sources in maven project's compilation directories via addCompilationDirectory plugin property
+
+ * 20070525 [chatellier]
+ - add Xmi2StateModel goal
+ - improve Xmi2Model Hierarchy
+ * 20070525 [chatellier] update ant dependency to 1.7.0
+ * 20070525 [chatellier] replacing lutinxml.XSLAntTask by Ant.XSLTProcess
+
+0.50 ??? ???
+
+ * 20070420 [chatellier] add goal to copy a set of generated files
+ * 20070420 [chatellier] update lutingenerator depencency to 0.50
\ No newline at end of file
Deleted: maven-generator-plugin/tags/0.63/pom.xml
===================================================================
--- maven-generator-plugin/trunk/pom.xml 2008-12-09 09:49:14 UTC (rev 387)
+++ maven-generator-plugin/tags/0.63/pom.xml 2008-12-15 02:32:15 UTC (rev 406)
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>lutinpluginproject</artifactId>
- <version>3.1</version>
- </parent>
-
- <artifactId>maven-generator-plugin</artifactId>
-
- <!-- POM Relationships : Inheritance : Dependencies -->
- <dependencies>
-
- <dependency>
- <groupId>org.codelutin</groupId>
- <artifactId>lutingenerator</artifactId>
- <version>0.62-SNAPSHOT</version>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant</artifactId>
- <version>1.7.1</version>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant-trax</artifactId>
- <version>1.7.1</version>
- <scope>runtime</scope>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
- <name>Plugin maven Generator</name>
- <version>0.62-SNAPSHOT</version>
- <inceptionYear>2006</inceptionYear>
- <description>maven plugin to use the lutingenerator library</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>maven-plugin</packaging>
-
- <properties>
- <!-- id du projet du labs -->
- <labs.id>39</labs.id>
-
- <!-- nom du projet sur le labs -->
- <labs.project>lutingenerator</labs.project>
-
- </properties>
-
- <build>
- <plugins>
-
- </plugins>
- </build>
-
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
-
- <!--Source control management-->
- <scm>
- <connection>${maven.scm.connection}</connection>
- <developerConnection>${maven.scm.developerConnection}</developerConnection>
- <url>${maven.scm.url}</url>
- </scm>
-
-</project>
Copied: maven-generator-plugin/tags/0.63/pom.xml (from rev 405, maven-generator-plugin/trunk/pom.xml)
===================================================================
--- maven-generator-plugin/tags/0.63/pom.xml (rev 0)
+++ maven-generator-plugin/tags/0.63/pom.xml 2008-12-15 02:32:15 UTC (rev 406)
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinpluginproject</artifactId>
+ <version>3.2</version>
+ </parent>
+
+ <artifactId>maven-generator-plugin</artifactId>
+ <version>0.63</version>
+
+ <!-- POM Relationships : Inheritance : Dependencies -->
+ <dependencies>
+
+ <dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutingenerator</artifactId>
+ <version>0.63</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant</artifactId>
+ <version>1.7.1</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant-trax</artifactId>
+ <version>1.7.1</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+ <name>Plugin maven Generator</name>
+ <inceptionYear>2006</inceptionYear>
+ <description>maven plugin to use the lutingenerator library</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>maven-plugin</packaging>
+
+ <properties>
+ <!-- id du projet du labs -->
+ <labs.id>39</labs.id>
+
+ <!-- nom du projet sur le labs -->
+ <labs.project>lutingenerator</labs.project>
+
+ </properties>
+
+ <build>
+ <plugins>
+
+ </plugins>
+ </build>
+
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+
+ <!--Source control management-->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/lutingenerator/maven-generator-plugin/tags/0.63</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/lutingenerator/maven-generator-plugin/tags/0.63</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/maven-generator…</url>
+ </scm>
+
+</project>
Deleted: maven-generator-plugin/tags/0.63/src/main/java/org/codelutin/generator/plugin/Xmi2Model.java
===================================================================
--- maven-generator-plugin/trunk/src/main/java/org/codelutin/generator/plugin/Xmi2Model.java 2008-12-09 09:49:14 UTC (rev 387)
+++ maven-generator-plugin/tags/0.63/src/main/java/org/codelutin/generator/plugin/Xmi2Model.java 2008-12-15 02:32:15 UTC (rev 406)
@@ -1,193 +0,0 @@
-/* *##% Plugin maven Generator
- * Copyright (C) 2006 - 2008 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/
-
-/* *
- * Xmi2Model.java
- *
- * Created: 14 avril 2006
- *
- * @author ruchaud
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-
-package org.codelutin.generator.plugin;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileOutputStream;
-import java.net.URL;
-import java.util.List;
-
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.URIResolver;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
-import org.apache.tools.ant.BuildLogger;
-import org.apache.tools.ant.NoBannerLogger;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.taskdefs.Copy;
-import org.apache.tools.ant.types.FileSet;
-import org.codelutin.generator.plugin.helper.ResourceResolver;
-import org.codelutin.util.FileUtil;
-import org.codelutin.util.Resource;
-
-/**
- * Converti les fichiers XMI en fichier Model via une transformation XSLT a
- * définir.
- *
- * Class abstraite sans feuille de style.
- */
-public abstract class Xmi2Model extends AbstractMojo {
-
- /**
- * Répertoire source des fichiers XMI
- *
- * @parameter alias="srcXmiDest"
- * @required
- */
- protected File srcDirXmi;
-
- /**
- * Répertoire cible des fichiers générés
- *
- * @parameter alias="srcGenDest"
- * @required
- */
- protected File destDirObjectModel;
-
- /**
- * Nom du paquetage pour les fichiers générés
- *
- * @parameter expression="org.codelutin.${project.artifactId}"
- */
- protected String fullPackagePath;
-
- /**
- * Nom du paquetage à généré
- *
- * @parameter
- */
- protected String extractedPackages = "";
-
- /**
- * Ecrase les fichiers générés
- *
- * @parameter default-value="false"
- */
- private boolean overwrite = false;
-
- public void execute() throws MojoExecutionException, MojoFailureException {
- actionXsl();
- actionCopy();
- }
-
- private void actionXsl() throws MojoExecutionException {
- List<File> files = FileUtil.getFilteredElements(srcDirXmi, new FileFilter() {
- public boolean accept(File pathname) {
- if (pathname != null && pathname.getName().endsWith(".xmi")) {
- return true;
- }
- return false;
- }
- }, false);
-
- destDirObjectModel.mkdirs();
-
- TransformerFactory factory = TransformerFactory.newInstance();
- URIResolver resolver = new ResourceResolver();
- for (File file : files) {
- try {
- URL xsl = Resource.getURL(getStyleSheet());
- File result = new File(destDirObjectModel, FileUtil.basename(file, ".xmi").concat(
- ".").concat(getExtension()));
-
- Transformer transformer = factory
- .newTransformer(new StreamSource(xsl.openStream()));
- transformer.setURIResolver(resolver);
- transformer.transform(new StreamSource(file), new StreamResult(
- new FileOutputStream(result)));
- transformer = null;
-
- } catch (Exception e) {
- e.printStackTrace();
- throw new MojoExecutionException(e.getMessage());
- }
- }
- factory = null;
- resolver = null;
- }
-
- private void actionCopy() {
- /* Création d'un projet ant */
- Project project = createProject();
-
- /* Création de la tâche ant Copy */
- Copy copy = new Copy();
- copy.setProject(project);
- copy.setTaskName("Copy ressources");
-
- /* Configuration */
- copy.setTodir(destDirObjectModel);
- copy.setOverwrite(overwrite);
-
- FileSet fileSet = new FileSet();
- fileSet.setProject(project);
- fileSet.setDir(srcDirXmi);
- fileSet.setExcludes("**/*.xmi");
- copy.addFileset(fileSet);
-
- /* Execution */
- copy.execute();
- }
-
- private Project createProject() {
- /* Création d'un projet ant */
- Project project = new Project();
-
- BuildLogger logger = new NoBannerLogger();
- logger.setMessageOutputLevel(org.apache.tools.ant.Project.MSG_INFO);
- logger.setOutputPrintStream(System.out);
- logger.setErrorPrintStream(System.err);
-
- project.init();
- project.getBaseDir();
- project.addBuildListener(logger);
- return project;
- }
-
- /**
- * Set extention
- *
- * @return the extention
- */
- protected abstract String getExtension();
-
- /**
- * Set style sheet
- *
- * @return the stylesheet
- */
- protected abstract String getStyleSheet();
-}
Copied: maven-generator-plugin/tags/0.63/src/main/java/org/codelutin/generator/plugin/Xmi2Model.java (from rev 400, maven-generator-plugin/trunk/src/main/java/org/codelutin/generator/plugin/Xmi2Model.java)
===================================================================
--- maven-generator-plugin/tags/0.63/src/main/java/org/codelutin/generator/plugin/Xmi2Model.java (rev 0)
+++ maven-generator-plugin/tags/0.63/src/main/java/org/codelutin/generator/plugin/Xmi2Model.java 2008-12-15 02:32:15 UTC (rev 406)
@@ -0,0 +1,190 @@
+/* *##% Plugin maven Generator
+ * Copyright (C) 2006 - 2008 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/
+
+/* *
+ * Xmi2Model.java
+ *
+ * Created: 14 avril 2006
+ *
+ * @author ruchaud
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+
+package org.codelutin.generator.plugin;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileOutputStream;
+import java.net.URL;
+import java.util.List;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.URIResolver;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.tools.ant.BuildLogger;
+import org.apache.tools.ant.NoBannerLogger;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.taskdefs.Copy;
+import org.apache.tools.ant.types.FileSet;
+import org.codelutin.generator.plugin.helper.ResourceResolver;
+import org.codelutin.util.FileUtil;
+import org.codelutin.util.Resource;
+
+/**
+ * Converti les fichiers XMI en fichier Model via une transformation XSLT a
+ * définir.
+ *
+ * Class abstraite sans feuille de style.
+ */
+public abstract class Xmi2Model extends AbstractMojo {
+
+ /**
+ * Répertoire source des fichiers XMI
+ *
+ * @parameter alias="srcXmiDest"
+ * @required
+ */
+ protected File srcDirXmi;
+
+ /**
+ * Répertoire cible des fichiers générés
+ *
+ * @parameter alias="srcGenDest"
+ * @required
+ */
+ protected File destDirObjectModel;
+
+ /**
+ * Nom du paquetage pour les fichiers générés
+ *
+ * @parameter expression="org.codelutin.${project.artifactId}"
+ */
+ protected String fullPackagePath;
+
+ /**
+ * Nom du paquetage à généré
+ *
+ * @parameter
+ */
+ protected String extractedPackages = "";
+
+ /**
+ * Ecrase les fichiers générés
+ *
+ * @parameter default-value="false"
+ */
+ private boolean overwrite = false;
+
+ public void execute() throws MojoExecutionException, MojoFailureException {
+ actionXsl();
+ actionCopy();
+ }
+
+ private void actionXsl() throws MojoExecutionException {
+ List<File> files = FileUtil.getFilteredElements(srcDirXmi, new FileFilter() {
+ public boolean accept(File pathname) {
+ return pathname != null && pathname.getName().endsWith(".xmi");
+ }
+ }, false);
+
+ destDirObjectModel.mkdirs();
+
+ TransformerFactory factory = TransformerFactory.newInstance();
+ URIResolver resolver = new ResourceResolver();
+ URL xsl = Resource.getURL(getStyleSheet());
+
+ for (File file : files) {
+ try {
+ File result = new File(destDirObjectModel, FileUtil.basename(file, ".xmi").concat(
+ ".").concat(getExtension()));
+ if (!overwrite && file.lastModified() < result.lastModified()) {
+ getLog().info("file up-to-date : "+result);
+ continue;
+ }
+ Transformer transformer = factory
+ .newTransformer(new StreamSource(xsl.openStream()));
+ transformer.setURIResolver(resolver);
+ transformer.transform(new StreamSource(file), new StreamResult(
+ new FileOutputStream(result)));
+
+ } catch (Exception e) {
+ throw new MojoExecutionException(e.getMessage(),e);
+ }
+ }
+ }
+
+ private void actionCopy() {
+ /* Création d'un projet ant */
+ Project project = createProject();
+
+ /* Création de la tâche ant Copy */
+ Copy copy = new Copy();
+ copy.setProject(project);
+ copy.setTaskName("Copy ressources");
+
+ /* Configuration */
+ copy.setTodir(destDirObjectModel);
+ copy.setOverwrite(overwrite);
+
+ FileSet fileSet = new FileSet();
+ fileSet.setProject(project);
+ fileSet.setDir(srcDirXmi);
+ fileSet.setExcludes("**/*.xmi");
+ copy.addFileset(fileSet);
+
+ /* Execution */
+ copy.execute();
+ }
+
+ private Project createProject() {
+ /* Création d'un projet ant */
+ Project project = new Project();
+
+ BuildLogger logger = new NoBannerLogger();
+ logger.setMessageOutputLevel(org.apache.tools.ant.Project.MSG_INFO);
+ logger.setOutputPrintStream(System.out);
+ logger.setErrorPrintStream(System.err);
+
+ project.init();
+ project.getBaseDir();
+ project.addBuildListener(logger);
+ return project;
+ }
+
+ /**
+ * Set extention
+ *
+ * @return the extention
+ */
+ protected abstract String getExtension();
+
+ /**
+ * Set style sheet
+ *
+ * @return the stylesheet
+ */
+ protected abstract String getStyleSheet();
+}
1
0
[Lutingenerator-commits] r405 - maven-generator-plugin/trunk
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
15 Dec '08
Author: tchemit
Date: 2008-12-15 02:32:11 +0000 (Mon, 15 Dec 2008)
New Revision: 405
Modified:
maven-generator-plugin/trunk/pom.xml
Log:
[maven-release-plugin] prepare release 0.63
Modified: maven-generator-plugin/trunk/pom.xml
===================================================================
--- maven-generator-plugin/trunk/pom.xml 2008-12-15 02:31:29 UTC (rev 404)
+++ maven-generator-plugin/trunk/pom.xml 2008-12-15 02:32:11 UTC (rev 405)
@@ -13,7 +13,7 @@
</parent>
<artifactId>maven-generator-plugin</artifactId>
- <version>0.63-SNAPSHOT</version>
+ <version>0.63</version>
<!-- POM Relationships : Inheritance : Dependencies -->
<dependencies>
@@ -75,9 +75,9 @@
<!--Source control management-->
<scm>
- <connection>${maven.scm.connection}</connection>
- <developerConnection>${maven.scm.developerConnection}</developerConnection>
- <url>${maven.scm.url}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/lutingenerator/maven-generator-plugin/tags/0.63</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/lutingenerator/maven-generator-plugin/tags/0.63</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/maven-generator…</url>
</scm>
</project>
1
0
[Lutingenerator-commits] r404 - maven-generator-plugin/trunk
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
15 Dec '08
Author: tchemit
Date: 2008-12-15 02:31:29 +0000 (Mon, 15 Dec 2008)
New Revision: 404
Modified:
maven-generator-plugin/trunk/changelog.txt
maven-generator-plugin/trunk/pom.xml
Log:
prepare release
Modified: maven-generator-plugin/trunk/changelog.txt
===================================================================
--- maven-generator-plugin/trunk/changelog.txt 2008-12-15 02:16:37 UTC (rev 403)
+++ maven-generator-plugin/trunk/changelog.txt 2008-12-15 02:31:29 UTC (rev 404)
@@ -1,3 +1,8 @@
+0.64 ?? 200812??
+
+0.63 chemit 20081215
+ * 20081215 [chemit] follow lutingenerator release
+
0.62 chemit 20081210
* 20081210 [chemit] use lutinpluginproject 3.2
* 20081203 [chemit] add a encoding goal property to be dispatched in all generator to control file generation encoding
Modified: maven-generator-plugin/trunk/pom.xml
===================================================================
--- maven-generator-plugin/trunk/pom.xml 2008-12-15 02:16:37 UTC (rev 403)
+++ maven-generator-plugin/trunk/pom.xml 2008-12-15 02:31:29 UTC (rev 404)
@@ -21,7 +21,7 @@
<dependency>
<groupId>org.codelutin</groupId>
<artifactId>lutingenerator</artifactId>
- <version>${project.version}</version>
+ <version>0.63</version>
<scope>compile</scope>
</dependency>
1
0
[Lutingenerator-commits] r403 - lutingenerator/trunk
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
15 Dec '08
Author: tchemit
Date: 2008-12-15 02:16:37 +0000 (Mon, 15 Dec 2008)
New Revision: 403
Modified:
lutingenerator/trunk/pom.xml
Log:
[maven-release-plugin] prepare for next development iteration
Modified: lutingenerator/trunk/pom.xml
===================================================================
--- lutingenerator/trunk/pom.xml 2008-12-15 02:16:34 UTC (rev 402)
+++ lutingenerator/trunk/pom.xml 2008-12-15 02:16:37 UTC (rev 403)
@@ -13,7 +13,7 @@
</parent>
<artifactId>lutingenerator</artifactId>
- <version>0.63</version>
+ <version>0.64-SNAPSHOT</version>
<!-- POM Relationships : Inheritance : Dependencies -->
<dependencies>
@@ -103,9 +103,9 @@
<!--Source control management-->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/lutingenerator/lutingenerator/tags/0.63</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/lutingenerator/lutingenerator/tags/0.63</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/lutingenerator/…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/lutingenerator/lutingenerator/trunk</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/lutingenerator/lutingenerator/trunk</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/lutingenerator/…</url>
</scm>
</project>
1
0
[Lutingenerator-commits] r402 - in lutingenerator/tags: . 0.63 0.63/src/main/java/org/codelutin/generator
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
15 Dec '08
Author: tchemit
Date: 2008-12-15 02:16:34 +0000 (Mon, 15 Dec 2008)
New Revision: 402
Added:
lutingenerator/tags/0.63/
lutingenerator/tags/0.63/README.txt
lutingenerator/tags/0.63/changelog.txt
lutingenerator/tags/0.63/pom.xml
lutingenerator/tags/0.63/src/main/java/org/codelutin/generator/ObjectModelGenerator.java
Removed:
lutingenerator/tags/0.63/changelog
lutingenerator/tags/0.63/pom.xml
lutingenerator/tags/0.63/src/main/java/org/codelutin/generator/ObjectModelGenerator.java
Log:
[maven-release-plugin] copy for tag 0.63
Copied: lutingenerator/tags/0.63 (from rev 387, lutingenerator/trunk)
Copied: lutingenerator/tags/0.63/README.txt (from rev 388, lutingenerator/trunk/README.txt)
===================================================================
--- lutingenerator/tags/0.63/README.txt (rev 0)
+++ lutingenerator/tags/0.63/README.txt 2008-12-15 02:16:34 UTC (rev 402)
@@ -0,0 +1,2 @@
+To deploy new version of pom: mvn deploy
+To install localy: mvn install
Deleted: lutingenerator/tags/0.63/changelog
===================================================================
--- lutingenerator/trunk/changelog 2008-12-09 09:49:14 UTC (rev 387)
+++ lutingenerator/tags/0.63/changelog 2008-12-15 02:16:34 UTC (rev 402)
@@ -1,78 +0,0 @@
-0.62-SNAPSHOT
- * 20081208 [chorlet] correction bug #1737: Prise en compte du MetaModel UML dans les fichiers XMI
- - ajout du support des fichiers default-java.xml et default-uml14.xmi
-
-0.62 chemit 200811??
- * 20081203 [chemit] add a encoding property on generator to control file generation encoding
- * 20081118 [chemit] use lutinproject 3.1
- * 20081117 [chemit] : GeneratorTask can have a dedicated classLoader to be used to instanciate generator implementations
-
-0.61 chatellier 20081114
- * 20081101 [chemit]
- - add a parent setter on ChildGenerator
- - add an excludeTemplates property on Generator and GeneratorTask to permit exclusion of generators for some composite generator
-
-0.60 chemit 20081013
- * 20081013 [chemit]
- - make tests works again
- - clean pom
-
-ver-0-51 thimel 20080925
-
- * 20080925 [thimel] super pom in version 3.0
- * 20080901 [chatellier] Maven2 layout and LGPL3
- * 20070528 [chatellier] add tag values support to stateModel
- * 20070528 [chatellier] modify defaut stateModel generation
- * 20070523 [chatellier] remove lutinxml dependency
- * 20070523 [chatellier] UIModel implementation over digester :
- - use generics
- - non tested
- - no digester rules definided (no samples available)
- * 20070523 [chatellier] change property reverveAttribute to
- reverveAttributeName to resolve conflict in objectModel model.
- * 20070522 [chatellier] modify ObjectModel implementation :
- - to use JavaBeans conventions
- - parsed with commons-digester
- - to use generics
- * 20070520 [chatellier] add stateModel (parsed with commons-digester)
- * 20070520 [chatellier] correct generic type error on objectModel interfaces
-
-ver-0-50 poussin 20070425
-
- * add associationType for all attributes
- * 20070420 [chatellier] Ajout de l'export de la version du modèle xmi dans
- xmi1.2ToObjectModel.xsl
- * 20070420 [chatellier] ajout de la DTD objectModel
-
-ver-0-31 thimel 20060825
-
- * ajout de isIndexed sur les attributs
- * isOrdered est vrai si isIndexed est vrai ou que le tagValue order-by est
- present ou que ordering fixe sur ordered
- * Ajout de validateurs de modele + impl de validateur "basiques" base sur des
- noms (attributs, classes, ...).
-
-ver-0-30 thimel 20060303
-
- * Ajout des exceptions pour les operations
- * Correction du support des interfaces et classes abstraites
- * Double compatibilite Poseidon 3.2 / 4
-
-ver-0-29 thimel 20060228
-
- * Support de l'hértage pour les classes d'association
-
-ver-0-28 thimel 20060224
-
- * Support de Poseidon4
- * Possibilite d'avoir des tagValues sur les modeles
- * Ajout de l'extraction de ordered et de la navigabilite
-
-ver-0-27 thimel 20051213
-
- * Ajout d'une methode pour avoir la liste des attributs d'une classe
- * Correction erreur de fonctionnement dans ObjectModelImpl(XML).getInterface (doit renvoyer null si non trouve)
-
-0.26
-
- * Ajout du support des stereotypes sur les attributs
Copied: lutingenerator/tags/0.63/changelog.txt (from rev 388, lutingenerator/trunk/changelog.txt)
===================================================================
--- lutingenerator/tags/0.63/changelog.txt (rev 0)
+++ lutingenerator/tags/0.63/changelog.txt 2008-12-15 02:16:34 UTC (rev 402)
@@ -0,0 +1,78 @@
+0.62 chemit 20081210
+ * 20081210 [chemit] use lutinproject 3.2 and lutinutil 1.0
+ * 20081208 [chorlet] - correction bug #1737: Prise en compte du MetaModel UML dans les fichiers XMI
+ - ajout du support des fichiers default-java.xml et default-uml14.xmi
+
+ * 20081203 [chemit] add a encoding property on generator to control file generation encoding
+ * 20081118 [chemit] use lutinproject 3.1
+ * 20081117 [chemit] : GeneratorTask can have a dedicated classLoader to be used to instanciate generator implementations
+
+0.61 chatellier 20081114
+ * 20081101 [chemit]
+ - add a parent setter on ChildGenerator
+ - add an excludeTemplates property on Generator and GeneratorTask to permit exclusion of generators for some composite generator
+
+0.60 chemit 20081013
+ * 20081013 [chemit]
+ - make tests works again
+ - clean pom
+
+ver-0-51 thimel 20080925
+
+ * 20080925 [thimel] super pom in version 3.0
+ * 20080901 [chatellier] Maven2 layout and LGPL3
+ * 20070528 [chatellier] add tag values support to stateModel
+ * 20070528 [chatellier] modify defaut stateModel generation
+ * 20070523 [chatellier] remove lutinxml dependency
+ * 20070523 [chatellier] UIModel implementation over digester :
+ - use generics
+ - non tested
+ - no digester rules definided (no samples available)
+ * 20070523 [chatellier] change property reverveAttribute to
+ reverveAttributeName to resolve conflict in objectModel model.
+ * 20070522 [chatellier] modify ObjectModel implementation :
+ - to use JavaBeans conventions
+ - parsed with commons-digester
+ - to use generics
+ * 20070520 [chatellier] add stateModel (parsed with commons-digester)
+ * 20070520 [chatellier] correct generic type error on objectModel interfaces
+
+ver-0-50 poussin 20070425
+
+ * add associationType for all attributes
+ * 20070420 [chatellier] Ajout de l'export de la version du modèle xmi dans
+ xmi1.2ToObjectModel.xsl
+ * 20070420 [chatellier] ajout de la DTD objectModel
+
+ver-0-31 thimel 20060825
+
+ * ajout de isIndexed sur les attributs
+ * isOrdered est vrai si isIndexed est vrai ou que le tagValue order-by est
+ present ou que ordering fixe sur ordered
+ * Ajout de validateurs de modele + impl de validateur "basiques" base sur des
+ noms (attributs, classes, ...).
+
+ver-0-30 thimel 20060303
+
+ * Ajout des exceptions pour les operations
+ * Correction du support des interfaces et classes abstraites
+ * Double compatibilite Poseidon 3.2 / 4
+
+ver-0-29 thimel 20060228
+
+ * Support de l'hértage pour les classes d'association
+
+ver-0-28 thimel 20060224
+
+ * Support de Poseidon4
+ * Possibilite d'avoir des tagValues sur les modeles
+ * Ajout de l'extraction de ordered et de la navigabilite
+
+ver-0-27 thimel 20051213
+
+ * Ajout d'une methode pour avoir la liste des attributs d'une classe
+ * Correction erreur de fonctionnement dans ObjectModelImpl(XML).getInterface (doit renvoyer null si non trouve)
+
+0.26
+
+ * Ajout du support des stereotypes sur les attributs
\ No newline at end of file
Deleted: lutingenerator/tags/0.63/pom.xml
===================================================================
--- lutingenerator/trunk/pom.xml 2008-12-09 09:49:14 UTC (rev 387)
+++ lutingenerator/tags/0.63/pom.xml 2008-12-15 02:16:34 UTC (rev 402)
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>lutinproject</artifactId>
- <version>3.1</version>
- </parent>
-
- <artifactId>lutingenerator</artifactId>
-
- <!-- POM Relationships : Inheritance : Dependencies -->
- <dependencies>
-
- <dependency>
- <groupId>commons-digester</groupId>
- <artifactId>commons-digester</artifactId>
- <version>1.8</version>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.4</version>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant</artifactId>
- <version>1.7.1</version>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>org.codelutin</groupId>
- <artifactId>lutinutil</artifactId>
- <version>0.31</version>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>dom4j</groupId>
- <artifactId>dom4j</artifactId>
- <version>1.6.1</version>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>jaxen</groupId>
- <artifactId>jaxen</artifactId>
- <version>1.1.1</version>
- <scope>compile</scope>
- </dependency>
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
- <name>Lutin Generator</name>
- <version>0.62-SNAPSHOT</version>
- <description>Générateurs en tout genre.</description>
- <inceptionYear>2004</inceptionYear>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <properties>
-
- <!-- id du projet du labs -->
- <labs.id>39</labs.id>
-
- </properties>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- </plugin>
-
- </plugins>
- </build>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
-
- <!--Source control management-->
- <scm>
- <connection>${maven.scm.connection}</connection>
- <developerConnection>${maven.scm.developerConnection}</developerConnection>
- <url>${maven.scm.url}</url>
- </scm>
-
-</project>
Copied: lutingenerator/tags/0.63/pom.xml (from rev 401, lutingenerator/trunk/pom.xml)
===================================================================
--- lutingenerator/tags/0.63/pom.xml (rev 0)
+++ lutingenerator/tags/0.63/pom.xml 2008-12-15 02:16:34 UTC (rev 402)
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinproject</artifactId>
+ <version>3.2</version>
+ </parent>
+
+ <artifactId>lutingenerator</artifactId>
+ <version>0.63</version>
+
+ <!-- POM Relationships : Inheritance : Dependencies -->
+ <dependencies>
+
+ <dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinutil</artifactId>
+ <version>${lutinutil.version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-digester</groupId>
+ <artifactId>commons-digester</artifactId>
+ <version>1.8</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.4</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant</artifactId>
+ <version>1.7.1</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>1.6.1</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>jaxen</groupId>
+ <artifactId>jaxen</artifactId>
+ <version>1.1.1</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+ <name>Lutin Generator</name>
+
+ <description>Générateurs en tout genre.</description>
+ <inceptionYear>2004</inceptionYear>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <properties>
+
+ <!-- id du projet du labs -->
+ <labs.id>39</labs.id>
+
+ <!-- name du projet du labs -->
+ <labs.project>lutingenerator</labs.project>
+
+ <!-- lutinutil version -->
+ <lutinutil.version>1.0</lutinutil.version>
+
+ </properties>
+
+ <build>
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+
+ <!--Source control management-->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/lutingenerator/lutingenerator/tags/0.63</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/lutingenerator/lutingenerator/tags/0.63</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/lutingenerator/…</url>
+ </scm>
+
+</project>
Deleted: lutingenerator/tags/0.63/src/main/java/org/codelutin/generator/ObjectModelGenerator.java
===================================================================
--- lutingenerator/trunk/src/main/java/org/codelutin/generator/ObjectModelGenerator.java 2008-12-09 09:49:14 UTC (rev 387)
+++ lutingenerator/tags/0.63/src/main/java/org/codelutin/generator/ObjectModelGenerator.java 2008-12-15 02:16:34 UTC (rev 402)
@@ -1,430 +0,0 @@
-/* *##% Lutin Generator
- * Copyright (C) 2004 - 2008 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/
-
-/*******************************************************************************
- * ObjectModelGenerator.java
- *
- * Created: 14 mars 2004
- *
- * @author Benjamin Poussin <poussin(a)codelutin.com> Copyright Code Lutin
- *
- * @version $Revision$
- *
- * Mise a jour: $Date$ par : $Author$
- */
-
-package org.codelutin.generator;
-
-import org.apache.commons.digester.Digester;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.codelutin.generator.models.object.ObjectModel;
-import org.codelutin.generator.models.object.ObjectModelClass;
-import org.codelutin.generator.models.object.ObjectModelClassifier;
-import org.codelutin.generator.models.object.ObjectModelElement;
-import org.codelutin.generator.models.object.ObjectModelInterface;
-import org.codelutin.generator.models.object.xml.DigesterObjectModelRuleSet;
-import org.codelutin.generator.models.object.xml.ObjectModelClassifierImpl;
-import org.codelutin.generator.models.object.xml.ObjectModelElementImpl;
-import org.codelutin.generator.models.object.xml.ObjectModelImpl;
-import org.codelutin.generator.models.object.xml.ObjectModelImplRef;
-import org.codelutin.generator.models.object.xml.ObjectModelImplTagValue;
-import org.codelutin.util.FileUtil;
-import org.codelutin.util.RecursiveProperties;
-import org.codelutin.util.StringUtil;
-import org.xml.sax.SAXException;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Pour utiliser ce type de générateur il faut implanter au moins une des trois
- * méthodes generateFrom... et le getFilenameFor... associé si l'on souhaite un
- * nom de fichier convenable. Si dans une méthode generateFrom... on utilise pas
- * le Writer alors aucun fichier n'est généré.
- *
- * <pre>
- * public String getFilenameForClass(ObjectModelClass clazz){
- * return super.getFilenameForClass(Clazz) + "Service.java";
- * }
- *
- * public void generateFromClass(Writer output, ObjectModelClass clazz) throws IOException{
- * if(clazz.getType().equals("service")){
- * / *{
- * public class .... {
- *
- * }
- * }* /
- * }
- * }
- * </pre>
- *
- * Le nom de l'argument writer doit absolument etre output et pas autre chose si
- * vous souhaitez utiliser le processeur
- * {@link org.codelutin.processor.filters.GeneratorTemplatesFilter} pour vous
- * s'implifier l'écriture des templates.
- */
-public class ObjectModelGenerator extends ChildGenerator {
-
- /**
- * Logger for this class
- */
- private static final Log log = LogFactory
- .getLog(ObjectModelGenerator.class);
-
- protected ObjectModel model = null;
-
- /**
- *
- * l'expression réguliere match les chaines de type
- * <package.ClassName>.<class|attribute|operation>.[name].<stereotype|tagvalue>.[tag]
- * fr.isisfish.entities.Population.class.stereotype=entity
- * fr.isisfish.entities.Population.class.tagvalue.persistenceType=flatfile
- * fr.isisfish.entities.Population.attribute.name.stereotype=...
- * fr.isisfish.entities.Population.attribute.name.tagvalue.pk=topiaId
- * fr.isisfish.entities.Population.operation.getRegion.stereotype=...
- * fr.isisfish.entities.Population.operation.getRegion.tagvalue.pk=...
- */
- Pattern propertiesPattern = Pattern
- .compile("((?:[_a-zA-Z0-9]+\\.)+(?:_?[A-Z][_a-zA-Z0-9]*\\.)+)(?:(class|attribute|operation)\\.)(?:([_a-z0-9][_a-zA-Z0-9]*)\\.)?(?:(stereotype|tagvalue)\\.?)([_a-z0-9][_a-zA-Z0-9]*)?");
-
- public ObjectModelGenerator() {
- super();
- }
-
- public ObjectModelGenerator(Generator parent) {
- super(parent);
- }
-
- public ObjectModel getModel() {
- return model;
- }
-
- /**
- * @param files les noms des fichiers existant contenant du XML représentant
- * des ObjectModel. Il est automatiquement recherche un fichier de
- * propriété associé a ce fichier pour pouvoir ajouter des
- * stereotype ou des tag value sur les class, attribute ou operation
- * @param destDir le répertoire dans lequel il faudra mettre les fichiers
- * générés
- */
- public void generate(File[] files, File destDir) {
- setLastModifiedSource(files);
- ObjectModel objectModel = new ObjectModelImpl();
-
- // Digester parser configuration
- Digester digester = new Digester();
- digester.addRuleSet(new DigesterObjectModelRuleSet());
-
- for (File file : files) {
- try {
- digester.push(objectModel);
- objectModel = (ObjectModel) digester.parse(file);
- } catch (IOException e) {
- log.warn("Unable to parse ObjectModel input file : "
- + file, e);
- } catch (SAXException e) {
- log.warn("Unable to parse ObjectModel input file : "
- + file, e);
- }
-
- // recherche est charge le fichier propriete associe au modele
- File dir = file.getParentFile();
- String ext = FileUtil.extension(file);
- String name = FileUtil.basename(file, "." + ext);
- File propFile = new File(dir, name + ".properties");
- RecursiveProperties prop = new RecursiveProperties();
- if (!propFile.exists()) {
- if (log.isInfoEnabled()) {
- log.info("Pas de fichier de propriete " + propFile
- + " associé au model");
- }
- } else {
- if (log.isInfoEnabled()) {
- log.info("Lecture du fichier de propriete " + propFile
- + " associé au model");
- }
- try {
- prop.load(new FileInputStream(propFile));
- } catch (IOException eee) {
- log.warn("Impossible de lire le fichier de propriete "
- + propFile, eee);
- }
-
- // on ajoute les proprietes du fichier associe au model
- for (Enumeration e = prop.keys(); e.hasMoreElements();) {
- String key = (String) e.nextElement();
- String value = prop.getProperty(key);
-
- if (key.startsWith("model")) {
- if (!key.startsWith("model.tagvalue.")) {
- log.warn("only tagvalue is allowed on model in properties");
- } else {
- String tag = key.substring("model.tagvalue.".length());
-
- ObjectModelImplTagValue tagvalue = new ObjectModelImplTagValue();
- tagvalue.setName(tag);
- tagvalue.setValue(value);
- ((ObjectModelImpl) objectModel).addTagValue(tagvalue);
- }
- } else {
-
- Matcher matcher = propertiesPattern.matcher(key);
-
- if (log.isDebugEnabled()) {
- log.debug("Propriete: '" + key + "'");
- }
-
- if (matcher.find()) {
- // fqn is fully qualified name of class
- String fqn = matcher.group(1);
- fqn = StringUtil.substring(fqn, 0, -1); // remove ended
- // .
- // target is class, attribute or operation
- String target = matcher.group(2);
- String targetName = matcher.group(3);
- // type is stereotype or tagvalue
- String type = matcher.group(4);
- String tag = matcher.group(5);
-
- if (log.isDebugEnabled()) {
- log.debug("Propriete: '" + key + "' => " + "fqn:"
- + fqn + " target:" + target
- + " targetName:" + targetName + " type:"
- + type + " tag:" + tag);
- }
-
- ObjectModelClassifier omc = objectModel
- .getClassifier(fqn);
- if (omc instanceof ObjectModelClassifierImpl) {
- // on utilise une liste car il peut y avoir plusieur
- // operation avec le nom donné
- List<ObjectModelElement> elems = new ArrayList<ObjectModelElement>();
- if ("class".equals(target)) {
- elems.add((ObjectModelElementImpl) omc);
- } else if ("attribute".equals(target)) {
- ObjectModelClass classmodel = (ObjectModelClass) omc;
- elems.add((ObjectModelElementImpl) classmodel
- .getAttribute(targetName));
- } else if ("operation".equals(target)) {
- elems.addAll(omc
- .getOperations(targetName));
- }
- for (Iterator it = elems.iterator(); it.hasNext();) {
- ObjectModelElementImpl elem = (ObjectModelElementImpl) it
- .next();
- if ("stereotype".equals(type)) {
- // pour les stereotypes
- ObjectModelImplRef stereotype = new ObjectModelImplRef();
- stereotype.setName(value);
- elem.addStereotype(stereotype);
- } else if ("tagvalue".equals(type)) {
- // pour les tagvalues
- ObjectModelImplTagValue tagvalue = new ObjectModelImplTagValue();
- tagvalue.setName(tag);
- tagvalue.setValue(value);
- elem.addTagValue(tagvalue);
- }
- }
- } else {
- // TODO il faudra avoir des methodes d'acces en
- // Set sur l'interface pour eviter ce message
- log.warn("Can't add properties to model, it's not an ObjectModelClassifierImpl");
- }
- }
- }
- }
- }
- }
- try {
- generate(objectModel, destDir);
- } catch (IOException eee) {
- if (log.isWarnEnabled()) {
- log.warn("Unable to generate for file", eee);
- }
- }
- }
-
- /**
- * Par defaut la methode appelle la methode
- * {@link #generateFromModel(Writer, ObjectModel)} puis boucle sur chaque
- * class en appelant la m?thode
- * {@link #generateFromClass(Writer, ObjectModelClass)} et enfin sur chaque
- * interface en appelant a méthode
- * {@link #generateFromInterface(Writer, ObjectModelInterface)} Le nom de
- * fichier est récupérer pour chacun d'eux en appelant la méthode
- * getFilenameFor.... La methode generateFrom... n'utilise pas le Writer
- * alors le fichier n'est pas généré, si on l'utilise m?me pour ne rien
- * écrire alors le fichier sera généré.
- * @param model
- * @param destDir
- * @throws java.io.IOException
- */
- public void generate(ObjectModel model, File destDir) throws IOException {
- {
- this.model = model;
-
- String filename = getFilenameForModel(model);
- File outputFile = getDestinationFile(destDir, filename);
- if (getOverwrite() || !isNewerThanSource(outputFile)) {
- try {
- StringWriter out = new StringWriter();
- MonitorWriter monitorOut = new MonitorWriter(out);
- generateFromModel(monitorOut, model);
- write(outputFile, monitorOut);
- } catch (Exception eee) {
- log.warn("Erreur lors de la génération du fichier " + outputFile);
- throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
- }
- } else {
- Logger.getLogger(getClass().getName() + ".generate").log(
- Level.FINE, "file " + outputFile + " is up-to-date");
- }
- }
-
- for (Object o : model.getClassifiers()) {
- ObjectModelClassifier clazz = (ObjectModelClassifier) o;
-
- String filename = getFilenameForClassifier(clazz);
- File outputFile = getDestinationFile(destDir, filename);
- if (getOverwrite() || !isNewerThanSource(outputFile)) {
- try {
- StringWriter out = new StringWriter();
- MonitorWriter monitorOut = new MonitorWriter(out);
- generateFromClassifier(monitorOut, clazz);
- write(outputFile, monitorOut);
- } catch (Exception eee) {
- log.warn("Erreur lors de la génération du fichier " + outputFile);
- throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
- }
- } else {
- Logger.getLogger(getClass().getName() + ".generate").log(
- Level.FINE, "file " + outputFile + " is up-to-date");
- }
- }
-
- for (Object o : model.getInterfaces()) {
- ObjectModelInterface interfacez = (ObjectModelInterface) o;
-
- String filename = getFilenameForInterface(interfacez);
- File outputFile = getDestinationFile(destDir, filename);
- if (getOverwrite() || !isNewerThanSource(outputFile)) {
- try {
- StringWriter out = new StringWriter();
- MonitorWriter monitorOut = new MonitorWriter(out);
- generateFromInterface(monitorOut, interfacez);
- write(outputFile, monitorOut);
- } catch (Exception eee) {
- log.warn("Erreur lors de la génération du fichier " + outputFile);
- throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
- }
- } else {
- Logger.getLogger(getClass().getName() + ".generate").log(
- Level.FINE, "file " + outputFile + " is up-to-date");
- }
- }
-
- for (Object o : model.getClasses()) {
- ObjectModelClass clazz = (ObjectModelClass) o;
-
- String filename = getFilenameForClass(clazz);
- File outputFile = getDestinationFile(destDir, filename);
- if (getOverwrite() || !isNewerThanSource(outputFile)) {
- try {
- StringWriter out = new StringWriter();
- MonitorWriter monitorOut = new MonitorWriter(out);
- generateFromClass(monitorOut, clazz);
- write(outputFile, monitorOut);
- } catch (Exception eee) {
- log.warn("Erreur lors de la génération du fichier " + outputFile);
- throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
- }
- } else {
- Logger.getLogger(getClass().getName() + ".generate").log(
- Level.FINE, "file " + outputFile + " is up-to-date");
- }
- }
- }
-
- /**
- * Par defaut cette methode retourne le getName du model. Si l'on souhaite
- * utiliser la methode generateFromModel il vaut mieux surcharger cette
- * m?thode
- */
- public String getFilenameForModel(ObjectModel model) {
- return model.getName();
- }
-
- /**
- * Par defaut cette methode retourne le QualifiedName convertie en chemin
- * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
- */
- public String getFilenameForPackage(ObjectModel model, String packageName) {
- return packageName.replace('.', File.separatorChar);
- }
-
- /**
- * Par defaut cette methode retourne le QualifiedName convertie en chemin
- * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
- */
- public String getFilenameForInterface(ObjectModelInterface interfacez) {
- return interfacez.getQualifiedName().replace('.', File.separatorChar);
- }
-
- /**
- * Par defaut cette methode retourne le QualifiedName convertie en chemin
- * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
- */
- public String getFilenameForClass(ObjectModelClass clazz) {
- return clazz.getQualifiedName().replace('.', File.separatorChar);
- }
-
- /**
- * Par defaut cette methode retourne le QualifiedName convertie en chemin
- * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
- */
- public String getFilenameForClassifier(ObjectModelClassifier clazz) {
- return clazz.getQualifiedName().replace('.', File.separatorChar);
- }
-
- public void generateFromModel(Writer output, ObjectModel model)
- throws IOException {
- }
-
- public void generateFromInterface(Writer output,
- ObjectModelInterface interfacez) throws IOException {
- }
-
- public void generateFromClass(Writer output, ObjectModelClass clazz)
- throws IOException {
- }
-
- public void generateFromClassifier(Writer output,
- ObjectModelClassifier clazz) throws IOException {
- }
-}
Copied: lutingenerator/tags/0.63/src/main/java/org/codelutin/generator/ObjectModelGenerator.java (from rev 400, lutingenerator/trunk/src/main/java/org/codelutin/generator/ObjectModelGenerator.java)
===================================================================
--- lutingenerator/tags/0.63/src/main/java/org/codelutin/generator/ObjectModelGenerator.java (rev 0)
+++ lutingenerator/tags/0.63/src/main/java/org/codelutin/generator/ObjectModelGenerator.java 2008-12-15 02:16:34 UTC (rev 402)
@@ -0,0 +1,451 @@
+/* *##% Lutin Generator
+ * Copyright (C) 2004 - 2008 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/
+
+/*******************************************************************************
+ * ObjectModelGenerator.java
+ *
+ * Created: 14 mars 2004
+ *
+ * @author Benjamin Poussin <poussin(a)codelutin.com> Copyright Code Lutin
+ *
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$ par : $Author$
+ */
+
+package org.codelutin.generator;
+
+import org.apache.commons.digester.Digester;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.codelutin.generator.models.object.ObjectModel;
+import org.codelutin.generator.models.object.ObjectModelClass;
+import org.codelutin.generator.models.object.ObjectModelClassifier;
+import org.codelutin.generator.models.object.ObjectModelElement;
+import org.codelutin.generator.models.object.ObjectModelInterface;
+import org.codelutin.generator.models.object.xml.DigesterObjectModelRuleSet;
+import org.codelutin.generator.models.object.xml.ObjectModelClassifierImpl;
+import org.codelutin.generator.models.object.xml.ObjectModelElementImpl;
+import org.codelutin.generator.models.object.xml.ObjectModelImpl;
+import org.codelutin.generator.models.object.xml.ObjectModelImplRef;
+import org.codelutin.generator.models.object.xml.ObjectModelImplTagValue;
+import org.codelutin.util.FileUtil;
+import org.codelutin.util.RecursiveProperties;
+import org.codelutin.util.StringUtil;
+import org.xml.sax.SAXException;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Pour utiliser ce type de générateur il faut implanter au moins une des trois
+ * méthodes generateFrom... et le getFilenameFor... associé si l'on souhaite un
+ * nom de fichier convenable. Si dans une méthode generateFrom... on utilise pas
+ * le Writer alors aucun fichier n'est généré.
+ *
+ * <pre>
+ * public String getFilenameForClass(ObjectModelClass clazz){
+ * return super.getFilenameForClass(Clazz) + "Service.java";
+ * }
+ *
+ * public void generateFromClass(Writer output, ObjectModelClass clazz) throws IOException{
+ * if(clazz.getType().equals("service")){
+ * / *{
+ * public class .... {
+ *
+ * }
+ * }* /
+ * }
+ * }
+ * </pre>
+ *
+ * Le nom de l'argument writer doit absolument etre output et pas autre chose si
+ * vous souhaitez utiliser le processeur
+ * org.codelutin.processor.filters.GeneratorTemplatesFilter pour vous
+ * s'implifier l'écriture des templates.
+ */
+public class ObjectModelGenerator extends ChildGenerator {
+
+ /**
+ * Logger for this class
+ */
+ private static final Log log = LogFactory
+ .getLog(ObjectModelGenerator.class);
+
+ protected ObjectModel model = null;
+
+ /**
+ *
+ * l'expression réguliere match les chaines de type
+ * <package.ClassName>.<class|attribute|operation>.[name].<stereotype|tagvalue>.[tag]
+ * fr.isisfish.entities.Population.class.stereotype=entity
+ * fr.isisfish.entities.Population.class.tagvalue.persistenceType=flatfile
+ * fr.isisfish.entities.Population.attribute.name.stereotype=...
+ * fr.isisfish.entities.Population.attribute.name.tagvalue.pk=topiaId
+ * fr.isisfish.entities.Population.operation.getRegion.stereotype=...
+ * fr.isisfish.entities.Population.operation.getRegion.tagvalue.pk=...
+ */
+ Pattern propertiesPattern = Pattern
+ .compile("((?:[_a-zA-Z0-9]+\\.)+(?:_?[A-Z][_a-zA-Z0-9]*\\.)+)(?:(class|attribute|operation)\\.)(?:([_a-z0-9][_a-zA-Z0-9]*)\\.)?(?:(stereotype|tagvalue)\\.?)([_a-z0-9][_a-zA-Z0-9]*)?");
+
+ public ObjectModelGenerator() {
+ super();
+ }
+
+ public ObjectModelGenerator(Generator parent) {
+ super(parent);
+ }
+
+ public ObjectModel getModel() {
+ return model;
+ }
+
+ /**
+ * @param files les noms des fichiers existant contenant du XML représentant
+ * des ObjectModel. Il est automatiquement recherche un fichier de
+ * propriété associé a ce fichier pour pouvoir ajouter des
+ * stereotype ou des tag value sur les class, attribute ou operation
+ * @param destDir le répertoire dans lequel il faudra mettre les fichiers
+ * générés
+ */
+ public void generate(File[] files, File destDir) {
+ setLastModifiedSource(files);
+ ObjectModel objectModel = new ObjectModelImpl();
+
+ // Digester parser configuration
+ Digester digester = new Digester();
+ digester.addRuleSet(new DigesterObjectModelRuleSet());
+
+ for (File file : files) {
+ try {
+ digester.push(objectModel);
+ objectModel = (ObjectModel) digester.parse(file);
+ } catch (IOException e) {
+ log.warn("Unable to parse ObjectModel input file : "
+ + file, e);
+ } catch (SAXException e) {
+ log.warn("Unable to parse ObjectModel input file : "
+ + file, e);
+ }
+
+ // recherche est charge le fichier propriete associe au modele
+ File dir = file.getParentFile();
+ String ext = FileUtil.extension(file);
+ String name = FileUtil.basename(file, "." + ext);
+ File propFile = new File(dir, name + ".properties");
+ RecursiveProperties prop = new RecursiveProperties();
+ if (!propFile.exists()) {
+ if (log.isInfoEnabled()) {
+ log.info("Pas de fichier de propriete " + propFile
+ + " associé au model");
+ }
+ } else {
+ if (log.isInfoEnabled()) {
+ log.info("Lecture du fichier de propriete " + propFile
+ + " associé au model");
+ }
+ try {
+ prop.load(new FileInputStream(propFile));
+ } catch (IOException eee) {
+ log.warn("Impossible de lire le fichier de propriete "
+ + propFile, eee);
+ }
+
+ // on ajoute les proprietes du fichier associe au model
+ for (Enumeration e = prop.keys(); e.hasMoreElements();) {
+ String key = (String) e.nextElement();
+ String value = prop.getProperty(key);
+
+ if (key.startsWith("model")) {
+ if (!key.startsWith("model.tagvalue.")) {
+ log.warn("only tagvalue is allowed on model in properties");
+ } else {
+ String tag = key.substring("model.tagvalue.".length());
+
+ ObjectModelImplTagValue tagvalue = new ObjectModelImplTagValue();
+ tagvalue.setName(tag);
+ tagvalue.setValue(value);
+ ((ObjectModelImpl) objectModel).addTagValue(tagvalue);
+ }
+ } else {
+
+ Matcher matcher = propertiesPattern.matcher(key);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Propriete: '" + key + "'");
+ }
+
+ if (matcher.find()) {
+ // fqn is fully qualified name of class
+ String fqn = matcher.group(1);
+ fqn = StringUtil.substring(fqn, 0, -1); // remove ended
+ // .
+ // target is class, attribute or operation
+ String target = matcher.group(2);
+ String targetName = matcher.group(3);
+ // type is stereotype or tagvalue
+ String type = matcher.group(4);
+ String tag = matcher.group(5);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Propriete: '" + key + "' => " + "fqn:"
+ + fqn + " target:" + target
+ + " targetName:" + targetName + " type:"
+ + type + " tag:" + tag);
+ }
+
+ ObjectModelClassifier omc = objectModel
+ .getClassifier(fqn);
+ if (omc instanceof ObjectModelClassifierImpl) {
+ // on utilise une liste car il peut y avoir plusieur
+ // operation avec le nom donné
+ List<ObjectModelElement> elems = new ArrayList<ObjectModelElement>();
+ if ("class".equals(target)) {
+ elems.add(omc);
+ } else if ("attribute".equals(target)) {
+ ObjectModelClass classmodel = (ObjectModelClass) omc;
+ elems.add(classmodel
+ .getAttribute(targetName));
+ } else if ("operation".equals(target)) {
+ elems.addAll(omc
+ .getOperations(targetName));
+ }
+ for (Object elem1 : elems) {
+ ObjectModelElementImpl elem = (ObjectModelElementImpl) elem1;
+ if ("stereotype".equals(type)) {
+ // pour les stereotypes
+ ObjectModelImplRef stereotype = new ObjectModelImplRef();
+ stereotype.setName(value);
+ elem.addStereotype(stereotype);
+ continue;
+ }
+
+ if ("tagvalue".equals(type)) {
+ // pour les tagvalues
+ ObjectModelImplTagValue tagvalue = new ObjectModelImplTagValue();
+ tagvalue.setName(tag);
+ tagvalue.setValue(value);
+ if (log.isDebugEnabled()) {
+ log.debug("tagValue:"+tagvalue+", tag:" + tag + ", value:" + value+", element:"+elem);
+ }
+ if (elem == null) {
+ log.warn("can not attach tagValue " + key);
+ } else {
+ elem.addTagValue(tagvalue);
+ }
+ }
+ }
+ } else {
+ // TODO il faudra avoir des methodes d'acces en
+ // Set sur l'interface pour eviter ce message
+ log.warn("Can't add properties to model, it's not an ObjectModelClassifierImpl");
+ }
+ }
+ }
+ }
+ }
+ }
+ try {
+ generate(objectModel, destDir);
+ } catch (IOException eee) {
+ if (log.isWarnEnabled()) {
+ log.warn("Unable to generate for file", eee);
+ }
+ }
+ }
+
+ /**
+ * Par defaut la methode appelle la methode
+ * {@link #generateFromModel(Writer, ObjectModel)} puis boucle sur chaque
+ * class en appelant la m?thode
+ * {@link #generateFromClass(Writer, ObjectModelClass)} et enfin sur chaque
+ * interface en appelant a méthode
+ * {@link #generateFromInterface(Writer, ObjectModelInterface)} Le nom de
+ * fichier est récupérer pour chacun d'eux en appelant la méthode
+ * getFilenameFor.... La methode generateFrom... n'utilise pas le Writer
+ * alors le fichier n'est pas généré, si on l'utilise m?me pour ne rien
+ * écrire alors le fichier sera généré.
+ * @param model
+ * @param destDir
+ * @throws java.io.IOException
+ */
+ public void generate(ObjectModel model, File destDir) throws IOException {
+ long newTime = System.currentTimeMillis();
+ {
+
+ this.model = model;
+
+ String filename = getFilenameForModel(model);
+ File outputFile = getDestinationFile(destDir, filename);
+ if (!getOverwrite() && isNewerThanSource(outputFile)) {
+ if (log.isDebugEnabled()) {
+ log.debug("file " + outputFile + " is up-to-date");
+ }
+ } else {
+ if (!outputFile.exists() && log.isDebugEnabled()) {
+ log.debug("not up-to-date "+outputFile.lastModified()+" <"+outputFile+">");
+ }
+ try {
+ StringWriter out = new StringWriter();
+ MonitorWriter monitorOut = new MonitorWriter(out);
+ generateFromModel(monitorOut, model);
+ write(outputFile, monitorOut);
+ } catch (Exception eee) {
+ log.warn("Erreur lors de la génération du fichier " + outputFile);
+ throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
+ }
+ }
+ }
+
+ for (ObjectModelClassifier clazz : model.getClassifiers()) {
+
+ String filename = getFilenameForClassifier(clazz);
+ File outputFile = getDestinationFile(destDir, filename);
+ if (!getOverwrite() && isNewerThanSource(outputFile)) {
+ if (log.isDebugEnabled()) {
+ log.debug("file " + outputFile + " is up-to-date");
+ }
+ continue;
+ }
+ if (!outputFile.exists() && log.isDebugEnabled()) {
+ log.debug("not up-to-date "+outputFile.lastModified()+" <"+outputFile+">");
+ }
+ try {
+ StringWriter out = new StringWriter();
+ MonitorWriter monitorOut = new MonitorWriter(out);
+ generateFromClassifier(monitorOut, clazz);
+ write(outputFile, monitorOut);
+ } catch (Exception eee) {
+ log.warn("Erreur lors de la génération du fichier " + outputFile);
+ throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
+ }
+ }
+
+ for (ObjectModelInterface interfacez : model.getInterfaces()) {
+
+ String filename = getFilenameForInterface(interfacez);
+ File outputFile = getDestinationFile(destDir, filename);
+ if (!getOverwrite() && isNewerThanSource(outputFile)) {
+ if (log.isDebugEnabled()) {
+ log.debug("file " + outputFile + " is up-to-date");
+ }
+ continue;
+ }
+ if (!outputFile.exists() && log.isDebugEnabled()) {
+ log.debug("not up-to-date "+outputFile.lastModified()+" <"+outputFile+">");
+ }
+ try {
+ StringWriter out = new StringWriter();
+ MonitorWriter monitorOut = new MonitorWriter(out);
+ generateFromInterface(monitorOut, interfacez);
+ write(outputFile, monitorOut);
+ } catch (Exception eee) {
+ log.warn("Erreur lors de la génération du fichier " + outputFile);
+ throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
+ }
+ }
+
+ for (ObjectModelClass clazz : model.getClasses()) {
+
+ String filename = getFilenameForClass(clazz);
+ File outputFile = getDestinationFile(destDir, filename);
+ if (!getOverwrite() && isNewerThanSource(outputFile)) {
+ if (log.isDebugEnabled()) {
+ log.debug("file " + outputFile + " is up-to-date");
+ }
+ continue;
+ }
+ if (!outputFile.exists() && log.isDebugEnabled()) {
+ log.debug("not up-to-date "+outputFile.lastModified()+" <"+outputFile+">");
+ }
+ try {
+ StringWriter out = new StringWriter();
+ MonitorWriter monitorOut = new MonitorWriter(out);
+ generateFromClass(monitorOut, clazz);
+ write(outputFile, monitorOut);
+ } catch (Exception eee) {
+ log.warn("Erreur lors de la génération du fichier " + outputFile);
+ throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
+ }
+ }
+ }
+
+ /**
+ * Par defaut cette methode retourne le getName du model. Si l'on souhaite
+ * utiliser la methode generateFromModel il vaut mieux surcharger cette
+ * m?thode
+ */
+ public String getFilenameForModel(ObjectModel model) {
+ return model.getName();
+ }
+
+ /**
+ * Par defaut cette methode retourne le QualifiedName convertie en chemin
+ * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
+ */
+ public String getFilenameForPackage(ObjectModel model, String packageName) {
+ return packageName.replace('.', File.separatorChar);
+ }
+
+ /**
+ * Par defaut cette methode retourne le QualifiedName convertie en chemin
+ * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
+ */
+ public String getFilenameForInterface(ObjectModelInterface interfacez) {
+ return interfacez.getQualifiedName().replace('.', File.separatorChar);
+ }
+
+ /**
+ * Par defaut cette methode retourne le QualifiedName convertie en chemin
+ * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
+ */
+ public String getFilenameForClass(ObjectModelClass clazz) {
+ return clazz.getQualifiedName().replace('.', File.separatorChar);
+ }
+
+ /**
+ * Par defaut cette methode retourne le QualifiedName convertie en chemin
+ * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
+ */
+ public String getFilenameForClassifier(ObjectModelClassifier clazz) {
+ return clazz.getQualifiedName().replace('.', File.separatorChar);
+ }
+
+ public void generateFromModel(Writer output, ObjectModel model)
+ throws IOException {
+ }
+
+ public void generateFromInterface(Writer output,
+ ObjectModelInterface interfacez) throws IOException {
+ }
+
+ public void generateFromClass(Writer output, ObjectModelClass clazz)
+ throws IOException {
+ }
+
+ public void generateFromClassifier(Writer output,
+ ObjectModelClassifier clazz) throws IOException {
+ }
+}
1
0
[Lutingenerator-commits] r401 - lutingenerator/trunk
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
by tchemit@users.labs.libre-entreprise.org 15 Dec '08
15 Dec '08
Author: tchemit
Date: 2008-12-15 02:16:29 +0000 (Mon, 15 Dec 2008)
New Revision: 401
Modified:
lutingenerator/trunk/pom.xml
Log:
[maven-release-plugin] prepare release 0.63
Modified: lutingenerator/trunk/pom.xml
===================================================================
--- lutingenerator/trunk/pom.xml 2008-12-14 23:18:59 UTC (rev 400)
+++ lutingenerator/trunk/pom.xml 2008-12-15 02:16:29 UTC (rev 401)
@@ -13,7 +13,7 @@
</parent>
<artifactId>lutingenerator</artifactId>
- <version>0.63-SNAPSHOT</version>
+ <version>0.63</version>
<!-- POM Relationships : Inheritance : Dependencies -->
<dependencies>
@@ -103,9 +103,9 @@
<!--Source control management-->
<scm>
- <connection>${maven.scm.connection}</connection>
- <developerConnection>${maven.scm.developerConnection}</developerConnection>
- <url>${maven.scm.url}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/lutingenerator/lutingenerator/tags/0.63</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/lutingenerator/lutingenerator/tags/0.63</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/lutingenerator/…</url>
</scm>
</project>
1
0
[Lutingenerator-commits] r400 - lutingenerator/trunk/src/main/java/org/codelutin/generator maven-generator-plugin/trunk/src/main/java/org/codelutin/generator/plugin
by tchemit@users.labs.libre-entreprise.org 14 Dec '08
by tchemit@users.labs.libre-entreprise.org 14 Dec '08
14 Dec '08
Author: tchemit
Date: 2008-12-14 23:18:59 +0000 (Sun, 14 Dec 2008)
New Revision: 400
Modified:
lutingenerator/trunk/src/main/java/org/codelutin/generator/ObjectModelGenerator.java
maven-generator-plugin/trunk/src/main/java/org/codelutin/generator/plugin/Xmi2Model.java
Log:
make up-to-date works again :)
Modified: lutingenerator/trunk/src/main/java/org/codelutin/generator/ObjectModelGenerator.java
===================================================================
--- lutingenerator/trunk/src/main/java/org/codelutin/generator/ObjectModelGenerator.java 2008-12-14 22:52:15 UTC (rev 399)
+++ lutingenerator/trunk/src/main/java/org/codelutin/generator/ObjectModelGenerator.java 2008-12-14 23:18:59 UTC (rev 400)
@@ -292,7 +292,9 @@
* @throws java.io.IOException
*/
public void generate(ObjectModel model, File destDir) throws IOException {
+ long newTime = System.currentTimeMillis();
{
+
this.model = model;
String filename = getFilenameForModel(model);
@@ -302,6 +304,9 @@
log.debug("file " + outputFile + " is up-to-date");
}
} else {
+ if (!outputFile.exists() && log.isDebugEnabled()) {
+ log.debug("not up-to-date "+outputFile.lastModified()+" <"+outputFile+">");
+ }
try {
StringWriter out = new StringWriter();
MonitorWriter monitorOut = new MonitorWriter(out);
@@ -324,6 +329,9 @@
}
continue;
}
+ if (!outputFile.exists() && log.isDebugEnabled()) {
+ log.debug("not up-to-date "+outputFile.lastModified()+" <"+outputFile+">");
+ }
try {
StringWriter out = new StringWriter();
MonitorWriter monitorOut = new MonitorWriter(out);
@@ -345,6 +353,9 @@
}
continue;
}
+ if (!outputFile.exists() && log.isDebugEnabled()) {
+ log.debug("not up-to-date "+outputFile.lastModified()+" <"+outputFile+">");
+ }
try {
StringWriter out = new StringWriter();
MonitorWriter monitorOut = new MonitorWriter(out);
@@ -366,6 +377,9 @@
}
continue;
}
+ if (!outputFile.exists() && log.isDebugEnabled()) {
+ log.debug("not up-to-date "+outputFile.lastModified()+" <"+outputFile+">");
+ }
try {
StringWriter out = new StringWriter();
MonitorWriter monitorOut = new MonitorWriter(out);
Modified: maven-generator-plugin/trunk/src/main/java/org/codelutin/generator/plugin/Xmi2Model.java
===================================================================
--- maven-generator-plugin/trunk/src/main/java/org/codelutin/generator/plugin/Xmi2Model.java 2008-12-14 22:52:15 UTC (rev 399)
+++ maven-generator-plugin/trunk/src/main/java/org/codelutin/generator/plugin/Xmi2Model.java 2008-12-14 23:18:59 UTC (rev 400)
@@ -106,37 +106,34 @@
private void actionXsl() throws MojoExecutionException {
List<File> files = FileUtil.getFilteredElements(srcDirXmi, new FileFilter() {
public boolean accept(File pathname) {
- if (pathname != null && pathname.getName().endsWith(".xmi")) {
- return true;
- }
- return false;
- }
+ return pathname != null && pathname.getName().endsWith(".xmi");
+ }
}, false);
destDirObjectModel.mkdirs();
TransformerFactory factory = TransformerFactory.newInstance();
URIResolver resolver = new ResourceResolver();
+ URL xsl = Resource.getURL(getStyleSheet());
+
for (File file : files) {
try {
- URL xsl = Resource.getURL(getStyleSheet());
File result = new File(destDirObjectModel, FileUtil.basename(file, ".xmi").concat(
".").concat(getExtension()));
-
+ if (!overwrite && file.lastModified() < result.lastModified()) {
+ getLog().info("file up-to-date : "+result);
+ continue;
+ }
Transformer transformer = factory
.newTransformer(new StreamSource(xsl.openStream()));
transformer.setURIResolver(resolver);
transformer.transform(new StreamSource(file), new StreamResult(
new FileOutputStream(result)));
- transformer = null;
} catch (Exception e) {
- e.printStackTrace();
- throw new MojoExecutionException(e.getMessage());
+ throw new MojoExecutionException(e.getMessage(),e);
}
}
- factory = null;
- resolver = null;
}
private void actionCopy() {
1
0
[Lutingenerator-commits] r399 - lutingenerator/trunk/src/main/java/org/codelutin/generator
by tchemit@users.labs.libre-entreprise.org 14 Dec '08
by tchemit@users.labs.libre-entreprise.org 14 Dec '08
14 Dec '08
Author: tchemit
Date: 2008-12-14 22:52:15 +0000 (Sun, 14 Dec 2008)
New Revision: 399
Modified:
lutingenerator/trunk/src/main/java/org/codelutin/generator/ObjectModelGenerator.java
Log:
use for-each
Modified: lutingenerator/trunk/src/main/java/org/codelutin/generator/ObjectModelGenerator.java
===================================================================
--- lutingenerator/trunk/src/main/java/org/codelutin/generator/ObjectModelGenerator.java 2008-12-10 15:44:06 UTC (rev 398)
+++ lutingenerator/trunk/src/main/java/org/codelutin/generator/ObjectModelGenerator.java 2008-12-14 22:52:15 UTC (rev 399)
@@ -55,10 +55,7 @@
import java.io.Writer;
import java.util.ArrayList;
import java.util.Enumeration;
-import java.util.Iterator;
import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -86,7 +83,7 @@
*
* Le nom de l'argument writer doit absolument etre output et pas autre chose si
* vous souhaitez utiliser le processeur
- * {@link org.codelutin.processor.filters.GeneratorTemplatesFilter} pour vous
+ * org.codelutin.processor.filters.GeneratorTemplatesFilter pour vous
* s'implifier l'écriture des templates.
*/
public class ObjectModelGenerator extends ChildGenerator {
@@ -226,29 +223,38 @@
// operation avec le nom donné
List<ObjectModelElement> elems = new ArrayList<ObjectModelElement>();
if ("class".equals(target)) {
- elems.add((ObjectModelElementImpl) omc);
+ elems.add(omc);
} else if ("attribute".equals(target)) {
ObjectModelClass classmodel = (ObjectModelClass) omc;
- elems.add((ObjectModelElementImpl) classmodel
+ elems.add(classmodel
.getAttribute(targetName));
} else if ("operation".equals(target)) {
elems.addAll(omc
.getOperations(targetName));
}
- for (Iterator it = elems.iterator(); it.hasNext();) {
- ObjectModelElementImpl elem = (ObjectModelElementImpl) it
- .next();
+ for (Object elem1 : elems) {
+ ObjectModelElementImpl elem = (ObjectModelElementImpl) elem1;
if ("stereotype".equals(type)) {
// pour les stereotypes
ObjectModelImplRef stereotype = new ObjectModelImplRef();
stereotype.setName(value);
elem.addStereotype(stereotype);
- } else if ("tagvalue".equals(type)) {
+ continue;
+ }
+
+ if ("tagvalue".equals(type)) {
// pour les tagvalues
ObjectModelImplTagValue tagvalue = new ObjectModelImplTagValue();
tagvalue.setName(tag);
tagvalue.setValue(value);
- elem.addTagValue(tagvalue);
+ if (log.isDebugEnabled()) {
+ log.debug("tagValue:"+tagvalue+", tag:" + tag + ", value:" + value+", element:"+elem);
+ }
+ if (elem == null) {
+ log.warn("can not attach tagValue " + key);
+ } else {
+ elem.addTagValue(tagvalue);
+ }
}
}
} else {
@@ -291,7 +297,11 @@
String filename = getFilenameForModel(model);
File outputFile = getDestinationFile(destDir, filename);
- if (getOverwrite() || !isNewerThanSource(outputFile)) {
+ if (!getOverwrite() && isNewerThanSource(outputFile)) {
+ if (log.isDebugEnabled()) {
+ log.debug("file " + outputFile + " is up-to-date");
+ }
+ } else {
try {
StringWriter out = new StringWriter();
MonitorWriter monitorOut = new MonitorWriter(out);
@@ -299,75 +309,72 @@
write(outputFile, monitorOut);
} catch (Exception eee) {
log.warn("Erreur lors de la génération du fichier " + outputFile);
- throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
+ throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
}
- } else {
- Logger.getLogger(getClass().getName() + ".generate").log(
- Level.FINE, "file " + outputFile + " is up-to-date");
}
}
- for (Object o : model.getClassifiers()) {
- ObjectModelClassifier clazz = (ObjectModelClassifier) o;
-
+ for (ObjectModelClassifier clazz : model.getClassifiers()) {
+
String filename = getFilenameForClassifier(clazz);
File outputFile = getDestinationFile(destDir, filename);
- if (getOverwrite() || !isNewerThanSource(outputFile)) {
- try {
- StringWriter out = new StringWriter();
- MonitorWriter monitorOut = new MonitorWriter(out);
- generateFromClassifier(monitorOut, clazz);
- write(outputFile, monitorOut);
- } catch (Exception eee) {
- log.warn("Erreur lors de la génération du fichier " + outputFile);
- throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
+ if (!getOverwrite() && isNewerThanSource(outputFile)) {
+ if (log.isDebugEnabled()) {
+ log.debug("file " + outputFile + " is up-to-date");
}
- } else {
- Logger.getLogger(getClass().getName() + ".generate").log(
- Level.FINE, "file " + outputFile + " is up-to-date");
+ continue;
}
+ try {
+ StringWriter out = new StringWriter();
+ MonitorWriter monitorOut = new MonitorWriter(out);
+ generateFromClassifier(monitorOut, clazz);
+ write(outputFile, monitorOut);
+ } catch (Exception eee) {
+ log.warn("Erreur lors de la génération du fichier " + outputFile);
+ throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
+ }
}
- for (Object o : model.getInterfaces()) {
- ObjectModelInterface interfacez = (ObjectModelInterface) o;
+ for (ObjectModelInterface interfacez : model.getInterfaces()) {
String filename = getFilenameForInterface(interfacez);
File outputFile = getDestinationFile(destDir, filename);
- if (getOverwrite() || !isNewerThanSource(outputFile)) {
- try {
- StringWriter out = new StringWriter();
- MonitorWriter monitorOut = new MonitorWriter(out);
- generateFromInterface(monitorOut, interfacez);
- write(outputFile, monitorOut);
- } catch (Exception eee) {
- log.warn("Erreur lors de la génération du fichier " + outputFile);
- throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
+ if (!getOverwrite() && isNewerThanSource(outputFile)) {
+ if (log.isDebugEnabled()) {
+ log.debug("file " + outputFile + " is up-to-date");
}
- } else {
- Logger.getLogger(getClass().getName() + ".generate").log(
- Level.FINE, "file " + outputFile + " is up-to-date");
+ continue;
}
+ try {
+ StringWriter out = new StringWriter();
+ MonitorWriter monitorOut = new MonitorWriter(out);
+ generateFromInterface(monitorOut, interfacez);
+ write(outputFile, monitorOut);
+ } catch (Exception eee) {
+ log.warn("Erreur lors de la génération du fichier " + outputFile);
+ throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
+ }
}
- for (Object o : model.getClasses()) {
- ObjectModelClass clazz = (ObjectModelClass) o;
-
+ for (ObjectModelClass clazz : model.getClasses()) {
+
String filename = getFilenameForClass(clazz);
File outputFile = getDestinationFile(destDir, filename);
- if (getOverwrite() || !isNewerThanSource(outputFile)) {
- try {
- StringWriter out = new StringWriter();
- MonitorWriter monitorOut = new MonitorWriter(out);
- generateFromClass(monitorOut, clazz);
- write(outputFile, monitorOut);
- } catch (Exception eee) {
- log.warn("Erreur lors de la génération du fichier " + outputFile);
- throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
+ if (!getOverwrite() && isNewerThanSource(outputFile)) {
+ if (log.isDebugEnabled()) {
+ log.debug("file " + outputFile + " is up-to-date");
}
- } else {
- Logger.getLogger(getClass().getName() + ".generate").log(
- Level.FINE, "file " + outputFile + " is up-to-date");
+ continue;
}
+ try {
+ StringWriter out = new StringWriter();
+ MonitorWriter monitorOut = new MonitorWriter(out);
+ generateFromClass(monitorOut, clazz);
+ write(outputFile, monitorOut);
+ } catch (Exception eee) {
+ log.warn("Erreur lors de la génération du fichier " + outputFile);
+ throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee);
+ }
}
}
1
0