From f168c6cbebf142b18c792f16338aeeaf41aaea93 Mon Sep 17 00:00:00 2001 From: Sebastian Krings <sebastian@krin.gs> Date: Mon, 7 Jan 2013 11:21:13 +0100 Subject: [PATCH] tried to move unit analysis to its own plugin. there are remaining references in the translation/core. --- de.prob.core/plugin.xml | 13 - .../eventb/translator/ContextTranslator.java | 3 +- .../translator/internal/ModelTranslator.java | 3 +- de.prob.ui/META-INF/MANIFEST.MF | 3 +- de.prob.ui/plugin.xml | 96 ------ de.prob.units/.classpath | 7 + de.prob.units/.project | 28 ++ .../.settings/org.eclipse.jdt.core.prefs | 7 + de.prob.units/META-INF/MANIFEST.MF | 13 + de.prob.units/build.properties | 5 + de.prob.units/icons/unit_analysis.png | Bin 0 -> 3598 bytes de.prob.units/plugin.xml | 99 ++++++ .../src/de/prob/units/Activator.java | 50 ++++ .../pragmas/InferredUnitPragmaAttribute.java | 4 +- .../units}/pragmas/UnitPragmaAttribute.java | 4 +- .../units/ui}/StartUnitAnalysisHandler.java | 4 +- de.prob2.units.feature/.project | 17 ++ .../org.eclipse.core.resources.prefs | 3 + .../.settings/org.eclipse.core.runtime.prefs | 3 + de.prob2.units.feature/build.properties | 1 + de.prob2.units.feature/feature.xml | 281 ++++++++++++++++++ settings.gradle | 2 +- 22 files changed, 524 insertions(+), 122 deletions(-) create mode 100644 de.prob.units/.classpath create mode 100644 de.prob.units/.project create mode 100644 de.prob.units/.settings/org.eclipse.jdt.core.prefs create mode 100644 de.prob.units/META-INF/MANIFEST.MF create mode 100644 de.prob.units/build.properties create mode 100644 de.prob.units/icons/unit_analysis.png create mode 100644 de.prob.units/plugin.xml create mode 100644 de.prob.units/src/de/prob/units/Activator.java rename {de.prob.ui/src/de/prob/ui => de.prob.units/src/de/prob/units}/pragmas/InferredUnitPragmaAttribute.java (97%) rename {de.prob.ui/src/de/prob/ui => de.prob.units/src/de/prob/units}/pragmas/UnitPragmaAttribute.java (96%) rename {de.prob.ui/src/de/prob/ui/eventb => de.prob.units/src/de/prob/units/ui}/StartUnitAnalysisHandler.java (99%) create mode 100644 de.prob2.units.feature/.project create mode 100644 de.prob2.units.feature/.settings/org.eclipse.core.resources.prefs create mode 100644 de.prob2.units.feature/.settings/org.eclipse.core.runtime.prefs create mode 100644 de.prob2.units.feature/build.properties create mode 100644 de.prob2.units.feature/feature.xml diff --git a/de.prob.core/plugin.xml b/de.prob.core/plugin.xml index c19d9120..b84a1eae 100644 --- a/de.prob.core/plugin.xml +++ b/de.prob.core/plugin.xml @@ -23,17 +23,4 @@ class="de.prob.core.StaticListenerRegistry"> </listener> </extension> - <extension - point="org.rodinp.core.attributeTypes"> - <attributeType - id="unitPragmaAttribute" - kind="string" - name="Content of a unit Pragma to send to ProB"> - </attributeType> - <attributeType - id="inferredUnitPragmaAttribute" - kind="string" - name="Content of a unit Pragma received from ProB"> - </attributeType> - </extension> </plugin> diff --git a/de.prob.core/src/de/prob/eventb/translator/ContextTranslator.java b/de.prob.core/src/de/prob/eventb/translator/ContextTranslator.java index 8087d36a..e65b7464 100644 --- a/de.prob.core/src/de/prob/eventb/translator/ContextTranslator.java +++ b/de.prob.core/src/de/prob/eventb/translator/ContextTranslator.java @@ -54,7 +54,6 @@ import de.be4.classicalb.core.parser.node.PPredicate; import de.be4.classicalb.core.parser.node.PSet; import de.be4.classicalb.core.parser.node.TIdentifierLiteral; import de.hhu.stups.sablecc.patch.SourcePosition; -import de.prob.core.internal.Activator; import de.prob.core.translator.TranslationFailedException; import de.prob.core.translator.pragmas.IPragma; import de.prob.core.translator.pragmas.UnitPragma; @@ -133,7 +132,7 @@ public final class ContextTranslator extends AbstractComponentTranslator { private void collectPragmas() throws RodinDBException { // unit pragma, attached to constants final IAttributeType.String UNITATTRIBUTE = RodinCore - .getStringAttrType(Activator.PLUGIN_ID + ".unitPragmaAttribute"); + .getStringAttrType("de.prob.units.unitPragmaAttribute"); final ISCConstant[] constants = context.getSCConstants(); diff --git a/de.prob.core/src/de/prob/eventb/translator/internal/ModelTranslator.java b/de.prob.core/src/de/prob/eventb/translator/internal/ModelTranslator.java index 67c9e62d..b121f405 100644 --- a/de.prob.core/src/de/prob/eventb/translator/internal/ModelTranslator.java +++ b/de.prob.core/src/de/prob/eventb/translator/internal/ModelTranslator.java @@ -69,7 +69,6 @@ import de.be4.classicalb.core.parser.node.PPredicate; import de.be4.classicalb.core.parser.node.PSubstitution; import de.be4.classicalb.core.parser.node.PWitness; import de.be4.classicalb.core.parser.node.TIdentifierLiteral; -import de.prob.core.internal.Activator; import de.prob.core.translator.TranslationFailedException; import de.prob.core.translator.pragmas.IPragma; import de.prob.core.translator.pragmas.UnitPragma; @@ -184,7 +183,7 @@ public class ModelTranslator extends AbstractComponentTranslator { private void collectPragmas() throws RodinDBException { // unit pragma, attached to constants final IAttributeType.String UNITATTRIBUTE = RodinCore - .getStringAttrType(Activator.PLUGIN_ID + ".unitPragmaAttribute"); + .getStringAttrType("de.prob.units.unitPragmaAttribute"); final IVariable[] variables = origin.getVariables(); diff --git a/de.prob.ui/META-INF/MANIFEST.MF b/de.prob.ui/META-INF/MANIFEST.MF index 0789fd1e..0292f6b1 100644 --- a/de.prob.ui/META-INF/MANIFEST.MF +++ b/de.prob.ui/META-INF/MANIFEST.MF @@ -10,8 +10,7 @@ Require-Bundle: org.eclipse.ui;bundle-version="[3.5.0,4.0.0)", de.prob.core;bundle-version="[9.3.0,9.4.0)", org.eventb.core;bundle-version="[2.1.0,2.6.0)", org.eclipse.core.expressions;bundle-version="[3.4.101,4.0.0)", - org.eclipse.gef;bundle-version="[3.5.0,4.0.0)", - org.eventb.ui;bundle-version="[2.1.0,2.6.0)" + org.eclipse.gef;bundle-version="[3.5.0,4.0.0)" Bundle-ActivationPolicy: lazy Bundle-Vendor: HHU Düsseldorf STUPS Group Bundle-Activator: de.prob.ui.ProbUiPlugin diff --git a/de.prob.ui/plugin.xml b/de.prob.ui/plugin.xml index 817c0fd5..a64882ef 100644 --- a/de.prob.ui/plugin.xml +++ b/de.prob.ui/plugin.xml @@ -355,10 +355,6 @@ id="de.prob.command.startCspAnimation" name="Start CSP Animation"> </command> - <command - id="de.prob.ui.startunitanalysis" - name="Analyse Physical Units"> - </command> </extension> <extension point="org.eclipse.ui.handlers"> @@ -749,42 +745,6 @@ </with> </enabledWhen> </handler> - <handler - commandId="de.prob.ui.startunitanalysis"> - <class - class="de.prob.ui.eventb.StartUnitAnalysisHandler"> - </class> - <enabledWhen> - <with - variable="selection"> - <iterate - operator="or"> - <or> - <instanceof - value="org.eventb.core.IEventBRoot"> - </instanceof> - <and> - <instanceof - value="org.eclipse.core.resources.IResource"> - </instanceof> - <or> - <test - forcePluginActivation="true" - property="org.eclipse.core.resources.extension" - value="bum"> - </test> - <test - forcePluginActivation="true" - property="org.eclipse.core.resources.extension" - value="buc"> - </test> - </or> - </and> - </or> - </iterate> - </with> - </enabledWhen> - </handler> <!-- <handler commandId="de.prob.ui.startdmc"> <class @@ -1016,23 +976,6 @@ </with> </visibleWhen> </command> - <command - commandId="de.prob.ui.startunitanalysis" - icon="icons/prob.png" - label="Analyse Physical Units" - style="push"> - <visibleWhen> - <with - variable="selection"> - <iterate - operator="or"> - <instanceof - value="org.eventb.core.IEventBRoot"> - </instanceof> - </iterate> - </with> - </visibleWhen> - </command> <!-- <command commandId="de.prob.ui.startdmc" icon="icons/prob.png" @@ -1252,43 +1195,4 @@ </variable> </sourceProvider> </extension> - <extension - point="org.eventb.ui.editorItems"> - <textAttribute - class="de.prob.ui.pragmas.UnitPragmaAttribute" - expandsHorizontally="true" - id="de.prob.ui.unitPragmaAttribute" - isMath="true" - prefix="Physical Unit:" - style="de.prob.ui.unitPragmaAttribute" - typeId="de.prob.core.unitPragmaAttribute"> - </textAttribute> - <attributeRelation - elementTypeId="org.eventb.core.variable"> - <attributeReference - descriptionId="de.prob.ui.unitPragmaAttribute"> - </attributeReference> - <attributeReference - descriptionId="de.prob.ui.inferredUnitPragmaAttribute"> - </attributeReference> - </attributeRelation> - <attributeRelation - elementTypeId="org.eventb.core.constant"> - <attributeReference - descriptionId="de.prob.ui.unitPragmaAttribute"> - </attributeReference> - <attributeReference - descriptionId="de.prob.ui.inferredUnitPragmaAttribute"> - </attributeReference> - </attributeRelation> - <textAttribute - class="de.prob.ui.pragmas.InferredUnitPragmaAttribute" - expandsHorizontally="true" - id="de.prob.ui.inferredUnitPragmaAttribute" - isMath="true" - prefix="Inferred Physical Unit:" - style="de.prob.ui.inferredUnitPragmaAttribute" - typeId="de.prob.core.inferredUnitPragmaAttribute"> - </textAttribute> - </extension> </plugin> diff --git a/de.prob.units/.classpath b/de.prob.units/.classpath new file mode 100644 index 00000000..ad32c83a --- /dev/null +++ b/de.prob.units/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/de.prob.units/.project b/de.prob.units/.project new file mode 100644 index 00000000..22333fa9 --- /dev/null +++ b/de.prob.units/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>de.prob.units</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/de.prob.units/.settings/org.eclipse.jdt.core.prefs b/de.prob.units/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..c537b630 --- /dev/null +++ b/de.prob.units/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/de.prob.units/META-INF/MANIFEST.MF b/de.prob.units/META-INF/MANIFEST.MF new file mode 100644 index 00000000..8fcd8336 --- /dev/null +++ b/de.prob.units/META-INF/MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Units +Bundle-SymbolicName: de.prob.units;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: de.prob.units.Activator +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + de.prob.core;bundle-version="9.3.0", + org.eventb.ui;bundle-version="2.5.0", + de.prob.ui;bundle-version="7.3.0" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 diff --git a/de.prob.units/build.properties b/de.prob.units/build.properties new file mode 100644 index 00000000..e9863e28 --- /dev/null +++ b/de.prob.units/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml diff --git a/de.prob.units/icons/unit_analysis.png b/de.prob.units/icons/unit_analysis.png new file mode 100644 index 0000000000000000000000000000000000000000..36d5d6278be2e2226de7b9d4d0fc9da720e47f1b GIT binary patch literal 3598 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 literal 0 HcmV?d00001 diff --git a/de.prob.units/plugin.xml b/de.prob.units/plugin.xml new file mode 100644 index 00000000..2b12b858 --- /dev/null +++ b/de.prob.units/plugin.xml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<plugin> + <extension + point="org.eventb.ui.editorItems"> + <textAttribute + class="de.prob.units.pragmas.UnitPragmaAttribute" + expandsHorizontally="true" + id="de.prob.units.unitPragmaAttribute" + isMath="true" + prefix="Physical Unit:" + style="de.prob.units.unitPragmaAttribute" + typeId="de.prob.units.unitPragmaAttribute"> + </textAttribute> + <attributeRelation + elementTypeId="org.eventb.core.variable"> + <attributeReference + descriptionId="de.prob.units.unitPragmaAttribute"> + </attributeReference> + <attributeReference + descriptionId="de.prob.units.inferredUnitPragmaAttribute"> + </attributeReference> + </attributeRelation> + <attributeRelation + elementTypeId="org.eventb.core.constant"> + <attributeReference + descriptionId="de.prob.units.unitPragmaAttribute"> + </attributeReference> + <attributeReference + descriptionId="de.prob.units.inferredUnitPragmaAttribute"> + </attributeReference> + </attributeRelation> + <textAttribute + class="de.prob.units.pragmas.InferredUnitPragmaAttribute" + expandsHorizontally="true" + id="de.prob.units.inferredUnitPragmaAttribute" + isMath="true" + prefix="Inferred Physical Unit:" + style="de.prob.units.inferredUnitPragmaAttribute" + typeId="de.prob.units.inferredUnitPragmaAttribute"> + </textAttribute> + </extension> + <extension + point="org.eclipse.ui.handlers"> + <handler + class="de.prob.units.ui.StartUnitAnalysisHandler" + commandId="de.prob.units.startunitanalysis"> + </handler> + </extension> + <extension + point="org.eclipse.ui.menus"> + <menuContribution + locationURI="popup:fr.systerel.explorer.navigator.view"> + <separator + name="de.prob.units.separator2"> + </separator> + <command + commandId="de.prob.units.startunitanalysis" + icon="icons/unit_analysis.png" + label="Analyse Physical Units" + style="push"> + <visibleWhen> + <with + variable="selection"> + <iterate + operator="or"> + <instanceof + value="org.eventb.core.IEventBRoot"> + </instanceof> + </iterate> + </with> + </visibleWhen> + </command> + <separator + name="de.prob.units.separator1"> + </separator> + </menuContribution> + </extension> + <extension + point="org.eclipse.ui.commands"> + <command + id="de.prob.units.startunitanalysis" + name="Analyse Physical Units"> + </command> + </extension> + <extension + point="org.rodinp.core.attributeTypes"> + <attributeType + id="unitPragmaAttribute" + kind="string" + name="Content of a unit Pragma to send to ProB"> + </attributeType> + <attributeType + id="inferredUnitPragmaAttribute" + kind="string" + name="Content of a unit Pragma received from ProB"> + </attributeType> + </extension> +</plugin> diff --git a/de.prob.units/src/de/prob/units/Activator.java b/de.prob.units/src/de/prob/units/Activator.java new file mode 100644 index 00000000..cb9482f5 --- /dev/null +++ b/de.prob.units/src/de/prob/units/Activator.java @@ -0,0 +1,50 @@ +package de.prob.units; + +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "de.prob.units"; //$NON-NLS-1$ + + // The shared instance + private static Activator plugin; + + /** + * The constructor + */ + public Activator() { + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + +} diff --git a/de.prob.ui/src/de/prob/ui/pragmas/InferredUnitPragmaAttribute.java b/de.prob.units/src/de/prob/units/pragmas/InferredUnitPragmaAttribute.java similarity index 97% rename from de.prob.ui/src/de/prob/ui/pragmas/InferredUnitPragmaAttribute.java rename to de.prob.units/src/de/prob/units/pragmas/InferredUnitPragmaAttribute.java index 6a781004..a2d7ec27 100644 --- a/de.prob.ui/src/de/prob/ui/pragmas/InferredUnitPragmaAttribute.java +++ b/de.prob.units/src/de/prob/units/pragmas/InferredUnitPragmaAttribute.java @@ -4,7 +4,7 @@ * (http://www.eclipse.org/org/documents/epl-v10.html) * */ -package de.prob.ui.pragmas; +package de.prob.units.pragmas; import org.eclipse.core.runtime.IProgressMonitor; import org.eventb.core.IVariable; @@ -16,7 +16,7 @@ import org.rodinp.core.IRodinElement; import org.rodinp.core.RodinCore; import org.rodinp.core.RodinDBException; -import de.prob.core.internal.Activator; +import de.prob.units.Activator; public class InferredUnitPragmaAttribute implements IAttributeManipulation { public static IAttributeType.String ATTRIBUTE = RodinCore diff --git a/de.prob.ui/src/de/prob/ui/pragmas/UnitPragmaAttribute.java b/de.prob.units/src/de/prob/units/pragmas/UnitPragmaAttribute.java similarity index 96% rename from de.prob.ui/src/de/prob/ui/pragmas/UnitPragmaAttribute.java rename to de.prob.units/src/de/prob/units/pragmas/UnitPragmaAttribute.java index 74aa0f9a..8c0075f1 100644 --- a/de.prob.ui/src/de/prob/ui/pragmas/UnitPragmaAttribute.java +++ b/de.prob.units/src/de/prob/units/pragmas/UnitPragmaAttribute.java @@ -4,7 +4,7 @@ * (http://www.eclipse.org/org/documents/epl-v10.html) * */ -package de.prob.ui.pragmas; +package de.prob.units.pragmas; import org.eclipse.core.runtime.IProgressMonitor; import org.eventb.core.IVariable; @@ -16,7 +16,7 @@ import org.rodinp.core.IRodinElement; import org.rodinp.core.RodinCore; import org.rodinp.core.RodinDBException; -import de.prob.core.internal.Activator; +import de.prob.units.Activator; public class UnitPragmaAttribute implements IAttributeManipulation { public static IAttributeType.String ATTRIBUTE = RodinCore diff --git a/de.prob.ui/src/de/prob/ui/eventb/StartUnitAnalysisHandler.java b/de.prob.units/src/de/prob/units/ui/StartUnitAnalysisHandler.java similarity index 99% rename from de.prob.ui/src/de/prob/ui/eventb/StartUnitAnalysisHandler.java rename to de.prob.units/src/de/prob/units/ui/StartUnitAnalysisHandler.java index ad8b1ebf..13585c40 100644 --- a/de.prob.ui/src/de/prob/ui/eventb/StartUnitAnalysisHandler.java +++ b/de.prob.units/src/de/prob/units/ui/StartUnitAnalysisHandler.java @@ -4,7 +4,7 @@ * (http://www.eclipse.org/org/documents/epl-v10.html) * */ -package de.prob.ui.eventb; +package de.prob.units.ui; import java.util.ArrayList; import java.util.HashMap; @@ -56,7 +56,7 @@ import de.prob.parser.ResultParserException; import de.prob.prolog.term.CompoundPrologTerm; import de.prob.prolog.term.ListPrologTerm; import de.prob.prolog.term.PrologTerm; -import de.prob.ui.pragmas.InferredUnitPragmaAttribute; +import de.prob.units.pragmas.InferredUnitPragmaAttribute; public class StartUnitAnalysisHandler extends AbstractHandler implements IHandler { diff --git a/de.prob2.units.feature/.project b/de.prob2.units.feature/.project new file mode 100644 index 00000000..96b7c786 --- /dev/null +++ b/de.prob2.units.feature/.project @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>de.prob2.units.feature</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.pde.FeatureBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.FeatureNature</nature> + </natures> +</projectDescription> diff --git a/de.prob2.units.feature/.settings/org.eclipse.core.resources.prefs b/de.prob2.units.feature/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..ae8dfb58 --- /dev/null +++ b/de.prob2.units.feature/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,3 @@ +#Tue Nov 29 16:17:25 CET 2011 +eclipse.preferences.version=1 +encoding/<project>=UTF-8 diff --git a/de.prob2.units.feature/.settings/org.eclipse.core.runtime.prefs b/de.prob2.units.feature/.settings/org.eclipse.core.runtime.prefs new file mode 100644 index 00000000..57a8ae0b --- /dev/null +++ b/de.prob2.units.feature/.settings/org.eclipse.core.runtime.prefs @@ -0,0 +1,3 @@ +#Tue Nov 29 16:17:25 CET 2011 +eclipse.preferences.version=1 +line.separator=\n diff --git a/de.prob2.units.feature/build.properties b/de.prob2.units.feature/build.properties new file mode 100644 index 00000000..64f93a9f --- /dev/null +++ b/de.prob2.units.feature/build.properties @@ -0,0 +1 @@ +bin.includes = feature.xml diff --git a/de.prob2.units.feature/feature.xml b/de.prob2.units.feature/feature.xml new file mode 100644 index 00000000..e6432b79 --- /dev/null +++ b/de.prob2.units.feature/feature.xml @@ -0,0 +1,281 @@ +<?xml version="1.0" encoding="UTF-8"?> +<feature + id="de.prob2.units.feature" + label="ProB for Rodin2 - Physical Units Support" + version="2.3.5.qualifier" + provider-name="HHU Düsseldorf STUPS Group"> + + <description url="http://www.stups.uni-duesseldorf.de/ProB"> + 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> + + <copyright> + (C) 2000-2011 Michael Leuschel (and many others) All rights reserved. + </copyright> + + <license url="http://www.eclipse.org/org/documents/epl-v10.html"> + ProB can be used freely for commercial, non-commercial and academic +use under the Eclipse Public Licence v. 1.0. (below) +For availability of commercial support, please contact the author +(http://www.stups.uni-duesseldorf.de/~leuschel). +Use of ProB's nauty library for symmetry reduction implies further +restrictions (no applications with nontrivial military significance, +see http://cs.anu.edu.au/~bdm/nauty/). +--- +Eclipse Public License - v. 1.0 +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS +ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR +DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE +OF THIS AGREEMENT. +1. DEFINITIONS +"Contribution" means: +a) in the case of the initial Contributor, the initial code and +documentation distributed under this Agreement, and +b) in the case of each subsequent Contributor: +i) changes to the Program, and +ii) additions to the Program; +where such changes and/or additions to the Program originate +from and are distributed by that particular Contributor. A Contribution +'originates' from a Contributor if it was added to the Program +by such Contributor itself or anyone acting on such Contributor's +behalf. Contributions do not include additions to the Program +which: (i) are separate modules of software distributed in conjunction +with the Program under their own license agreement, and (ii) +are not derivative works of the Program. +"Contributor" means any person or entity that distributes the +Program. +"Licensed Patents" mean patent claims licensable by a Contributor +which are necessarily infringed by the use or sale of its Contribution +alone or when combined with the Program. +"Program" means the Contributions distributed in accordance with +this Agreement. +"Recipient" means anyone who receives the Program under this +Agreement, including all Contributors. +2. GRANT OF RIGHTS +a) Subject to the terms of this Agreement, each Contributor hereby +grants Recipient a non-exclusive, worldwide, royalty-free copyright +license to reproduce, prepare derivative works of, publicly display, +publicly perform, distribute and sublicense the Contribution +of such Contributor, if any, and such derivative works, in source +code and object code form. +b) Subject to the terms of this Agreement, each Contributor hereby +grants Recipient a non-exclusive, worldwide, royalty-free patent +license under Licensed Patents to make, use, sell, offer to sell, +import and otherwise transfer the Contribution of such Contributor, +if any, in source code and object code form. This patent license +shall apply to the combination of the Contribution and the Program +if, at the time the Contribution is added by the Contributor, +such addition of the Contribution causes such combination to +be covered by the Licensed Patents. The patent license shall +not apply to any other combinations which include the Contribution. +No hardware per se is licensed hereunder. +c) Recipient understands that although each Contributor grants +the licenses to its Contributions set forth herein, no assurances +are provided by any Contributor that the Program does not infringe +the patent or other intellectual property rights of any other +entity. Each Contributor disclaims any liability to Recipient +for claims brought by any other entity based on infringement +of intellectual property rights or otherwise. As a condition +to exercising the rights and licenses granted hereunder, each +Recipient hereby assumes sole responsibility to secure any other +intellectual property rights needed, if any. For example, if +a third party patent license is required to allow Recipient to +distribute the Program, it is Recipient's responsibility to acquire +that license before distributing the Program. +d) Each Contributor represents that to its knowledge it has sufficient +copyright rights in its Contribution, if any, to grant the copyright +license set forth in this Agreement. +3. REQUIREMENTS +A Contributor may choose to distribute the Program in object +code form under its own license agreement, provided that: +a) it complies with the terms and conditions of this Agreement; +and +b) its license agreement: +i) effectively disclaims on behalf of all Contributors all warranties +and conditions, express and implied, including warranties or +conditions of title and non-infringement, and implied warranties +or conditions of merchantability and fitness for a particular +purpose; +ii) effectively excludes on behalf of all Contributors all liability +for damages, including direct, indirect, special, incidental +and consequential damages, such as lost profits; +iii) states that any provisions which differ from this Agreement +are offered by that Contributor alone and not by any other party; +and +iv) states that source code for the Program is available from +such Contributor, and informs licensees how to obtain it in a +reasonable manner on or through a medium customarily used for +software exchange. +When the Program is made available in source code form: +a) it must be made available under this Agreement; and +b) a copy of this Agreement must be included with each copy of +the Program. +Contributors may not remove or alter any copyright notices contained +within the Program. +Each Contributor must identify itself as the originator of its +Contribution, if any, in a manner that reasonably allows subsequent +Recipients to identify the originator of the Contribution. +4. COMMERCIAL DISTRIBUTION +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While +this license is intended to facilitate the commercial use of +the Program, the Contributor who includes the Program in a commercial +product offering should do so in a manner which does not create +potential liability for other Contributors. Therefore, if a Contributor +includes the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify +every other Contributor ("Indemnified Contributor") against any +losses, damages and costs (collectively "Losses") arising from +claims, lawsuits and other legal actions brought by a third party +against the Indemnified Contributor to the extent caused by the +acts or omissions of such Commercial Contributor in connection +with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any +claims or Losses relating to any actual or alleged intellectual +property infringement. In order to qualify, an Indemnified Contributor +must: a) promptly notify the Commercial Contributor in writing +of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense +and any related settlement negotiations. The Indemnified Contributor +may participate in any such claim at its own expense. +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have +to defend claims against the other Contributors related to those +performance claims and warranties, and if a court requires any +other Contributor to pay any damages as a result, the Commercial +Contributor must pay those damages. +5. NO WARRANTY +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM +IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS +OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, +ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY +OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely +responsible for determining the appropriateness of using and +distributing the Program and assumes all risks associated with +its exercise of rights under this Agreement , including but not +limited to the risks and costs of program errors, compliance +with applicable laws, damage to or loss of data, programs or +equipment, and unavailability or interruption of operations. +6. DISCLAIMER OF LIABILITY +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT +NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE +OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGES. +7. GENERAL +If any provision of this Agreement is invalid or unenforceable +under applicable law, it shall not affect the validity or enforceability +of the remainder of the terms of this Agreement, and without +further action by the parties hereto, such provision shall be +reformed to the minimum extent necessary to make such provision +valid and enforceable. +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging +that the Program itself (excluding combinations of the Program +with other software or hardware) infringes such Recipient's patent(s), +then such Recipient's rights granted under Section 2(b) shall +terminate as of the date such litigation is filed. +All Recipient's rights under this Agreement shall terminate if +it fails to comply with any of the material terms or conditions +of this Agreement and does not cure such failure in a reasonable +period of time after becoming aware of such noncompliance. If +all Recipient's rights under this Agreement terminate, Recipient +agrees to cease use and distribution of the Program as soon as +reasonably practicable. However, Recipient's obligations under +this Agreement and any licenses granted by Recipient relating +to the Program shall continue and survive. +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted +and may only be modified in the following manner. The Agreement +Steward reserves the right to publish new versions (including +revisions) of this Agreement from time to time. No one other +than the Agreement Steward has the right to modify this Agreement. +The Eclipse Foundation is the initial Agreement Steward. The +Eclipse Foundation may assign the responsibility to serve as +the Agreement Steward to a suitable separate entity. Each new +version of the Agreement will be given a distinguishing version +number. The Program (including Contributions) may always be distributed +subject to the version of the Agreement under which it was received. +In addition, after a new version of the Agreement is published, +Contributor may elect to distribute the Program (including its +Contributions) under the new version. Except as expressly stated +in Sections 2(a) and 2(b) above, Recipient receives no rights +or licenses to the intellectual property of any Contributor under +this Agreement, whether expressly, by implication, estoppel or +otherwise. All rights in the Program not expressly granted under +this Agreement are reserved. +This Agreement is governed by the laws of the State of New York +and the intellectual property laws of the United States of America. +No party to this Agreement will bring a legal action under this +Agreement more than one year after the cause of action arose. +Each party waives its rights to a jury trial in any resulting +litigation. + </license> + + <requires> + <import plugin="org.eclipse.ui" version="3.5.0" match="compatible"/> + <import plugin="org.eclipse.ui.ide" version="3.5.0" match="compatible"/> + <import plugin="org.eclipse.ui.views" version="3.5.0" match="compatible"/> + <import plugin="org.eclipse.core.runtime" version="3.5.0" match="compatible"/> + <import plugin="org.eclipse.core.databinding" version="1.2.0" match="compatible"/> + <import plugin="org.eclipse.jface.databinding" version="1.2.1" match="compatible"/> + <import plugin="org.eclipse.core.databinding.beans" version="1.1.1" match="compatible"/> + <import plugin="org.eclipse.gef" version="3.7.0" match="compatible"/> + <import plugin="de.prob.core" version="9.3.0" match="equivalent"/> + <import plugin="org.eventb.core" version="2.1.0"/> + <import plugin="org.rodinp.core" version="1.3.1"/> + <import plugin="de.prob.ui" version="7.3.0" match="equivalent"/> + <import plugin="org.eclipse.core.resources" version="3.5.0" match="compatible"/> + <import plugin="org.eclipse.core.expressions" version="3.4.101" match="compatible"/> + <import plugin="org.eclipse.gef" version="3.5.0" match="compatible"/> + <import plugin="org.eclipse.ui.navigator" version="3.5.0" match="greaterOrEqual"/> + </requires> + + <plugin + id="de.bmotionstudio.gef.editor" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="de.prob.core" + download-size="0" + install-size="0" + version="0.0.0"/> + + <plugin + id="de.prob.plugin" + download-size="0" + install-size="0" + version="0.0.0" + fragment="true" + unpack="false"/> + + <plugin + id="de.prob.ui" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="de.bmotionstudio.rodin" + download-size="0" + install-size="0" + version="0.0.0" + fragment="true" + unpack="false"/> + +</feature> diff --git a/settings.gradle b/settings.gradle index bb2187c3..b488c61b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,2 @@ -include 'de.prob.core', 'de.bmotionstudio.gef.editor' ,'de.bmotionstudio.rodin', 'de.bmotionstudio.help' , 'de.prob.plugin', 'de.prob.ui', 'de.prob2.feature' +include 'de.prob.core', 'de.bmotionstudio.gef.editor' ,'de.bmotionstudio.rodin', 'de.bmotionstudio.help' , 'de.prob.plugin', 'de.prob.ui', 'de.prob2.feature', 'de.prob.units', 'de.prob2.units.feature' -- GitLab