Added migration of ChannelFillConditions: new attribute "relation" is added
diff --git a/plugins/org.eclipse.app4mc.amalthea.converters.210/.classpath b/plugins/org.eclipse.app4mc.amalthea.converters.210/.classpath new file mode 100644 index 0000000..eca7bdb --- /dev/null +++ b/plugins/org.eclipse.app4mc.amalthea.converters.210/.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.8"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath>
diff --git a/plugins/org.eclipse.app4mc.amalthea.converters.210/.project b/plugins/org.eclipse.app4mc.amalthea.converters.210/.project new file mode 100644 index 0000000..9d7c116 --- /dev/null +++ b/plugins/org.eclipse.app4mc.amalthea.converters.210/.project
@@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.app4mc.amalthea.converters.210</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> + <buildCommand> + <name>org.eclipse.pde.ds.core.builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription>
diff --git a/plugins/org.eclipse.app4mc.amalthea.converters.210/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.app4mc.amalthea.converters.210/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/plugins/org.eclipse.app4mc.amalthea.converters.210/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/<project>=UTF-8
diff --git a/plugins/org.eclipse.app4mc.amalthea.converters.210/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.app4mc.amalthea.converters.210/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..0fee6a9 --- /dev/null +++ b/plugins/org.eclipse.app4mc.amalthea.converters.210/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,15 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8
diff --git a/plugins/org.eclipse.app4mc.amalthea.converters.210/.settings/org.eclipse.pde.ds.annotations.prefs b/plugins/org.eclipse.app4mc.amalthea.converters.210/.settings/org.eclipse.pde.ds.annotations.prefs new file mode 100644 index 0000000..73a356b --- /dev/null +++ b/plugins/org.eclipse.app4mc.amalthea.converters.210/.settings/org.eclipse.pde.ds.annotations.prefs
@@ -0,0 +1,8 @@ +classpath=true +dsVersion=V1_3 +eclipse.preferences.version=1 +enabled=true +generateBundleActivationPolicyLazy=true +path=OSGI-INF +validationErrorLevel=error +validationErrorLevel.missingImplicitUnbindMethod=error
diff --git a/plugins/org.eclipse.app4mc.amalthea.converters.210/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.converters.210/META-INF/MANIFEST.MF new file mode 100644 index 0000000..1eee4b8 --- /dev/null +++ b/plugins/org.eclipse.app4mc.amalthea.converters.210/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: APP4MC Amalthea Converters to 2.1.0 +Bundle-SymbolicName: org.eclipse.app4mc.amalthea.converters.210 +Bundle-Version: 2.1.0.qualifier +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-Vendor: Eclipse APP4MC +Automatic-Module-Name: org.eclipse.app4mc.amalthea.converters.210 +Import-Package: org.eclipse.app4mc.amalthea.converters.common, + org.eclipse.app4mc.amalthea.converters.common.base, + org.eclipse.app4mc.amalthea.converters.common.converter, + org.eclipse.app4mc.amalthea.converters.common.utils, + org.eclipse.app4mc.util.sessionlog;version="1.1.0", + org.jdom2;version="2.0.6", + org.osgi.service.component.annotations;version="[1.3.0,2.0.0)";resolution:=optional +Bundle-ActivationPolicy: lazy +Service-Component: OSGI-INF/org.eclipse.app4mc.amalthea.converters210.impl.ConditionConverter.xml +
diff --git a/plugins/org.eclipse.app4mc.amalthea.converters.210/OSGI-INF/org.eclipse.app4mc.amalthea.converters210.impl.ConditionConverter.xml b/plugins/org.eclipse.app4mc.amalthea.converters.210/OSGI-INF/org.eclipse.app4mc.amalthea.converters210.impl.ConditionConverter.xml new file mode 100644 index 0000000..cc048f6 --- /dev/null +++ b/plugins/org.eclipse.app4mc.amalthea.converters.210/OSGI-INF/org.eclipse.app4mc.amalthea.converters210.impl.ConditionConverter.xml
@@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.3.0" activate="activate" name="org.eclipse.app4mc.amalthea.converters210.impl.ConditionConverter"> + <property name="input_model_version" value="2.0.0"/> + <property name="output_model_version" value="2.1.0"/> + <service> + <provide interface="org.eclipse.app4mc.amalthea.converters.common.base.IConverter"/> + </service> + <reference cardinality="1..1" field="logger" interface="org.eclipse.app4mc.util.sessionlog.SessionLogger" name="logger"/> + <implementation class="org.eclipse.app4mc.amalthea.converters210.impl.ConditionConverter"/> +</scr:component> \ No newline at end of file
diff --git a/plugins/org.eclipse.app4mc.amalthea.converters.210/about.html b/plugins/org.eclipse.app4mc.amalthea.converters.210/about.html new file mode 100644 index 0000000..164f781 --- /dev/null +++ b/plugins/org.eclipse.app4mc.amalthea.converters.210/about.html
@@ -0,0 +1,36 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> +<title>About</title> +</head> +<body lang="EN-US"> + <h2>About This Content</h2> + + <p>November 30, 2017</p> + <h3>License</h3> + + <p> + The Eclipse Foundation makes available all content in this plug-in + ("Content"). Unless otherwise indicated below, the Content + is provided to you under the terms and conditions of the Eclipse + Public License Version 2.0 ("EPL"). A copy of the EPL is + available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>. + For purposes of the EPL, "Program" will mean the Content. + </p> + + <p> + If you did not receive this Content directly from the Eclipse + Foundation, the Content is being redistributed by another party + ("Redistributor") and different terms and conditions may + apply to your use of any object code in the Content. Check the + Redistributor's license that was provided with the Content. If no such + license exists, contact the Redistributor. Unless otherwise indicated + below, the terms and conditions of the EPL still apply to any source + code in the Content and such source code may be obtained at <a + href="http://www.eclipse.org/">http://www.eclipse.org</a>. + </p> + +</body> +</html> \ No newline at end of file
diff --git a/plugins/org.eclipse.app4mc.amalthea.converters.210/build.properties b/plugins/org.eclipse.app4mc.amalthea.converters.210/build.properties new file mode 100644 index 0000000..2a35983 --- /dev/null +++ b/plugins/org.eclipse.app4mc.amalthea.converters.210/build.properties
@@ -0,0 +1,9 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + OSGI-INF/,\ + about.html,\ + epl-2.0.html +src.includes = about.html,\ + epl-2.0.html
diff --git a/plugins/org.eclipse.app4mc.amalthea.converters.210/epl-2.0.html b/plugins/org.eclipse.app4mc.amalthea.converters.210/epl-2.0.html new file mode 100644 index 0000000..637a181 --- /dev/null +++ b/plugins/org.eclipse.app4mc.amalthea.converters.210/epl-2.0.html
@@ -0,0 +1,300 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Eclipse Public License - Version 2.0</title> + <style type="text/css"> + body { + margin: 1.5em 3em; + } + h1{ + font-size:1.5em; + } + h2{ + font-size:1em; + margin-bottom:0.5em; + margin-top:1em; + } + p { + margin-top: 0.5em; + margin-bottom: 0.5em; + } + ul, ol{ + list-style-type:none; + } + </style> + </head> + <body> + <h1>Eclipse Public License - v 2.0</h1> + <p>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. + </p> + <h2 id="definitions">1. DEFINITIONS</h2> + <p>“Contribution” means:</p> + <ul> + <li>a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + </li> + <li> + b) in the case of each subsequent Contributor: + <ul> + <li>i) changes to the Program, and</li> + <li>ii) additions to the Program;</li> + </ul> + 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 changes or additions to the Program that + are not Modified Works. + </li> + </ul> + <p>“Contributor” means any person or entity that Distributes the Program.</p> + <p>“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. + </p> + <p>“Program” means the Contributions Distributed in accordance with this + Agreement. + </p> + <p>“Recipient” means anyone who receives the Program under this Agreement + or any Secondary License (as applicable), including Contributors. + </p> + <p>“Derivative Works” shall mean any work, whether in Source Code or other + form, that is based on (or derived from) the Program and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. + </p> + <p>“Modified Works” shall mean any work in Source Code or other form that + results from an addition to, deletion from, or modification of the + contents of the Program, including, for purposes of clarity any new file + in Source Code form that contains any contents of the Program. Modified + Works shall not include works that contain only declarations, interfaces, + types, classes, structures, or files of the Program solely in each case + in order to link to, bind by name, or subclass the Program or Modified + Works thereof. + </p> + <p>“Distribute” means the acts of a) distributing or b) making available + in any manner that enables the transfer of a copy. + </p> + <p>“Source Code” means the form of a Program preferred for making + modifications, including but not limited to software source code, + documentation source, and configuration files. + </p> + <p>“Secondary License” means either the GNU General Public License, + Version 2.0, or any later versions of that license, including any + exceptions or additional permissions as identified by the initial + Contributor. + </p> + <h2 id="grant-of-rights">2. GRANT OF RIGHTS</h2> + <ul> + <li>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. + </li> + <li>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 or other 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. + </li> + <li>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. + </li> + <li>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. + </li> + <li>e) Notwithstanding the terms of any Secondary License, no Contributor + makes additional grants to any Recipient (other than those set forth + in this Agreement) as a result of such Recipient's receipt of the + Program under the terms of a Secondary License (if permitted under + the terms of Section 3). + </li> + </ul> + <h2 id="requirements">3. REQUIREMENTS</h2> + <p>3.1 If a Contributor Distributes the Program in any form, then:</p> + <ul> + <li>a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + </li> + <li> + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + <ul> + <li>i) effectively disclaims on behalf of all other 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; + </li> + <li>ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, incidental + and consequential damages, such as lost profits; + </li> + <li>iii) does not attempt to limit or alter the recipients' rights in the + Source Code under section 3.2; and + </li> + <li>iv) requires any subsequent distribution of the Program by any party + to be under a license that satisfies the requirements of this section 3. + </li> + </ul> + </li> + </ul> + <p>3.2 When the Program is Distributed as Source Code:</p> + <ul> + <li>a) it must be made available under this Agreement, or if the Program (i) + is combined with other material in a separate file or files made available + under a Secondary License, and (ii) the initial Contributor attached to + the Source Code the notice described in Exhibit A of this Agreement, + then the Program may be made available under the terms of such + Secondary Licenses, and + </li> + <li>b) a copy of this Agreement must be included with each copy of the Program.</li> + </ul> + <p>3.3 Contributors may not remove or alter any copyright, patent, trademark, + attribution notices, disclaimers of warranty, or limitations of liability + (‘notices’) contained within the Program from any copy of the Program which + they Distribute, provided that Contributors may add their own appropriate + notices. + </p> + <h2 id="commercial-distribution">4. COMMERCIAL DISTRIBUTION</h2> + <p>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. + </p> + <p>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. + </p> + <h2 id="warranty">5. NO WARRANTY</h2> + <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED + BY APPLICABLE LAW, 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. + </p> + <h2 id="disclaimer">6. DISCLAIMER OF LIABILITY</h2> + <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED + BY APPLICABLE LAW, 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. + </p> + <h2 id="general">7. GENERAL</h2> + <p>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. + </p> + <p>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. + </p> + <p>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. + </p> + <p>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. + </p> + <p>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. Nothing in this Agreement is intended + to be enforceable by any entity that is not a Contributor or Recipient. + No third-party beneficiary rights are created under this Agreement. + </p> + <h2 id="exhibit-a">Exhibit A – Form of Secondary Licenses Notice</h2> + <p>“This Source Code may also be made available under the following + Secondary Licenses when the conditions for such availability set forth + in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), + version(s), and exceptions or additional permissions here}.” + </p> + <blockquote> + <p>Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + </p> + <p>If it is not possible or desirable to put the notice in a particular file, + then You may include the notice in a location (such as a LICENSE file in a + relevant directory) where a recipient would be likely to look for + such a notice. + </p> + <p>You may add additional accurate notices of copyright ownership.</p> + </blockquote> + </body> +</html> \ No newline at end of file
diff --git a/plugins/org.eclipse.app4mc.amalthea.converters.210/src/org/eclipse/app4mc/amalthea/converters210/impl/ConditionConverter.java b/plugins/org.eclipse.app4mc.amalthea.converters.210/src/org/eclipse/app4mc/amalthea/converters210/impl/ConditionConverter.java new file mode 100644 index 0000000..20850f4 --- /dev/null +++ b/plugins/org.eclipse.app4mc.amalthea.converters.210/src/org/eclipse/app4mc/amalthea/converters210/impl/ConditionConverter.java
@@ -0,0 +1,114 @@ +/********************************************************************************* + * Copyright (c) 2022 Robert Bosch GmbH and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Robert Bosch GmbH - initial API and implementation + ******************************************************************************** + */ + +package org.eclipse.app4mc.amalthea.converters210.impl; + +import java.io.File; +import java.util.List; +import java.util.Map; + +import org.eclipse.app4mc.amalthea.converters.common.ServiceConstants; +import org.eclipse.app4mc.amalthea.converters.common.base.ICache; +import org.eclipse.app4mc.amalthea.converters.common.base.IConverter; +import org.eclipse.app4mc.amalthea.converters.common.converter.AbstractConverter; +import org.eclipse.app4mc.amalthea.converters.common.utils.AmaltheaNamespaceRegistry; +import org.eclipse.app4mc.amalthea.converters.common.utils.HelperUtil; +import org.eclipse.app4mc.util.sessionlog.SessionLogger; +import org.jdom2.Attribute; +import org.jdom2.Document; +import org.jdom2.Element; +import org.jdom2.Namespace; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Reference; + +@Component( + property = { + ServiceConstants.INPUT_MODEL_VERSION_PROPERTY + "=2.0.0", + ServiceConstants.OUTPUT_MODEL_VERSION_PROPERTY + "=2.1.0" + }, + service = IConverter.class) + +public class ConditionConverter extends AbstractConverter { + + @Reference + SessionLogger logger; + + @Override + @Activate + protected void activate(Map<String, Object> properties) { + super.activate(properties); + } + + @Override + public void convert(File targetFile, Map<File, Document> fileDocumentMapping, List<ICache> caches) { + logger.info("Migration from {0} to {1} : Executing Condition converter for model file : {2}", + getInputModelVersion(), getOutputModelVersion(), targetFile.getName()); + + basicConvert(targetFile, fileDocumentMapping); + } + + private void basicConvert(File file, Map<File, Document> map) { + // get the components with interfaces + final Document document = map.get(file); + if (document == null) { + return; + } + + final Element rootElement = document.getRootElement(); + + updateChannelFillConditions(rootElement); + } + + /** + * Adds an attribute "relation" with value "GREATER_THAN_OR_EQUAL" + * <p> + * Version 2.0 did not contain a relation attribute. The interpretation was: Contains at least x elements. + * + * @param rootElement + */ + private void updateChannelFillConditions(Element rootElement) { + final Namespace am = AmaltheaNamespaceRegistry.getNamespace(getInputModelVersion(), "am"); + final Namespace xsi = AmaltheaNamespaceRegistry.getGenericNamespace("xsi"); + + final StringBuilder xpathBuilder = new StringBuilder(); + // Execution conditions + xpathBuilder.append("./swModel/runnables/executionCondition//entries"); + xpathBuilder.append("|"); + xpathBuilder.append("./stimuliModel/stimuli/executionCondition//entries"); + xpathBuilder.append("|"); + // Activity graph items + xpathBuilder.append("./swModel/tasks/activityGraph/items//condition//entries"); + xpathBuilder.append("|"); + xpathBuilder.append("./swModel/isrs/activityGraph/items//condition//entries"); + xpathBuilder.append("|"); + xpathBuilder.append("./swModel/runnables/activityGraph/items//condition//entries"); + + final List<Element> entries = HelperUtil.getXpathResult(rootElement, xpathBuilder.toString(), Element.class, am, xsi); + + if (entries == null) { + return; + } + + // Add relation to ChannelFillCondition + + for (Element entry : entries) { + Attribute typeAttr = entry.getAttribute("type", xsi); + if ("am:ChannelFillCondition".equals(typeAttr.getValue())) { + entry.setAttribute("relation", "GREATER_THAN_OR_EQUAL"); + } + } + } + +}
diff --git a/tests/org.eclipse.app4mc.amalthea.converters.210.tests/.classpath b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/.classpath new file mode 100644 index 0000000..3e5654f --- /dev/null +++ b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/.classpath
@@ -0,0 +1,11 @@ +<?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.8"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"> + <attributes> + <attribute name="test" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="bin"/> +</classpath>
diff --git a/tests/org.eclipse.app4mc.amalthea.converters.210.tests/.project b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/.project new file mode 100644 index 0000000..051cdd8 --- /dev/null +++ b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/.project
@@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.app4mc.amalthea.converters.210.tests</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/tests/org.eclipse.app4mc.amalthea.converters.210.tests/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/<project>=UTF-8
diff --git a/tests/org.eclipse.app4mc.amalthea.converters.210.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..d4e2006 --- /dev/null +++ b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,109 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.APILeak=warning +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore +org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning +org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled +org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8
diff --git a/tests/org.eclipse.app4mc.amalthea.converters.210.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/META-INF/MANIFEST.MF new file mode 100644 index 0000000..4d00027 --- /dev/null +++ b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: APP4MC Amalthea Converters to 2.1.0 - Tests +Bundle-SymbolicName: org.eclipse.app4mc.amalthea.converters.210.tests +Bundle-Version: 2.1.0.qualifier +Fragment-Host: org.eclipse.app4mc.amalthea.converters.210 +Automatic-Module-Name: org.eclipse.app4mc.amalthea.converters.210.tests +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-Vendor: Eclipse APP4MC +Require-Bundle: org.junit;bundle-version="4.12.0" +Import-Package: org.eclipse.app4mc.amalthea.converters.common.converter, + org.eclipse.app4mc.amalthea.converters.common.tests, + org.jaxen;version="1.1.6"
diff --git a/tests/org.eclipse.app4mc.amalthea.converters.210.tests/TestModels/input/conditions/conditions.amxmi b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/TestModels/input/conditions/conditions.amxmi new file mode 100644 index 0000000..e2a6ee9 --- /dev/null +++ b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/TestModels/input/conditions/conditions.amxmi
@@ -0,0 +1,101 @@ +<?xml version="1.0" encoding="UTF-8"?> +<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:am="http://app4mc.eclipse.org/amalthea/2.0.0"> + <swModel> + <tasks xmi:id="task1?type=Task" name="task1" multipleTaskActivationLimit="0"> + <activityGraph> + <items xsi:type="am:Group" name="" ordered="true" interruptible="true"> + <items xsi:type="am:Switch"> + <entries name=""> + <items xsi:type="am:LabelAccess" data="l1?type=Label" access="write"/> + <items xsi:type="am:Switch"> + <entries name=""> + <items xsi:type="am:WhileLoop"> + <condition> + <entries xsi:type="am:ConditionConjunction"> + <entries xsi:type="am:ChannelFillCondition" channel="c1+with+long+name?type=Channel" fillLevel="4"/> + <entries xsi:type="am:ChannelFillCondition" channel="c2%2B%2B?type=Channel" fillLevel="2"/> + </entries> + </condition> + </items> + <condition> + <entries xsi:type="am:ChannelFillCondition" channel="c2?type=Channel" fillLevel="450"/> + <entries xsi:type="am:ConditionConjunction"> + <entries xsi:type="am:ChannelFillCondition" channel="c1+with+long+name?type=Channel" fillLevel="4"/> + <entries xsi:type="am:ChannelFillCondition" channel="c2%2B%2B?type=Channel" fillLevel="2"/> + </entries> + </condition> + </entries> + </items> + <condition> + <entries xsi:type="am:ChannelFillCondition" channel="c2?type=Channel" fillLevel="123"/> + </condition> + </entries> + <entries name=""> + <items xsi:type="am:ChannelSend" data="c1+with+long+name?type=Channel" elements="0"/> + <condition> + <entries xsi:type="am:ConditionConjunction"> + <entries xsi:type="am:ChannelFillCondition" channel="c1+with+long+name?type=Channel" fillLevel="4"/> + <entries xsi:type="am:ChannelFillCondition" channel="c2%2B%2B?type=Channel" fillLevel="2"/> + </entries> + </condition> + </entries> + </items> + <items xsi:type="am:WhileLoop"> + <items xsi:type="am:Ticks"> + <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="5" upperBound="10" average="7.0" pRemainPromille="0.5"/> + </items> + <condition> + <entries xsi:type="am:ChannelFillCondition" channel="c2?type=Channel" fillLevel="1"/> + </condition> + </items> + </items> + </activityGraph> + </tasks> + <runnables xmi:id="run1?type=Runnable" name="run1" callback="false" service="false"> + <activityGraph> + <items xsi:type="am:Switch"> + <entries name=""> + <items xsi:type="am:LabelAccess" data="l1?type=Label" access="write"/> + <condition> + <entries xsi:type="am:ChannelFillCondition" channel="c2?type=Channel" fillLevel="123"/> + </condition> + </entries> + <entries name=""> + <items xsi:type="am:ChannelSend" data="c1+with+long+name?type=Channel" elements="0"/> + <condition> + <entries xsi:type="am:ConditionConjunction"> + <entries xsi:type="am:ChannelFillCondition" channel="c1+with+long+name?type=Channel" fillLevel="4"/> + <entries xsi:type="am:ChannelFillCondition" channel="c2%2B%2B?type=Channel" fillLevel="2"/> + </entries> + </condition> + </entries> + </items> + <items xsi:type="am:WhileLoop"> + <items xsi:type="am:Ticks"> + <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="5" upperBound="10" average="7.0" pRemainPromille="0.5"/> + </items> + <condition> + <entries xsi:type="am:ChannelFillCondition" channel="c2?type=Channel" fillLevel="1"/> + </condition> + </items> + </activityGraph> + <executionCondition> + <entries xsi:type="am:ConditionConjunction"> + <entries xsi:type="am:ChannelFillCondition" channel="c1+with+long+name?type=Channel" fillLevel="4"/> + <entries xsi:type="am:ChannelFillCondition" channel="c2%2B%2B?type=Channel" fillLevel="2"/> + </entries> + </executionCondition> + </runnables> + <labels xmi:id="l1?type=Label" name="l1" constant="false" bVolatile="false"/> + <channels xmi:id="c1+with+long+name?type=Channel" name="c1 with long name" defaultElements="0" maxElements="0"/> + <channels xmi:id="c2?type=Channel" name="c2" defaultElements="0" maxElements="0"/> + <channels xmi:id="c2%2B%2B?type=Channel" name="c2++" defaultElements="0" maxElements="0"/> + </swModel> + <stimuliModel> + <stimuli xsi:type="am:RelativePeriodicStimulus" xmi:id="no-name?type=RelativePeriodicStimulus" name=""> + <executionCondition> + <entries xsi:type="am:ChannelFillCondition" channel="c2?type=Channel" fillLevel="99"/> + </executionCondition> + </stimuli> + </stimuliModel> +</am:Amalthea>
diff --git a/tests/org.eclipse.app4mc.amalthea.converters.210.tests/TestModels/input/namespace/model.amxmi b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/TestModels/input/namespace/model.amxmi new file mode 100644 index 0000000..dc57b6b --- /dev/null +++ b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/TestModels/input/namespace/model.amxmi
@@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<am:Amalthea xmlns:am="http://app4mc.eclipse.org/amalthea/2.0.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:version="2.0"> + <hwModel /> +</am:Amalthea>
diff --git a/tests/org.eclipse.app4mc.amalthea.converters.210.tests/build.properties b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/build.properties new file mode 100644 index 0000000..34d2e4d --- /dev/null +++ b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/build.properties
@@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .
diff --git a/tests/org.eclipse.app4mc.amalthea.converters.210.tests/no_deploy.txt b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/no_deploy.txt new file mode 100644 index 0000000..5275121 --- /dev/null +++ b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/no_deploy.txt
@@ -0,0 +1,2 @@ +Marker file for activation of profile to skip deployment of test projects. +Needed because the check for "target/surefire.properties" does not work on Jenkins. \ No newline at end of file
diff --git a/tests/org.eclipse.app4mc.amalthea.converters.210.tests/src/org/eclipse/app4mc/amalthea/converters210/tests/Abstract210ConverterTest.java b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/src/org/eclipse/app4mc/amalthea/converters210/tests/Abstract210ConverterTest.java new file mode 100644 index 0000000..2d3e1e2 --- /dev/null +++ b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/src/org/eclipse/app4mc/amalthea/converters210/tests/Abstract210ConverterTest.java
@@ -0,0 +1,36 @@ +/********************************************************************************* + * Copyright (c) 2022 Robert Bosch GmbH and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Robert Bosch GmbH - initial API and implementation + ******************************************************************************** + */ + +package org.eclipse.app4mc.amalthea.converters210.tests; + +import org.eclipse.app4mc.amalthea.converters.common.tests.AbstractConverterTest; +import org.eclipse.app4mc.amalthea.converters.common.utils.ModelVersion; + +abstract class Abstract210ConverterTest extends AbstractConverterTest { + + protected Abstract210ConverterTest(boolean canExecuteTestCase, String... xmlFilesRelative) { + super(canExecuteTestCase, xmlFilesRelative); + } + + @Override + public ModelVersion getInputModelVersion() { + return ModelVersion.VERSION_200; + } + + @Override + public ModelVersion getOutputModelVersion() { + return ModelVersion.VERSION_210; + } + +}
diff --git a/tests/org.eclipse.app4mc.amalthea.converters.210.tests/src/org/eclipse/app4mc/amalthea/converters210/tests/ConditionConverterTest.java b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/src/org/eclipse/app4mc/amalthea/converters210/tests/ConditionConverterTest.java new file mode 100644 index 0000000..70123e9 --- /dev/null +++ b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/src/org/eclipse/app4mc/amalthea/converters210/tests/ConditionConverterTest.java
@@ -0,0 +1,54 @@ +/********************************************************************************* + * Copyright (c) 2022 Robert Bosch GmbH and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Robert Bosch GmbH - initial API and implementation + ******************************************************************************** + */ + +package org.eclipse.app4mc.amalthea.converters210.tests; + +import java.util.Collection; +import java.util.Collections; + +import org.eclipse.app4mc.amalthea.converters.common.converter.NamespaceConverter; +import org.eclipse.app4mc.amalthea.converters210.impl.ConditionConverter; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.MethodSorters; +import org.junit.runners.Parameterized; + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +@RunWith(Parameterized.class) +public class ConditionConverterTest extends Abstract210ConverterTest { + + @Parameterized.Parameters(name = "{index}: Test file: {0}") + public static Collection<Object[]> getTestData() { + + return Collections.singletonList( + data("/conditions/conditions.amxmi", true)); + } + + public ConditionConverterTest(final String xmlFileRelativeLocation, final boolean canExecuteTestCase) { + super(canExecuteTestCase, xmlFileRelativeLocation); + } + + @Test + public void testConversion() { + super.testConversion(NamespaceConverter.class, ConditionConverter.class); + } + + @Override + @Test + public void verification() { + super.verification(); + } + +}
diff --git a/tests/org.eclipse.app4mc.amalthea.converters.210.tests/src/org/eclipse/app4mc/amalthea/converters210/tests/NamespaceConverterTest.java b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/src/org/eclipse/app4mc/amalthea/converters210/tests/NamespaceConverterTest.java new file mode 100644 index 0000000..46098f1 --- /dev/null +++ b/tests/org.eclipse.app4mc.amalthea.converters.210.tests/src/org/eclipse/app4mc/amalthea/converters210/tests/NamespaceConverterTest.java
@@ -0,0 +1,53 @@ +/********************************************************************************* + * Copyright (c) 2022 Robert Bosch GmbH and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Robert Bosch GmbH - initial API and implementation + ******************************************************************************** + */ + +package org.eclipse.app4mc.amalthea.converters210.tests; + +import java.util.Collection; +import java.util.Collections; + +import org.eclipse.app4mc.amalthea.converters.common.converter.NamespaceConverter; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.MethodSorters; +import org.junit.runners.Parameterized; + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +@RunWith(Parameterized.class) +public class NamespaceConverterTest extends Abstract210ConverterTest { + + @Parameterized.Parameters(name = "{index}: Test file: {0}") + public static Collection<Object[]> getTestData() { + + return Collections.singletonList( + data("/namespace/model.amxmi", true)); + } + + public NamespaceConverterTest(final String xmlFileRelativeLocation, final boolean canExecuteTestCase) { + super(canExecuteTestCase, xmlFileRelativeLocation); + } + + @Test + public void testConversion() { + super.testConversion(NamespaceConverter.class); + } + + @Override + @Test + public void verification() { + super.verification(); + } + +}