This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 2d427f5959e8791d502e9dfb83db259b7341e52e Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Sep 13 14:27:32 2016 +0200 Attach changelog and display it in about ui. --- application-swing/pom.xml | 127 ++++++++++++++++++--- .../swing/ui/actions/ShowAboutAction.java | 81 +++++-------- .../i18n/application-swing_en_GB.properties | 2 +- .../i18n/application-swing_es_ES.properties | 2 +- .../i18n/application-swing_fr_FR.properties | 2 +- pom.xml | 80 +++++++++++-- 6 files changed, 209 insertions(+), 85 deletions(-) diff --git a/application-swing/pom.xml b/application-swing/pom.xml index 5884182..f8ade08 100644 --- a/application-swing/pom.xml +++ b/application-swing/pom.xml @@ -20,7 +20,8 @@ <http://www.gnu.org/licenses/lgpl-3.0.html>. #L% --> -<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/xsd/maven-4.0.0.xsd"> +<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> @@ -166,6 +167,10 @@ </dependency> <dependency> <groupId>org.nuiton.jaxx</groupId> + <artifactId>jaxx-widgets-about</artifactId> + </dependency> + <dependency> + <groupId>org.nuiton.jaxx</groupId> <artifactId>jaxx-config</artifactId> </dependency> <dependency> @@ -422,7 +427,8 @@ <enum>fr.ird.observe.services.dto.constants.seine.Ownership</enum> <enum>fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource</enum> <enum>fr.ird.observe.application.swing.ui.content.ref.impl.ProgramObservationEnum</enum> - <enum>fr.ird.observe.application.swing.ui.admin.synchronize.referential.ReferentialSynchronizeMode</enum> + <enum>fr.ird.observe.application.swing.ui.admin.synchronize.referential.ReferentialSynchronizeMode + </enum> <enum>fr.ird.observe.application.swing.configuration.constants.CreationMode</enum> <enum>fr.ird.observe.application.swing.configuration.constants.DbMode</enum> <enum>fr.ird.observe.application.swing.validation.ValidationModelMode</enum> @@ -632,7 +638,7 @@ <manifest> <useUniqueVersions>false</useUniqueVersions> <addClasspath>false</addClasspath> - <classpathPrefix /> + <classpathPrefix/> <mainClass>${maven.jar.main.class}</mainClass> </manifest> </archive> @@ -667,52 +673,67 @@ <resource>xwork.xml</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> + <transformer + implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>LICENSE.txt</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> + <transformer + implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>LICENSE</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> + <transformer + implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>hsqldb_lic.txt</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> + <transformer + implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>hypersonic_lic.txt</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> + <transformer + implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>info.xml</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> + <transformer + implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>jdom-info.xml</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> + <transformer + implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>README.txt</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> + <transformer + implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>README.md</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> + <transformer + implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>THIRD-PARTY.txt</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> + <transformer + implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>HTTPS___.DSA</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> + <transformer + implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>DEPENDENCIES</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> + <transformer + implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>HTTPS___.SF</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> + <transformer + implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>README</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> + <transformer + implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>NOTICE</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> + <transformer + implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>NOTICE.txt</resource> </transformer> - <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" /> + <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> <!--<transformer implementation="org.apache.maven.plugins.shade.resource.ComponentsXmlResourceTransformer" />--> <!--<transformer implementation="org.apache.maven.plugins.shade.resource.PluginXmlResourceTransformer" />--> @@ -780,5 +801,73 @@ </build> </profile> + <profile> + <id>changelog-profile</id> + <activation> + <property> + <name>performRelease</name> + <value>true</value> + </property> + </activation> + <build> + <defaultGoal>generate-resources</defaultGoal> + + <plugins> + + <plugin> + <artifactId>maven-dependency-plugin</artifactId> + <executions> + + <execution> + <id>get-changelog</id> + <phase>generate-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <outputDirectory>${project.build.directory}/changelog</outputDirectory> + <artifactItems> + <artifactItem> + <groupId>${project.parent.groupId}</groupId> + <artifactId>${project.parent.artifactId}</artifactId> + <version>${project.version}</version> + <classifier>changelog</classifier> + <type>pom</type> + </artifactItem> + </artifactItems> + </configuration> + </execution> + + </executions> + </plugin> + + <plugin> + + <artifactId>maven-antrun-plugin</artifactId> + <executions> + <execution> + <id>Copy changelog</id> + <phase>generate-resources</phase> + <configuration> + <target> + <copy failonerror="true" overwrite="true" + file="${project.build.directory}/changelog/${project.parent.artifactId}-${project.version}-changelog.pom" + tofile="${project.build.directory}/generated-sources/license/CHANGELOG.txt"/> + <copy failonerror="true" overwrite="true" + file="${project.build.directory}/changelog/${project.parent.artifactId}-${project.version}-changelog.pom" + tofile="${project.build.directory}/generated-sources/license/META-INF/observe-CHANGELOG.txt"/> + </target> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + </executions> + </plugin> + + </plugins> + </build> + </profile> + </profiles> </project> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ShowAboutAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ShowAboutAction.java index f0ce532..5cc76d8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ShowAboutAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ShowAboutAction.java @@ -23,19 +23,19 @@ package fr.ird.observe.application.swing.ui.actions; */ import fr.ird.observe.application.swing.ObserveRunner; +import fr.ird.observe.application.swing.ObserveSwingTechnicalException; import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.UIHelper; import jaxx.runtime.SwingUtil; -import jaxx.runtime.swing.AboutPanel; +import org.nuiton.jaxx.widgets.about.AboutUI; +import org.nuiton.jaxx.widgets.about.AboutUIBuilder; import org.nuiton.util.Resource; import javax.swing.AbstractAction; -import javax.swing.Icon; -import javax.swing.JEditorPane; import javax.swing.JLabel; -import javax.swing.JScrollPane; +import javax.swing.JPanel; import java.awt.BorderLayout; import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; import java.io.File; import java.net.MalformedURLException; @@ -58,69 +58,42 @@ public class ShowAboutAction extends AbstractAction { super(t("observe.action.about"), SwingUtil.getUIManagerActionIcon("about")); this.ui = ui; putValue(SHORT_DESCRIPTION, t("observe.action.about.tip")); - putValue(MNEMONIC_KEY, (int) 'A'); + putValue(MNEMONIC_KEY, KeyEvent.VK_P); } @Override public void actionPerformed(ActionEvent event) { - AboutPanel about = new AboutPanel() { - - private static final long serialVersionUID = 1L; - - @Override - public void buildTopPanel() { - topPanel.setLayout(new BorderLayout()); - JLabel labelIcon; - Icon logoIcon; - logoIcon = Resource.getIcon("/icons/logo-OT_web.png"); - labelIcon = new JLabel(logoIcon); - topPanel.add(labelIcon, BorderLayout.WEST); - - logoIcon = Resource.getIcon("/icons/logo_ird.png"); - labelIcon = new JLabel(logoIcon); - topPanel.add(labelIcon, BorderLayout.EAST); - } - }; - - String name = ObserveRunner.getRunner().getRunnerName(); - about.setTitle(t("observe.title.about")); - about.setAboutText(t("observe.about.message")); - about.setBottomText(ui.getConfig().getCopyrightText()); - about.setIconPath("/icons/logo-OT_web.png"); - about.setLicenseFile("META-INF/" + name + "-LICENSE.txt"); - about.setThirdpartyFile("META-INF/" + name + "-THIRD-PARTY.txt"); - about.buildTopPanel(); - - // - // translate tab - // - - JScrollPane translatePane = new JScrollPane(); - JEditorPane translateArea = new JEditorPane(); - translateArea.setContentType("text/html"); - translateArea.setEditable(false); - if (translateArea.getFont() != null) { - translateArea.setFont(translateArea.getFont().deriveFont((float) 11)); - } - - translateArea.setBorder(null); File csvFile = new File(ui.getConfig().getI18nDirectory(), "observe-i18n.csv"); String translateText; try { translateText = t("observe.about.translate.content", csvFile.toURI().toURL()); } catch (MalformedURLException e) { - throw new RuntimeException("Could not obtain url from " + csvFile, e); + throw new ObserveSwingTechnicalException("Could not obtain url from " + csvFile, e); } - translateArea.setText(translateText); - translatePane.getViewport().add(translateArea); - translateArea.addHyperlinkListener(UIHelper::openLink); - about.getTabs().add(t("observe.about.translate.title"), translatePane); + String name = ObserveRunner.getRunner().getRunnerName(); - about.init(); - about.showInDialog(ui, true); + AboutUI about = AboutUIBuilder.builder(ui) + .setIconPath("/icons/logo-OT_web.png") + .setTitle(t("observe.title.about")) + .setBottomText(ui.getConfig().getCopyrightText()) + .addAboutTab(t("observe.about.message"), true) + .addDefaultLicenseTab(name, false) + .addDefaultThirdPartyTab(name, false) + .addDefaultChangelogTab(name, false) + .addTab(t("observe.about.translate.title"), translateText, true) + .build(); + + // tweak top panel + JPanel topPanel = about.getTopPanel(); + topPanel.removeAll(); + topPanel.setLayout(new BorderLayout()); + topPanel.add(new JLabel(Resource.getIcon("/icons/logo-OT_web.png")), BorderLayout.WEST); + topPanel.add(new JLabel(Resource.getIcon("/icons/logo_ird.png")), BorderLayout.EAST); + + about.display(); } } diff --git a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties index 2ac96cb..43d5e82 100644 --- a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties +++ b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties @@ -1,4 +1,4 @@ -observe.about.message=<h3>ObServe</h3><a href\="http\://www.ird.fr/informatique-scientifique/projets/observe/">Système d'Information, d'Observation et de Suivi des pêches thonières tropicales de surface.</a><hr/><p>Application de saisie des données observateurs et de consultation de telles données depuis une base <i>Obstuna</i>.</p> <p>Ce projet a été initiée en 2008 par l'unité US 007-OSIRIS de <a href\="http\://www.ird.fr">l'IRD</a> dans le cadre d'un <a href\="http\://www.ird.fr/infor [...] +observe.about.message=<h3>ObServe</h3><a href\="http\://www.ird.fr/informatique-scientifique/projets/observe/">Système d'Information, d'Observation et de Suivi des pêches thonières tropicales de surface.</a><hr/><p>Application de saisie des données observateurs et de consultation de telles données depuis une base <i>Obstuna</i>.</p> <p>Ce projet a été initiée en 2008 par l'unité US 007-OSIRIS de <a href\="http\://www.ird.fr">l'IRD</a> dans le cadre d'un <a href\="http\://www.ird.fr/infor [...] observe.about.translate.content=<h2>Comment traduire ObServe</h2>Vous pouvez nous aider à traduire l'application.<hr/><br/><ul><li>Récupérer le fichier <a href\="%s">observe-i18n.csv</a> dans le répertoire <strong>i18n</strong></li><li>ouvrez le avec un tableur avec les options suivantes \: <ul><li>caractère séparateur \: <strong><i>|</i></strong></li><li>encoding <strong><i>UTF-8</i></strong></li><li>texte encapsulé par des <strong><i>"</i></strong></li></ul></li><li>Traduisez, Améliore [...] observe.about.translate.title=translate ObServe observe.action.about=About diff --git a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties index 0b1dda8..1ed7dd7 100644 --- a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties +++ b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties @@ -1,4 +1,4 @@ -observe.about.message=<h3>ObServe</h3><a href\="http\://www.ird.fr/informatique-scientifique/projets/observe/">Système d'Information, d'Observation et de Suivi des pêches thonières tropicales de surface.</a><hr/><p>Aplicación de adquisición Application de datos de observadores y de consulta de estos datos desde una base <i>Obstuna</i>.</p> <p>Este projecto se ha iniciado en 2009 por la unidad US 007-OSIRIS del <a href\="http\://www.ird.fr">IRD</a> dentro del marco de <a href\="http\://ww [...] +observe.about.message=<h3>ObServe</h3><a href\="http\://www.ird.fr/informatique-scientifique/projets/observe/">Système d'Information, d'Observation et de Suivi des pêches thonières tropicales de surface.</a><hr/><p>Aplicación de adquisición Application de datos de observadores y de consulta de estos datos desde una base <i>Obstuna</i>.</p> <p>Este projecto se ha iniciado en 2009 por la unidad US 007-OSIRIS del <a href\="http\://www.ird.fr">IRD</a> dentro del marco de <a href\="http\://ww [...] observe.about.translate.content=<h2>Comment traduire ObServe</h2>Vous pouvez nous aider à traduire l'application.<hr/><br/><ul><li>Récupérer le fichier <a href\="%s">observe-i18n.csv</a> dans le répertoire <strong>i18n</strong></li><li>ouvrez le avec un tableur avec les options suivantes \: <ul><li>caractère séparateur \: <strong><i>|</i></strong></li><li>encoding <strong><i>UTF-8</i></strong></li><li>texte encapsulé par des <strong><i>"</i></strong></li></ul></li><li>Traduisez, Améliore [...] observe.about.translate.title=Traducir ObServe observe.action.about=A cerca de diff --git a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties index 0668912..eed966c 100644 --- a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties +++ b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties @@ -1,4 +1,4 @@ -observe.about.message=<h3>ObServe</h3><a href\="http\://www.ird.fr/informatique-scientifique/projets/observe/">Système d'Information, d'Observation et de Suivi des pêches thonières tropicales de surface.</a><hr/><p>Application de saisie des données observateurs et de consultation de telles données depuis une base <i>Obstuna</i>.</p> <p>Ce projet a été initiée en 2008 par l'unité US 007-OSIRIS de <a href\="http\://www.ird.fr">l'IRD</a> dans le cadre d'un <a href\="http\://www.ird.fr/infor [...] +observe.about.message=<h3>ObServe</h3><a href\="http\://www.ird.fr/informatique-scientifique/projets/observe/">Système d'Information, d'Observation et de Suivi des pêches thonières tropicales de surface.</a><hr/><p>Application de saisie des données observateurs et de consultation de telles données depuis une base <i>Obstuna</i>.</p> <p>Ce projet a été initiée en 2008 par l'unité US 007-OSIRIS de <a href\="http\://www.ird.fr">l'IRD</a> dans le cadre d'un <a href\="http\://www.ird.fr/infor [...] observe.about.translate.content=<h2>Comment traduire ObServe</h2>Vous pouvez nous aider à traduire l'application.<hr/><br/><ul><li>Récupérer le fichier <a href\="%s">observe-i18n.csv</a> dans le répertoire <strong>i18n</strong></li><li>ouvrez le avec un tableur avec les options suivantes \: <ul><li>caractère séparateur \: <strong><i>|</i></strong></li><li>encoding <strong><i>UTF-8</i></strong></li><li>texte encapsulé par des <strong><i>"</i></strong></li></ul></li><li>Traduisez, Améliore [...] observe.about.translate.title=Traduire ObServe observe.action.about=À propos diff --git a/pom.xml b/pom.xml index de08f5d..6749293 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,8 @@ <http://www.gnu.org/licenses/lgpl-3.0.html>. #L% --> -<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/xsd/maven-4.0.0.xsd"> +<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> @@ -162,7 +163,7 @@ <processorPluginVersion>1.3</processorPluginVersion> <topiaVersion>3.1.3</topiaVersion> - <jaxxVersion>2.31</jaxxVersion> + <jaxxVersion>2.32-SNAPSHOT</jaxxVersion> <nuitonI18nVersion>3.6.2</nuitonI18nVersion> <nuitonValidatorVersion>3.0.1</nuitonValidatorVersion> <nuitonUtilsVersion>3.0-rc-15</nuitonUtilsVersion> @@ -200,6 +201,8 @@ <!--Modèle version--> <observe.model.version>5.0</observe.model.version> + <jredminePluginVersion>2.0-SNAPSHOT</jredminePluginVersion> + </properties> <repositories> @@ -435,6 +438,12 @@ </dependency> <dependency> <groupId>org.nuiton.jaxx</groupId> + <artifactId>jaxx-widgets-about</artifactId> + <version>${jaxxVersion}</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.nuiton.jaxx</groupId> <artifactId>jaxx-config</artifactId> <version>${jaxxVersion}</version> <scope>compile</scope> @@ -1091,6 +1100,57 @@ </profile> <profile> + <id>generate-changelog</id> + <activation> + <property> + <name>performRelease</name> + <value>true</value> + </property> + </activation> + + <properties> + + <redmine.xmlPath>${project.build.directory}/changes/changes.xml</redmine.xmlPath> + </properties> + <build> + <defaultGoal>process-classes</defaultGoal> + <plugins> + + <!-- Generate changelog.txt and attach it to project --> + <plugin> + <groupId>org.nuiton.jredmine</groupId> + <artifactId>jredmine-maven-plugin</artifactId> + <executions> + <execution> + <id>generate-changes</id> + <goals> + <goal>generate-changes</goal> + </goals> + <phase>process-classes</phase> + <configuration> + <generateOnce>true</generateOnce> + <actionMapping>fix:1, add:2, update:4</actionMapping> + </configuration> + </execution> + <execution> + <id>generate-changelog</id> + <inherited>false</inherited> + <goals> + <goal>generate-changelog</goal> + </goals> + <phase>process-classes</phase> + <configuration> + <attach>true</attach> + </configuration> + </execution> + </executions> + </plugin> + + </plugins> + </build> + </profile> + + <profile> <id>reporting</id> <activation> <property> @@ -1138,25 +1198,27 @@ <target> <copy failonerror="true" overwrite="true" todir="${project.reporting.outputDirectory}/model"> <fileset dir="doc/modelisation"> - <include name="**/*.pdf" /> + <include name="**/*.pdf"/> </fileset> <fileset dir="entities/src/main/xmi"> - <include name="**/*.zargo" /> + <include name="**/*.zargo"/> </fileset> </copy> - <copy todir="${project.reporting.outputDirectory}/validation/service" failonerror="true" overwrite="true"> + <copy todir="${project.reporting.outputDirectory}/validation/service" failonerror="true" + overwrite="true"> <fileset dir="services-topia-validation/src/main/resources"> - <include name="**/*-validation.xml" /> + <include name="**/*-validation.xml"/> </fileset> </copy> - <copy todir="${project.reporting.outputDirectory}/validation/ui" failonerror="true" overwrite="true"> + <copy todir="${project.reporting.outputDirectory}/validation/ui" failonerror="true" + overwrite="true"> <fileset dir="application-swing-validation/src/main/resources"> - <include name="**/*-validation.xml" /> + <include name="**/*-validation.xml"/> </fileset> </copy> <copy todir="${project.reporting.outputDirectory}/validation" failonerror="true" overwrite="true"> <fileset dir="application-swing-configuration/src/main/resources"> - <include name="validators.xml" /> + <include name="validators.xml"/> </fileset> </copy> </target> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.