diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..3ea901f70695acb3e5fce46049636e16adfa709d --- /dev/null +++ b/build.gradle @@ -0,0 +1,86 @@ +apply plugin: 'base' + +//--- Defining Tycho POM parts --// + + + def artifact(artifactId,versionNumber) { """ + <groupId>de.prob</groupId> + <artifactId>${artifactId}</artifactId> + <version>${versionNumber}</version> + <packaging>eclipse-plugin</packaging> + """ } + + + + def start() { """<?xml version="1.0" encoding="UTF-8"?> + <project + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + """} + + + def elder() {""" + <parent> + <groupId>de.prob</groupId> + <artifactId>de.prob.parent</artifactId> + <version>1.0.0.qualifier</version> + <relativePath>../de.prob.parent/pom.xml</relativePath> + </parent> + """} + + def repos() {""" + <repositories> + <!-- configure p2 repository to resolve against --> + <repository> + <id>prob_target</id> + <layout>p2</layout> + <url>http://cobra.cs.uni-duesseldorf.de/prob_dev_target/</url> + </repository> + + <repository> + <id>indigo</id> + <layout>p2</layout> + <url>http://download.eclipse.org/releases/indigo/</url> + </repository> + </repositories> + """} + + + + def end() {""" + </project> + """} + +subprojects { + + apply plugin: 'base' + + task deploy(){ + description = "\tGenerating the Tycho Poms" + + versionNumber = 'Version Number Error: check Manifest for Bundle-Version Number' + /* -- In case of changed Manifest File in Eclipse: + * + * Version Numbers of the projects are collected via + * regular expressions in the Manifest.MF File. + * Versionnumber of the projects are equal to their + * Bundle-Version Number + */ + } +} + +task deploy(dependsOn: subprojects.deploy) + +task install(dependsOn: deploy , type:Exec) { + description = "\tExecutes a 'mvn install' of the parent pom.xml and auto-generates Tycho Poms" + + commandLine 'mvn', 'install', '-f', 'de.prob.parent/pom.xml' + + +} + + +// Build Script can be executed via gradle install +// Pom Generation can be executed via gradle deploy + + diff --git a/de.bmotionstudio.gef.editor/build.gradle b/de.bmotionstudio.gef.editor/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..c5a89e9c6a65abdc8821b650be529ba25c92213c --- /dev/null +++ b/de.bmotionstudio.gef.editor/build.gradle @@ -0,0 +1,29 @@ +deploy <<{ + + + content = new File("de.bmotionstudio.gef.editor/META-INF/MANIFEST.MF").getText("UTF-8") + + printFileLine = { if( it ==~ /Bundle-Version.+qualifier/ ){ + versionNumber = it.substring(16) // possibile error: cuts off first 16 chars + + /* Version Number is taken from Bundle-Version in Manifest.MF + * If there is no Bundle-Version or the versionnumber needs to + * be taken from a different key word, please change the + * regular expression and the substring above + */ + + } + } + + content.eachLine( printFileLine ) + + artifactId = 'de.bmotionstudio.gef.editor' + + println artifactId + println "\t"+versionNumber + + def f = new File(artifactId+'/pom.xml') + f.delete() + f << start()+elder()+repos()+artifact(artifactId, versionNumber)+end() + +} \ No newline at end of file diff --git a/de.bmotionstudio.rodin/build.gradle b/de.bmotionstudio.rodin/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..e6f02c697acfa9eeb5c32d8421aaf01e88a6b5b1 --- /dev/null +++ b/de.bmotionstudio.rodin/build.gradle @@ -0,0 +1,30 @@ + +deploy <<{ + + content = new File("de.bmotionstudio.rodin/META-INF/MANIFEST.MF").getText("UTF-8") + + printFileLine = { if( it ==~ /Bundle-Version.+qualifier/ ){ + versionNumber = it.substring(16) // possibile error: cuts off first 16 chars + + /* Version Number is taken from Bundle-Version in Manifest.MF + * If there is no Bundle-Version or the versionnumber needs to + * be taken from a different key word, please change the + * regular expression and the substring above + */ + + } + } + + content.eachLine( printFileLine ) + + + artifactId = 'de.bmotionstudio.rodin' + + println artifactId + println "\t"+versionNumber + + def f = new File(artifactId+'/pom.xml') + f.delete() + f << start()+elder()+repos()+artifact(artifactId, versionNumber)+end() + +} \ No newline at end of file diff --git a/de.prob.core/build.gradle b/de.prob.core/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..401209f8d89c271ef0a65219e17c7c8e625ca339 --- /dev/null +++ b/de.prob.core/build.gradle @@ -0,0 +1,36 @@ +apply plugin: 'base' + +deploy <<{ + + + content = new File("de.prob.core/META-INF/MANIFEST.MF").getText("UTF-8") + + printFileLine = { if( it ==~ /Bundle-Version.+qualifier/ ){ + versionNumber = it.substring(16) // possibile error: cuts off first 16 chars + + /* Version Number is taken from Bundle-Version in Manifest.MF + * If there is no Bundle-Version or the versionnumber needs to + * be taken from a different key word, please change the + * regular expression and the substring above + */ + + } + } + + content.eachLine( printFileLine ) + + + artifactId = 'de.prob.core' + + println artifactId + println "\t"+versionNumber + + def f = new File(artifactId+'/pom.xml') + f.delete() + f << start()+elder()+repos()+artifact(artifactId, versionNumber)+end() + /* + * old pom.xml files are deleted and replaced by new auto generated Tycho pom.xml files + */ + +} + diff --git a/de.prob.parent/build.gradle b/de.prob.parent/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..4c64fdf9d6704bd03b208dbfb34910038982db30 --- /dev/null +++ b/de.prob.parent/build.gradle @@ -0,0 +1,74 @@ + def parentPom() { """ +<?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/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>de.prob</groupId> + <artifactId>de.prob.parent</artifactId> + <version>1.0.0.qualifier</version> + + <packaging>pom</packaging> + + <!-- this is the parent POM from which all modules inherit common settings --> + <properties> + <tycho-version>0.14.1</tycho-version> + </properties> + + + <repositories> + <!-- configure p2 repository to resolve against --> + <repository> + <id>prob_target</id> + <layout>p2</layout> + <url>http://cobra.cs.uni-duesseldorf.de/prob_dev_target/</url> + </repository> + + + <repository> + <id>indigo</id> + <layout>p2</layout> + <url>http://download.eclipse.org/releases/indigo/</url> + </repository> + + </repositories> + + <build> + <plugins> + <plugin> + <!-- enable tycho build extension --> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-maven-plugin</artifactId> + <version>0.14.1</version> + <extensions>true</extensions> + </plugin> + </plugins> + </build> + + <!-- the modules that should be built together --> + <modules> + <module>../de.prob.core</module> + + <module>../de.bmotionstudio.gef.editor</module> + <module>../de.bmotionstudio.rodin</module> + <module>../de.prob.ui</module> + <module>../de.prob.plugin</module> +<!-- <module>../de.prob.feature</module> --> + <module>../de.prob2.feature</module> + <module>../de.prob.repository</module> + + </modules> +</project> + """} + +deploy <<{ + + versionNumber = '1.0.0.qualifier' + artifactId = 'de.prob.parent' + + + + def f = new File(artifactId+'/pom.xml') + f.delete() + f << parentPom() + +} \ No newline at end of file diff --git a/de.prob.plugin/build.gradle b/de.prob.plugin/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..86ac130a06fda16b193f58bf9ed30c5350a16299 --- /dev/null +++ b/de.prob.plugin/build.gradle @@ -0,0 +1,30 @@ + +deploy <<{ + + + content = new File("de.prob.plugin/META-INF/MANIFEST.MF").getText("UTF-8") + + printFileLine = { if( it ==~ /Bundle-Version.+qualifier/ ){ + versionNumber = it.substring(16) // possibile error: cuts off first 16 chars + + /* Version Number is taken from Bundle-Version in Manifest.MF + * If there is no Bundle-Version or the versionnumber needs to + * be taken from a different key word, please change the + * regular expression and the substring above + */ + + } + } + + content.eachLine( printFileLine ) + + artifactId = 'de.prob.plugin' + + println artifactId + println "\t"+versionNumber + + def f = new File(artifactId+'/pom.xml') + f.delete() + f << start()+elder()+repos()+artifact(artifactId, versionNumber)+end() + +} \ No newline at end of file diff --git a/de.prob.repository/build.gradle b/de.prob.repository/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..7ae8245ec2d6819d28c964cbeaec020d3b5eaac1 --- /dev/null +++ b/de.prob.repository/build.gradle @@ -0,0 +1,32 @@ +def reposi() { """ +<?xml version="1.0" encoding="UTF-8"?> + <project + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>de.prob</groupId> + <artifactId>de.prob.parent</artifactId> + <version>1.0.0.qualifier</version> + <relativePath>../de.prob.parent/pom.xml</relativePath> + </parent> + + + <groupId>de.prob</groupId> + <artifactId>de.prob.repository</artifactId> + <version>1.0.0.qualifier</version> + <packaging>eclipse-repository</packaging> + </project> +"""} + +deploy <<{ + + versionNumber = '1.0.0.qualifier' + artifactId = 'de.prob.repository' + + println artifactId + + def f = new File(artifactId+'/pom.xml') + f.delete() + f << reposi() + +} \ No newline at end of file diff --git a/de.prob.repository/category.xml b/de.prob.repository/category.xml new file mode 100644 index 0000000000000000000000000000000000000000..17284372e61e3150a5960e34a13c5caa73c68219 --- /dev/null +++ b/de.prob.repository/category.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<site> + <feature url="features/de.prob.feature_1.0.0.qualifier.jar" id="de.prob.feature" version="1.0.0.qualifier"> + <category name="de.prob.category"/> + </feature> + <feature url="features/de.prob2.feature_2.3.0.qualifier.jar" id="de.prob2.feature" version="2.3.0.qualifier"> + <category name="de.prob2.category"/> + </feature> + <category-def name="de.prob.category" label="Prob Category"> + <description> + ProB is an animator and model checker for the B-Method. It allows +fully automatic animation of many B specifications, and can be +used to systematically check a specification for errors. +Part of the research and development was conducted within the +EPSRC funded projects ABCD and iMoc, and within the EU funded +project Rodin. +Development is continued under the EU funded project Deploy and +the DFG project Gepavas. +ProB has been successfully used on various industrial specifications +and is now being used within Siemens. + </description> + </category-def> + <category-def name="de.prob2.category" label="ProB Rodin Plugin"> + <description> + ProB is an animator and model checker for the B-Method. It allows +fully automatic animation of many B specifications, and can be +used to systematically check a specification for errors. +Part of the research and development was conducted within the +EPSRC funded projects ABCD and iMoc, and within the EU funded +project Rodin. +Development is continued under the EU funded project Deploy and +the DFG project Gepavas. +ProB has been successfully used on various industrial specifications +and is now being used within Siemens. + </description> + </category-def> +</site> diff --git a/de.prob.ui/build.gradle b/de.prob.ui/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..59fef50c1f0e7344cf859f553992554adcfab9dc --- /dev/null +++ b/de.prob.ui/build.gradle @@ -0,0 +1,29 @@ + +deploy <<{ + + content = new File("de.prob.ui/META-INF/MANIFEST.MF").getText("UTF-8") + + printFileLine = { if( it ==~ /Bundle-Version.+qualifier/ ){ + versionNumber = it.substring(16) // possibile error: cuts off first 16 chars + + /* Version Number is taken from Bundle-Version in Manifest.MF + * If there is no Bundle-Version or the versionnumber needs to + * be taken from a different key word, please change the + * regular expression and the substring above + */ + + } + } + + content.eachLine( printFileLine ) + + artifactId = 'de.prob.ui' + + println artifactId + println "\t"+versionNumber + + def f = new File(artifactId+'/pom.xml') + f.delete() + f << start()+elder()+repos()+artifact(artifactId, versionNumber)+end() + +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000000000000000000000000000000000000..c159f7b753690f296d0f4b013a76f3a6e1478559 --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include 'de.prob.parent', 'de.prob.core', 'de.bmotionstudio.gef.editor' ,'de.bmotionstudio.rodin', 'de.prob.feature', 'de.prob.plugin', 'de.prob.repository', 'de.prob.ui', 'de.prob2.feature' \ No newline at end of file