Skip to content

Commit

Permalink
[examples] Creation of a default pom file within each example's proje…
Browse files Browse the repository at this point in the history
…cts.

Signed-off-by: Stéphane Galland <galland@arakhne.org>
  • Loading branch information
gallandarakhneorg committed Aug 22, 2018
1 parent b3508e3 commit fd21488
Show file tree
Hide file tree
Showing 4 changed files with 179 additions and 16 deletions.
Expand Up @@ -100,9 +100,12 @@ Add into the `SARL-Example-Intro.xml` file:

## 6. Update the building script

Add into the `build.xml` file:
Add into the `src-templates/build.xml` file:


<zip_example name="io-sarl-demos-myexample" />

## 7. Regenerate files

Run: `mvn clean install`

68 changes: 53 additions & 15 deletions contribs/io.sarl.examples/io.sarl.examples.plugin/build.xml
@@ -1,20 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="project" default="zip_all_examples">

<property name="source" location="projects" />
<property name="target_sarl" location="contents" />
<property name="source_folder" location="projects" />
<property name="pom_template_folder" location="target/example-pom-template" />
<property name="archive_folder" location="target/example-archives" />
<property name="target_folder" location="contents" />

<macrodef name="zip_example">
<attribute name="name" default="default" />
<attribute name="target" default="${target_sarl}" />
<attribute name="excludes" default="bin,bin/**,**/*._trace,.antlr-generator*.jar,component.def" />
<sequential>
<delete file="@{target}/@{name}.zip" />
<zip destfile="@{target}/@{name}.zip" basedir="${source}/@{name}" excludes="@{excludes}" />
</sequential>
</macrodef>

<target name="zip_all_examples">
<target name="zip_all_examples" depends="retrieve_pom_template">
<delete includeEmptyDirs="true">
<fileset dir="${target_folder}" includes="**/*" />
</delete>
<!--zip_example name="name-examples" excludes="**/*._trace,.antlr-generator*.jar"/>-->
<!-- run task "generate_self" to compose this list -->
<zip_example name="io-sarl-demos-basic-helloworld" />
<zip_example name="io-sarl-demos-basic-behaviors" />
Expand All @@ -29,13 +25,55 @@
<zip_example name="io-sarl-demos-fireworks" />
<zip_example name="io-sarl-demos-sierpinskifractals" />
<zip_example name="io-sarl-templates-javafx" />
<!--zip_example name="name-examples" excludes="**/*._trace,.antlr-generator*.jar"/>-->
</target>

<macrodef name="zip_example">
<attribute name="name" default="default" />
<attribute name="group" default="io.sarl.examples.projects" />
<attribute name="target" default="${target_folder}" />
<attribute name="source" default="${source_folder}" />
<attribute name="archive" default="${archive_folder}" />
<attribute name="pomtemplate" default="${pom_template_folder}/io/sarl/eclipse/wizards/newproject/pom_template.xml" />
<attribute name="excludes" default="bin,bin/**,**/*._trace,.antlr-generator*.jar,component.def,${specific_pom_config}" />
<sequential>
<copy todir="@{archive}/@{name}" overwrite="true" force="true" encoding="UTF-8">
<fileset dir="@{source}/@{name}" />
<filterset>
<filter token="GROUP_ID" value="@{group}"/>
<filter token="PROJECT_NAME" value="@{name}"/>
<filter token="PROJECT_VERSION" value="0.8.0-SNAPSHOT"/>
<filter token="SARL_VERSION" value="0.8.0-SNAPSHOT"/>
<filter token="FILE_ENCODING" value="UTF-8"/>
<filter token="JAVA_VERSION" value="1.8"/>
<filter token="RELEASE_YEAR" value="2018"/>
</filterset>
</copy>
<copy file="@{pomtemplate}" tofile="@{archive}/@{name}/pom.xml" overwrite="false"
force="true" encoding="UTF-8">
<filterset>
<filter token="GROUP_ID" value="@{group}"/>
<filter token="PROJECT_NAME" value="@{name}"/>
<filter token="PROJECT_VERSION" value="0.8.0-SNAPSHOT"/>
<filter token="SARL_VERSION" value="0.8.0-SNAPSHOT"/>
<filter token="FILE_ENCODING" value="UTF-8"/>
<filter token="JAVA_VERSION" value="1.8"/>
<filter token="RELEASE_YEAR" value="2018"/>
</filterset>
</copy>
<delete file="@{target}/@{name}.zip" />
<zip destfile="@{target}/@{name}.zip" basedir="@{archive}/@{name}" excludes="@{excludes}" />
</sequential>
</macrodef>

<target name="retrieve_pom_template">
<copy file="../../../main/coreplugins/io.sarl.eclipse/src/io/sarl/eclipse/wizards/newproject/pom_template.xml" tofile="${pom_template_folder}/io/sarl/eclipse/wizards/newproject/pom_template.xml"
overwrite="true" force="true" encoding="UTF-8" />
</target>

<target name="generate_self">
<exec executable="bash">
<arg value="-c" />
<arg value="for i in `ls ${source}`; do echo &quot;&lt;zip_example name=\&quot;$i\&quot; /&gt;&quot;; done" />
<arg value="for i in `ls ${source_folder}`; do echo &quot;&lt;zip_example name=\&quot;$i\&quot; /&gt;&quot;; done" />
</exec>
</target>

Expand Down
42 changes: 42 additions & 0 deletions contribs/io.sarl.examples/io.sarl.examples.plugin/pom.xml
Expand Up @@ -11,6 +11,10 @@
<packaging>eclipse-plugin</packaging>
<name>SARL Examples Plugin</name>

<properties>
<path_to_pom_template_jar>../../../main/coreplugins/io.sarl.eclipse/src</path_to_pom_template_jar>
</properties>

<build>
<pluginManagement>
<plugins>
Expand Down Expand Up @@ -82,6 +86,44 @@
<replacement>
<token>%sarlspecificationreleasedate%</token>
<value>${sarl.specification.release_date}</value>
</replacement>
</replacements>
</configuration>
</execution>
<execution>
<id>prepare-eclipse-build-xml</id>
<phase>generate-sources</phase>
<goals>
<goal>replace</goal>
</goals>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<file>${project.basedir}/src-templates/build.xml</file>
<outputFile>${project.basedir}/build.xml</outputFile>
<replacements>
<replacement>
<token>%sarlversion%</token>
<value>${sarl.version}</value>
</replacement>
<replacement>
<token>%encoding%</token>
<value>${project.build.sourceEncoding}</value>
</replacement>
<replacement>
<token>%compilerlevel%</token>
<value>${compiler.level}</value>
</replacement>
<replacement>
<token>%releaseyear%</token>
<value>${year}</value>
</replacement>
<replacement>
<token>%pomtemplaterelativepath%</token>
<value>io/sarl/eclipse/wizards/newproject/pom_template.xml</value>
</replacement>
<replacement>
<token>%pomtemplatefile%</token>
<value>${path_to_pom_template_jar}</value>
</replacement>
</replacements>
</configuration>
Expand Down
@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="project" default="zip_all_examples">

<property name="source_folder" location="projects" />
<property name="pom_template_folder" location="target/example-pom-template" />
<property name="archive_folder" location="target/example-archives" />
<property name="target_folder" location="contents" />

<target name="zip_all_examples" depends="retrieve_pom_template">
<delete includeEmptyDirs="true">
<fileset dir="${target_folder}" includes="**/*" />
</delete>
<!--zip_example name="name-examples" excludes="**/*._trace,.antlr-generator*.jar"/>-->
<!-- run task "generate_self" to compose this list -->
<zip_example name="io-sarl-demos-basic-helloworld" />
<zip_example name="io-sarl-demos-basic-behaviors" />
<zip_example name="io-sarl-demos-basic-behaviorinheritance" />
<zip_example name="io-sarl-demos-basic-countdown" />
<zip_example name="io-sarl-demos-basic-holarchy" />
<zip_example name="io-sarl-demos-counter" />
<zip_example name="io-sarl-demos-factorial" />
<zip_example name="io-sarl-tutorials-holonicauction" />
<zip_example name="io-sarl-tutorials-pingpong" />
<zip_example name="io-sarl-tutorials-pingpongspace" />
<zip_example name="io-sarl-demos-fireworks" />
<zip_example name="io-sarl-demos-sierpinskifractals" />
<zip_example name="io-sarl-templates-javafx" />
</target>

<macrodef name="zip_example">
<attribute name="name" default="default" />
<attribute name="group" default="io.sarl.examples.projects" />
<attribute name="target" default="${target_folder}" />
<attribute name="source" default="${source_folder}" />
<attribute name="archive" default="${archive_folder}" />
<attribute name="pomtemplate" default="${pom_template_folder}/%pomtemplaterelativepath%" />
<attribute name="excludes" default="bin,bin/**,**/*._trace,.antlr-generator*.jar,component.def,${specific_pom_config}" />
<sequential>
<copy todir="@{archive}/@{name}" overwrite="true" force="true" encoding="UTF-8">
<fileset dir="@{source}/@{name}" />
<filterset>
<filter token="GROUP_ID" value="@{group}"/>
<filter token="PROJECT_NAME" value="@{name}"/>
<filter token="PROJECT_VERSION" value="%sarlversion%"/>
<filter token="SARL_VERSION" value="%sarlversion%"/>
<filter token="FILE_ENCODING" value="%encoding%"/>
<filter token="JAVA_VERSION" value="%compilerlevel%"/>
<filter token="RELEASE_YEAR" value="%releaseyear%"/>
</filterset>
</copy>
<copy file="@{pomtemplate}" tofile="@{archive}/@{name}/pom.xml" overwrite="false"
force="true" encoding="UTF-8">
<filterset>
<filter token="GROUP_ID" value="@{group}"/>
<filter token="PROJECT_NAME" value="@{name}"/>
<filter token="PROJECT_VERSION" value="%sarlversion%"/>
<filter token="SARL_VERSION" value="%sarlversion%"/>
<filter token="FILE_ENCODING" value="%encoding%"/>
<filter token="JAVA_VERSION" value="%compilerlevel%"/>
<filter token="RELEASE_YEAR" value="%releaseyear%"/>
</filterset>
</copy>
<delete file="@{target}/@{name}.zip" />
<zip destfile="@{target}/@{name}.zip" basedir="@{archive}/@{name}" excludes="@{excludes}" />
</sequential>
</macrodef>

<target name="retrieve_pom_template">
<copy file="%pomtemplatefile%/%pomtemplaterelativepath%" tofile="${pom_template_folder}/%pomtemplaterelativepath%"
overwrite="true" force="true" encoding="UTF-8" />
</target>

<target name="generate_self">
<exec executable="bash">
<arg value="-c" />
<arg value="for i in `ls ${source_folder}`; do echo &quot;&lt;zip_example name=\&quot;$i\&quot; /&gt;&quot;; done" />
</exec>
</target>

</project>

0 comments on commit fd21488

Please sign in to comment.