diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..b56912fe98fd8a407e9a53bfe0e620571bd18ce8 --- /dev/null +++ b/build.gradle @@ -0,0 +1,95 @@ +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 deleteArtifacts(type: Delete) { + delete 'target','pom.xml' + } + +} + +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' +} + +clean { + dependsOn += subprojects.deleteArtifacts +} + + +// Build Script can be executed via gradle install +// Pom Generation can be executed via gradle deploy + + diff --git a/de.bmotionstudio.gef.editor/META-INF/MANIFEST.MF b/de.bmotionstudio.gef.editor/META-INF/MANIFEST.MF index 60caa76a2ba009660a0f0fdddf21b8e8940304ab..722e1c43c071be36add94d5a620c38d7002a64cd 100644 --- a/de.bmotionstudio.gef.editor/META-INF/MANIFEST.MF +++ b/de.bmotionstudio.gef.editor/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: BMotion Studio Editor Plug-in Bundle-SymbolicName: de.bmotionstudio.gef.editor;singleton:=true -Bundle-Version: 5.3.0 +Bundle-Version: 5.3.0.qualifier Bundle-Activator: de.bmotionstudio.gef.editor.BMotionEditorPlugin Require-Bundle: org.eclipse.ui;bundle-version="[3.5.0,4.0.0)", org.eclipse.ui.ide;bundle-version="[3.5.0,4.0.0)", 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/META-INF/MANIFEST.MF b/de.bmotionstudio.rodin/META-INF/MANIFEST.MF index bd2a222cea65d0d46f2f36723f7e9f36d2d55c6f..5023b0e20355af8d8b1475c7952a2b62e8ec9c64 100644 --- a/de.bmotionstudio.rodin/META-INF/MANIFEST.MF +++ b/de.bmotionstudio.rodin/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: BMotion Studio Rodin Integration Bundle-SymbolicName: de.bmotionstudio.rodin;singleton:=true -Bundle-Version: 1.0.2 +Bundle-Version: 1.0.2.qualifier Fragment-Host: de.bmotionstudio.gef.editor;bundle-version="5.2.1" Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Bundle-Vendor: HHU Düsseldorf STUPS Group 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/META-INF/MANIFEST.MF b/de.prob.core/META-INF/MANIFEST.MF index 9ad06509a44936979f4b0d49771e3c1ffb65d3f0..c7d4181c6042a2e16ebd0271d37fd0d93fe6e314 100644 --- a/de.prob.core/META-INF/MANIFEST.MF +++ b/de.prob.core/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: ProB Animator Core Bundle-SymbolicName: de.prob.core;singleton:=true -Bundle-Version: 9.2.0 +Bundle-Version: 9.2.0.qualifier Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", org.rodinp.core;bundle-version="[1.3.1,1.6.0)", org.eventb.core;bundle-version="[2.1.0,2.5.0)" 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.core/build.properties b/de.prob.core/build.properties index a160157665756a1881d01008566cb7ba8b013734..9fb141b7cfba9f7f131f0a0a5f0521aec2927685 100644 --- a/de.prob.core/build.properties +++ b/de.prob.core/build.properties @@ -5,6 +5,5 @@ bin.includes = META-INF/,\ .,\ lib/probcliparser.jar,\ lib/commons-lang-2.4.jar,\ - prob/,\ - lib/keyboard.jar + prob/ 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/META-INF/MANIFEST.MF b/de.prob.plugin/META-INF/MANIFEST.MF index d9efbbed90f8e5dd00a6a535161eddc06283325e..24202af6eb41c3f85b4e1d5345dda77b95a4de61 100644 --- a/de.prob.plugin/META-INF/MANIFEST.MF +++ b/de.prob.plugin/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: ProB Rodin2 UI Bindings Bundle-SymbolicName: de.prob.plugin;singleton:=true -Bundle-Version: 2.1.3 +Bundle-Version: 2.1.3.qualifier Fragment-Host: de.prob.ui;bundle-version="[7.2.0,7.3.0)" Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Bundle-Vendor: HHU Düsseldorf STUPS Group 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..8e9705d9b1d9183f52e832a4fdd2855d7bdad797 --- /dev/null +++ b/de.prob.repository/category.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<site> + + <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"> + <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/META-INF/MANIFEST.MF b/de.prob.ui/META-INF/MANIFEST.MF index cd013dfaa111f494f9b246372149ec8d64790bfd..fe3fe5968a190cad234d06d01ccfa965023b072c 100644 --- a/de.prob.ui/META-INF/MANIFEST.MF +++ b/de.prob.ui/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: ProB Ui Plug-in Bundle-SymbolicName: de.prob.ui;singleton:=true -Bundle-Version: 7.2.0 +Bundle-Version: 7.2.0.qualifier Require-Bundle: org.eclipse.ui;bundle-version="[3.5.0,4.0.0)", org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)", 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/de.prob2.feature/build.gradle b/de.prob2.feature/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..327bb749580a26351d54402095dd1eb5c78479ef --- /dev/null +++ b/de.prob2.feature/build.gradle @@ -0,0 +1,48 @@ +def feature(artifactId, versionNumber) { """ +<?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>${artifactId}</artifactId> + <version>${versionNumber}</version> + <packaging>eclipse-feature</packaging> + </project> +"""} + +deploy <<{ + + content = new File("de.prob2.feature/feature.xml").getText("UTF-8") + + printFileLine = { if( it ==~ /.+version.+qualifier.+/ ){ + versionNumber = it.substring(15,it.size()-1) + // possibile error: cuts off first 15 chars and leaves out last '"' + + /* Version Number is taken from Feature.xml + * feature.xml is searched for version="version.qualifier" + * first 15 chars and last '"' are cut off + */ + + } + } + + content.eachLine( printFileLine ) + + + artifactId = 'de.prob2.feature' + + println artifactId + println "\t"+versionNumber + + + def f = new File(artifactId+'/pom.xml') + f.delete() + f << feature(artifactId, versionNumber) + +} \ No newline at end of file diff --git a/de.prob2.feature/feature.xml b/de.prob2.feature/feature.xml index f529aef40ee55bccaeea14243c03527ba3cd357a..6bc23c2551297ac9b86cf5a3313fbcc1e52a2533 100644 --- a/de.prob2.feature/feature.xml +++ b/de.prob2.feature/feature.xml @@ -2,7 +2,7 @@ <feature id="de.prob2.feature" label="ProB for Rodin2" - version="2.3.0" + version="2.3.0.qualifier" provider-name="HHU Düsseldorf STUPS Group"> <description url="http://www.stups.uni-duesseldorf.de/ProB"> 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