diff options
31 files changed, 676 insertions, 316 deletions
diff --git a/CONTRIBUTING b/CONTRIBUTING new file mode 100644 index 0000000..3be272f --- /dev/null +++ b/CONTRIBUTING @@ -0,0 +1,51 @@ +# Contributing to Edapt + +Thanks for your interest in this project. + +## Project description + +Eclipse Edapt defines APIs and provides implementations for the following +functionality: + +* https://projects.eclipse.org/projects/modeling.edapt + +## Developer resources + +Information regarding source code management, builds, coding standards, and +more. + +* https://projects.eclipse.org/projects/modeling.edapt/developer + +The project maintains the following source code repositories + +* http://git.eclipse.org/c/edapt/org.eclipse.emf.edapt.git + +This project uses Bugzilla to track ongoing development and issues. + +* Search for issues: https://eclipse.org/bugs/buglist.cgi?product=Edapt +* Create a new report: https://eclipse.org/bugs/enter_bug.cgi?product=Edapt + +Be sure to search for existing bugs before you create another one. Remember that +contributions are always welcome! + +## Eclipse Contributor Agreement + +Before your contribution can be accepted by the project team contributors must +electronically sign the Eclipse Contributor Agreement (ECA). + +* http://www.eclipse.org/legal/ECA.php + +Commits that are provided by non-committers must have a Signed-off-by field in +the footer indicating that the author is aware of the terms by which the +contribution has been provided to the project. The non-committer must +additionally have an Eclipse Foundation account and must have a signed Eclipse +Contributor Agreement (ECA) on file. + +For more information, please see the Eclipse Committer Handbook: +https://www.eclipse.org/projects/handbook/#resources-commit + +## Contact + +Contact the project developers via the project's "dev" list. + +* https://dev.eclipse.org/mailman/listinfo/emft-dev @@ -0,0 +1,210 @@ +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.
\ No newline at end of file @@ -0,0 +1,40 @@ +# Notices for Edapt + +This content is produced and maintained by the Eclipse Edapt project. + +* Project home: https://projects.eclipse.org/projects/modeling.edapt + +## Trademarks + +Eclipse Edapt, and Edapt are trademarks of the Eclipse Foundation. + +## Copyright + +All content is the property of the respective authors or their employers. For +more information regarding authorship of content, please consult the listed +source code repository logs. + +## Declared Project Licenses + +This program and the accompanying materials are made available under the terms +of the Eclipse Public License v. 1.0 which is available at +http://www.eclipse.org/legal/epl-v10.html. + +SPDX-License-Identifier: EPL-1.0 + +## Source Code + +The project maintains the following source code repositories: + +* http://git.eclipse.org/c/edapt/org.eclipse.emf.edapt.git + +## Third-party Content + +## Cryptography + +Content may contain encryption software. The country in which you are currently +may have restrictions on the import, possession, and use, and/or re-export to +another country, of encryption software. BEFORE using any encryption software, +please check the country's laws, regulations and policies concerning the import, +possession, or use, and re-export of encryption software, to see if this is +permitted. diff --git a/examples/library.edit/META-INF/MANIFEST.MF b/examples/library.edit/META-INF/MANIFEST.MF index d1cf422..e4aca0f 100644 --- a/examples/library.edit/META-INF/MANIFEST.MF +++ b/examples/library.edit/META-INF/MANIFEST.MF @@ -13,3 +13,4 @@ Require-Bundle: org.eclipse.core.runtime, library;visibility:=reexport,
org.eclipse.emf.edit;visibility:=reexport
Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: library.edit
diff --git a/examples/library.editor/META-INF/MANIFEST.MF b/examples/library.editor/META-INF/MANIFEST.MF index 6338a7d..6bcf724 100644 --- a/examples/library.editor/META-INF/MANIFEST.MF +++ b/examples/library.editor/META-INF/MANIFEST.MF @@ -16,3 +16,4 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.emf.edit.ui;visibility:=reexport,
org.eclipse.ui.ide;visibility:=reexport
Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: library.editor
diff --git a/examples/library/META-INF/MANIFEST.MF b/examples/library/META-INF/MANIFEST.MF index b7d729a..ef084a5 100644 --- a/examples/library/META-INF/MANIFEST.MF +++ b/examples/library/META-INF/MANIFEST.MF @@ -14,3 +14,4 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.emf.ecore;visibility:=reexport,
org.eclipse.emf.edapt.history;bundle-version="0.3.0";visibility:=reexport
Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: library
diff --git a/examples/statemachine_ecoop.edit/META-INF/MANIFEST.MF b/examples/statemachine_ecoop.edit/META-INF/MANIFEST.MF index 03c75ff..a3955c0 100644 --- a/examples/statemachine_ecoop.edit/META-INF/MANIFEST.MF +++ b/examples/statemachine_ecoop.edit/META-INF/MANIFEST.MF @@ -13,3 +13,4 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.emf.edit;visibility:=reexport
Eclipse-LazyStart: true
Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: statemachine_ecoop.edit
diff --git a/examples/statemachine_ecoop.editor/META-INF/MANIFEST.MF b/examples/statemachine_ecoop.editor/META-INF/MANIFEST.MF index 94d096d..3299b7c 100644 --- a/examples/statemachine_ecoop.editor/META-INF/MANIFEST.MF +++ b/examples/statemachine_ecoop.editor/META-INF/MANIFEST.MF @@ -18,3 +18,4 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.emf.edapt.migration.ui;bundle-version="0.3.0"
Eclipse-LazyStart: true
Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: statemachine_ecoop.editor
diff --git a/examples/statemachine_ecoop/META-INF/MANIFEST.MF b/examples/statemachine_ecoop/META-INF/MANIFEST.MF index 1124fa4..6a974a0 100644 --- a/examples/statemachine_ecoop/META-INF/MANIFEST.MF +++ b/examples/statemachine_ecoop/META-INF/MANIFEST.MF @@ -14,3 +14,4 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.emf.edapt.history;bundle-version="0.3.0"
Eclipse-LazyStart: true
Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: statemachine_ecoop
diff --git a/examples/ttc_gmf/META-INF/MANIFEST.MF b/examples/ttc_gmf/META-INF/MANIFEST.MF index 72bfa27..3d7f845 100644 --- a/examples/ttc_gmf/META-INF/MANIFEST.MF +++ b/examples/ttc_gmf/META-INF/MANIFEST.MF @@ -5,3 +5,4 @@ Bundle-SymbolicName: ttc_gmf;singleton:=true Bundle-Version: 0.1.0
Require-Bundle: org.eclipse.emf.ecore,
org.eclipse.emf.edapt.history;bundle-version="0.3.0"
+Automatic-Module-Name: ttc_gmf
diff --git a/examples/ttc_helloworld/META-INF/MANIFEST.MF b/examples/ttc_helloworld/META-INF/MANIFEST.MF index 639d8aa..643dbf5 100644 --- a/examples/ttc_helloworld/META-INF/MANIFEST.MF +++ b/examples/ttc_helloworld/META-INF/MANIFEST.MF @@ -6,3 +6,4 @@ Bundle-Version: 0.1.0 Require-Bundle: org.eclipse.emf.ecore,
org.eclipse.emf.edapt.migration;bundle-version="0.3.0",
org.eclipse.emf.edapt.history;bundle-version="0.3.0"
+Automatic-Module-Name: ttc_helloworld
diff --git a/examples/ttc_reengineering/META-INF/MANIFEST.MF b/examples/ttc_reengineering/META-INF/MANIFEST.MF index 3a8f42f..07dc847 100644 --- a/examples/ttc_reengineering/META-INF/MANIFEST.MF +++ b/examples/ttc_reengineering/META-INF/MANIFEST.MF @@ -6,3 +6,4 @@ Bundle-Version: 0.1.0 Require-Bundle: org.eclipse.emf.ecore,
org.eclipse.emf.edapt.migration,
org.eclipse.emf.edapt.history
+Automatic-Module-Name: ttc_reengineering
diff --git a/plugins/org.eclipse.emf.edapt.common.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.common.ui/META-INF/MANIFEST.MF index 993beca..7631940 100644 --- a/plugins/org.eclipse.emf.edapt.common.ui/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.edapt.common.ui/META-INF/MANIFEST.MF @@ -13,3 +13,4 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Export-Package: org.eclipse.emf.edapt.common.ui;version="1.3.1";x-friends:="org.eclipse.emf.edapt.history.editor,org.eclipse.emf.edapt.migration.ui" Bundle-Vendor: %providerName Bundle-Localization: plugin +Automatic-Module-Name: org.eclipse.emf.edapt.common.ui diff --git a/plugins/org.eclipse.emf.edapt.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.common/META-INF/MANIFEST.MF index 8ef6e0f..b0d4360 100644 --- a/plugins/org.eclipse.emf.edapt.common/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.edapt.common/META-INF/MANIFEST.MF @@ -24,3 +24,4 @@ Export-Package: org.eclipse.emf.edapt.common;version="1.3.1", Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Bundle-Vendor: %providerName Bundle-Localization: plugin +Automatic-Module-Name: org.eclipse.emf.edapt.common diff --git a/plugins/org.eclipse.emf.edapt.declaration.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.declaration.edit/META-INF/MANIFEST.MF index 77a438d..3ebc68a 100644 --- a/plugins/org.eclipse.emf.edapt.declaration.edit/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.edapt.declaration.edit/META-INF/MANIFEST.MF @@ -18,3 +18,4 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)", org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport
Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: org.eclipse.emf.edapt.declaration.edit
diff --git a/plugins/org.eclipse.emf.edapt.declaration.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.declaration.editor/META-INF/MANIFEST.MF index 759d402..72e2a49 100644 --- a/plugins/org.eclipse.emf.edapt.declaration.editor/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.edapt.declaration.editor/META-INF/MANIFEST.MF @@ -43,3 +43,4 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)", org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
org.eclipse.emf.edapt.common.ui;bundle-version="[1.3.1,2.0.0)"
Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: org.eclipse.emf.edapt.declaration.editor
diff --git a/plugins/org.eclipse.emf.edapt.declaration/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.declaration/META-INF/MANIFEST.MF index 17261ab..f6aff29 100644 --- a/plugins/org.eclipse.emf.edapt.declaration/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.edapt.declaration/META-INF/MANIFEST.MF @@ -29,3 +29,4 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)", org.eclipse.emf.edapt.migration;bundle-version="[1.3.1,2.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.eclipse.emf.edapt.declaration.DeclarationPlugin$Implementation
+Automatic-Module-Name: org.eclipse.emf.edapt.declaration
diff --git a/plugins/org.eclipse.emf.edapt.history.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.history.edit/META-INF/MANIFEST.MF index db4bbbe..3a13c39 100644 --- a/plugins/org.eclipse.emf.edapt.history.edit/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.edapt.history.edit/META-INF/MANIFEST.MF @@ -23,3 +23,4 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)", org.eclipse.emf.compare;bundle-version="[3.0.0,4.0.0)",
org.junit;bundle-version="[4.0.0,5.0.0)"
Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: org.eclipse.emf.edapt.history.edit
diff --git a/plugins/org.eclipse.emf.edapt.history.edit/src/org/eclipse/emf/edapt/history/recorder/CommandStackListener.java b/plugins/org.eclipse.emf.edapt.history.edit/src/org/eclipse/emf/edapt/history/recorder/CommandStackListener.java index 3b7bb75..33a1691 100644 --- a/plugins/org.eclipse.emf.edapt.history.edit/src/org/eclipse/emf/edapt/history/recorder/CommandStackListener.java +++ b/plugins/org.eclipse.emf.edapt.history.edit/src/org/eclipse/emf/edapt/history/recorder/CommandStackListener.java @@ -142,6 +142,9 @@ public class CommandStackListener implements * not detached due to the save mechanism which reloads the metamodel. */ private boolean checkRecorder() { + if (metamodelRecorder == null || metamodelRecorder.getElements().isEmpty()) { + return false; + } return !metamodelRecorder.getElements().get(0).eIsProxy(); } diff --git a/plugins/org.eclipse.emf.edapt.history.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.history.editor/META-INF/MANIFEST.MF index 4bcb8a2..ccf069b 100644 --- a/plugins/org.eclipse.emf.edapt.history.editor/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.edapt.history.editor/META-INF/MANIFEST.MF @@ -25,3 +25,4 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)", org.eclipse.compare;bundle-version="[3.5.400,4.0.0)",
org.eclipse.emf.compare;bundle-version="[3.0.0,4.0.0)"
Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: org.eclipse.emf.edapt.history.editor
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/generated-src/org/eclipse/emf/edapt/history/presentation/HistoryEditor.java b/plugins/org.eclipse.emf.edapt.history.editor/generated-src/org/eclipse/emf/edapt/history/presentation/HistoryEditor.java index e9a5196..f552507 100644 --- a/plugins/org.eclipse.emf.edapt.history.editor/generated-src/org/eclipse/emf/edapt/history/presentation/HistoryEditor.java +++ b/plugins/org.eclipse.emf.edapt.history.editor/generated-src/org/eclipse/emf/edapt/history/presentation/HistoryEditor.java @@ -249,48 +249,45 @@ public class HistoryEditor * * @generated */ - protected IPartListener partListener = - new IPartListener() { - @Override - public void partActivated(IWorkbenchPart p) { - if (p instanceof ContentOutline) { - if (((ContentOutline) p).getCurrentPage() == contentOutlinePage) { - getActionBarContributor().setActiveEditor(HistoryEditor.this); + protected IPartListener partListener = new IPartListener() { + @Override + public void partActivated(IWorkbenchPart p) { + if (p instanceof ContentOutline) { + if (((ContentOutline) p).getCurrentPage() == contentOutlinePage) { + getActionBarContributor().setActiveEditor(HistoryEditor.this); - setCurrentViewer(contentOutlineViewer); - } + setCurrentViewer(contentOutlineViewer); } - else if (p instanceof PropertySheet) { - if (((PropertySheet) p).getCurrentPage() == propertySheetPage) { - getActionBarContributor().setActiveEditor(HistoryEditor.this); - handleActivate(); - } - } - else if (p == HistoryEditor.this) { + } else if (p instanceof PropertySheet) { + if (((PropertySheet) p).getCurrentPage() == propertySheetPage) { + getActionBarContributor().setActiveEditor(HistoryEditor.this); handleActivate(); } + } else if (p == HistoryEditor.this) { + handleActivate(); } + } - @Override - public void partBroughtToTop(IWorkbenchPart p) { - // Ignore. - } + @Override + public void partBroughtToTop(IWorkbenchPart p) { + // Ignore. + } - @Override - public void partClosed(IWorkbenchPart p) { - // Ignore. - } + @Override + public void partClosed(IWorkbenchPart p) { + // Ignore. + } - @Override - public void partDeactivated(IWorkbenchPart p) { - // Ignore. - } + @Override + public void partDeactivated(IWorkbenchPart p) { + // Ignore. + } - @Override - public void partOpened(IWorkbenchPart p) { - // Ignore. - } - }; + @Override + public void partOpened(IWorkbenchPart p) { + // Ignore. + } + }; /** * Resources that have been removed since last activation. @@ -344,52 +341,48 @@ public class HistoryEditor * * @generated */ - protected EContentAdapter problemIndicationAdapter = - new EContentAdapter() { - @Override - public void notifyChanged(Notification notification) { - if (notification.getNotifier() instanceof Resource) { - switch (notification.getFeatureID(Resource.class)) { - case Resource.RESOURCE__IS_LOADED: - case Resource.RESOURCE__ERRORS: - case Resource.RESOURCE__WARNINGS: { - final Resource resource = (Resource) notification.getNotifier(); - final Diagnostic diagnostic = analyzeResourceProblems(resource, null); - if (diagnostic.getSeverity() != Diagnostic.OK) { - resourceToDiagnosticMap.put(resource, diagnostic); - } - else { - resourceToDiagnosticMap.remove(resource); - } - - if (updateProblemIndication) { - getSite().getShell().getDisplay().asyncExec - (new Runnable() { - @Override - public void run() { - updateProblemIndication(); - } - }); - } - break; + protected EContentAdapter problemIndicationAdapter = new EContentAdapter() { + @Override + public void notifyChanged(Notification notification) { + if (notification.getNotifier() instanceof Resource) { + switch (notification.getFeatureID(Resource.class)) { + case Resource.RESOURCE__IS_LOADED: + case Resource.RESOURCE__ERRORS: + case Resource.RESOURCE__WARNINGS: { + final Resource resource = (Resource) notification.getNotifier(); + final Diagnostic diagnostic = analyzeResourceProblems(resource, null); + if (diagnostic.getSeverity() != Diagnostic.OK) { + resourceToDiagnosticMap.put(resource, diagnostic); + } else { + resourceToDiagnosticMap.remove(resource); } + + if (updateProblemIndication) { + getSite().getShell().getDisplay().asyncExec(new Runnable() { + @Override + public void run() { + updateProblemIndication(); + } + }); } + break; } - else { - super.notifyChanged(notification); } + } else { + super.notifyChanged(notification); } + } - @Override - protected void setTarget(Resource target) { - basicSetTarget(target); - } + @Override + protected void setTarget(Resource target) { + basicSetTarget(target); + } - @Override - protected void unsetTarget(Resource target) { - basicUnsetTarget(target); - } - }; + @Override + protected void unsetTarget(Resource target) { + basicUnsetTarget(target); + } + }; /** * This listens for workspace changes. @@ -398,82 +391,77 @@ public class HistoryEditor * * @generated */ - protected IResourceChangeListener resourceChangeListener = - new IResourceChangeListener() { - @Override - public void resourceChanged(IResourceChangeEvent event) { - final IResourceDelta delta = event.getDelta(); - try { - class ResourceDeltaVisitor implements IResourceDeltaVisitor { - protected ResourceSet resourceSet = editingDomain.getResourceSet(); - protected Collection<Resource> changedResources = new ArrayList<Resource>(); - protected Collection<Resource> removedResources = new ArrayList<Resource>(); + protected IResourceChangeListener resourceChangeListener = new IResourceChangeListener() { + @Override + public void resourceChanged(IResourceChangeEvent event) { + final IResourceDelta delta = event.getDelta(); + try { + class ResourceDeltaVisitor implements IResourceDeltaVisitor { + protected ResourceSet resourceSet = editingDomain.getResourceSet(); + protected Collection<Resource> changedResources = new ArrayList<Resource>(); + protected Collection<Resource> removedResources = new ArrayList<Resource>(); - @Override - public boolean visit(IResourceDelta delta) { - if (delta.getResource().getType() == IResource.FILE) { - if (delta.getKind() == IResourceDelta.REMOVED || - delta.getKind() == IResourceDelta.CHANGED + @Override + public boolean visit(IResourceDelta delta) { + if (delta.getResource().getType() == IResource.FILE) { + if (delta.getKind() == IResourceDelta.REMOVED || + delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) { - final Resource resource = resourceSet.getResource( - URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false); - if (resource != null) { - if (delta.getKind() == IResourceDelta.REMOVED) { - removedResources.add(resource); - } - else if (!savedResources.remove(resource)) { - changedResources.add(resource); - } + final Resource resource = resourceSet.getResource( + URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false); + if (resource != null) { + if (delta.getKind() == IResourceDelta.REMOVED) { + removedResources.add(resource); + } else if (!savedResources.remove(resource)) { + changedResources.add(resource); } } } - - return true; - } - - public Collection<Resource> getChangedResources() { - return changedResources; } - public Collection<Resource> getRemovedResources() { - return removedResources; - } + return true; } - final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor(); - delta.accept(visitor); - - if (!visitor.getRemovedResources().isEmpty()) { - getSite().getShell().getDisplay().asyncExec - (new Runnable() { - @Override - public void run() { - removedResources.addAll(visitor.getRemovedResources()); - if (!isDirty()) { - getSite().getPage().closeEditor(HistoryEditor.this, false); - } - } - }); + public Collection<Resource> getChangedResources() { + return changedResources; } - if (!visitor.getChangedResources().isEmpty()) { - getSite().getShell().getDisplay().asyncExec - (new Runnable() { - @Override - public void run() { - changedResources.addAll(visitor.getChangedResources()); - if (getSite().getPage().getActiveEditor() == HistoryEditor.this) { - handleActivate(); - } - } - }); + public Collection<Resource> getRemovedResources() { + return removedResources; } } - catch (final CoreException exception) { - HistoryEditorPlugin.INSTANCE.log(exception); + + final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor(); + delta.accept(visitor); + + if (!visitor.getRemovedResources().isEmpty()) { + getSite().getShell().getDisplay().asyncExec(new Runnable() { + @Override + public void run() { + removedResources.addAll(visitor.getRemovedResources()); + if (!isDirty()) { + getSite().getPage().closeEditor(HistoryEditor.this, false); + } + } + }); + } + + if (!visitor.getChangedResources().isEmpty()) { + getSite().getShell().getDisplay().asyncExec(new Runnable() { + @Override + public void run() { + changedResources.addAll(visitor.getChangedResources()); + if (getSite().getPage().getActiveEditor() == HistoryEditor.this) { + handleActivate(); + } + } + }); } + } catch (final CoreException exception) { + HistoryEditorPlugin.INSTANCE.log(exception); } - }; + } + }; /** * Handles activation of the editor or it's associated views. @@ -496,14 +484,12 @@ public class HistoryEditor if (!removedResources.isEmpty()) { if (handleDirtyConflict()) { getSite().getPage().closeEditor(HistoryEditor.this, false); - } - else { + } else { removedResources.clear(); changedResources.clear(); savedResources.clear(); } - } - else if (!changedResources.isEmpty()) { + } else if (!changedResources.isEmpty()) { changedResources.removeAll(savedResources); handleChangedResources(); changedResources.clear(); @@ -557,12 +543,11 @@ public class HistoryEditor */ protected void updateProblemIndication() { if (updateProblemIndication) { - final BasicDiagnostic diagnostic = - new BasicDiagnostic - (Diagnostic.OK, "org.eclipse.emf.edapt.history.editor", //$NON-NLS-1$ - 0, - null, - new Object[] { editingDomain.getResourceSet() }); + final BasicDiagnostic diagnostic = new BasicDiagnostic(Diagnostic.OK, + "org.eclipse.emf.edapt.history.editor", //$NON-NLS-1$ + 0, + null, + new Object[] { editingDomain.getResourceSet() }); for (final Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) { if (childDiagnostic.getSeverity() != Diagnostic.OK) { diagnostic.add(childDiagnostic); @@ -575,8 +560,7 @@ public class HistoryEditor if (diagnostic.getSeverity() != Diagnostic.OK) { setActivePage(lastEditorPage); } - } - else if (diagnostic.getSeverity() != Diagnostic.OK) { + } else if (diagnostic.getSeverity() != Diagnostic.OK) { final ProblemEditorPart problemEditorPart = new ProblemEditorPart(); problemEditorPart.setDiagnostic(diagnostic); problemEditorPart.setMarkerHelper(markerHelper); @@ -611,10 +595,9 @@ public class HistoryEditor * @generated */ protected boolean handleDirtyConflict() { - return MessageDialog.openQuestion - (getSite().getShell(), - getString("_UI_FileConflict_label"), //$NON-NLS-1$ - getString("_WARN_FileConflict")); //$NON-NLS-1$ + return MessageDialog.openQuestion(getSite().getShell(), + getString("_UI_FileConflict_label"), //$NON-NLS-1$ + getString("_WARN_FileConflict")); //$NON-NLS-1$ } /** @@ -654,30 +637,28 @@ public class HistoryEditor // Add a listener to set the most recent command's affected objects to be the selection of the viewer with // focus. // - commandStack.addCommandStackListener - (new CommandStackListener() { - @Override - public void commandStackChanged(final EventObject event) { - getContainer().getDisplay().asyncExec - (new Runnable() { - @Override - public void run() { - firePropertyChange(IEditorPart.PROP_DIRTY); - - // Try to select the affected objects. - // - final Command mostRecentCommand = ((CommandStack) event.getSource()) - .getMostRecentCommand(); - if (mostRecentCommand != null) { - setSelectionToViewer(mostRecentCommand.getAffectedObjects()); - } - if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) { - propertySheetPage.refresh(); - } - } - }); - } - }); + commandStack.addCommandStackListener(new CommandStackListener() { + @Override + public void commandStackChanged(final EventObject event) { + getContainer().getDisplay().asyncExec(new Runnable() { + @Override + public void run() { + firePropertyChange(IEditorPart.PROP_DIRTY); + + // Try to select the affected objects. + // + final Command mostRecentCommand = ((CommandStack) event.getSource()) + .getMostRecentCommand(); + if (mostRecentCommand != null) { + setSelectionToViewer(mostRecentCommand.getAffectedObjects()); + } + if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) { + propertySheetPage.refresh(); + } + } + }); + } + }); // Create the editing domain with a special command stack. // @@ -708,17 +689,16 @@ public class HistoryEditor // Make sure it's okay. // if (theSelection != null && !theSelection.isEmpty()) { - final Runnable runnable = - new Runnable() { - @Override - public void run() { - // Try to select the items in the current content viewer of the editor. - // - if (currentViewer != null) { - currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true); - } + final Runnable runnable = new Runnable() { + @Override + public void run() { + // Try to select the items in the current content viewer of the editor. + // + if (currentViewer != null) { + currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true); } - }; + } + }; getSite().getShell().getDisplay().asyncExec(runnable); } } @@ -817,15 +797,14 @@ public class HistoryEditor if (selectionChangedListener == null) { // Create the listener on demand. // - selectionChangedListener = - new ISelectionChangedListener() { - // This just notifies those things that are affected by the section. - // - @Override - public void selectionChanged(SelectionChangedEvent selectionChangedEvent) { - setSelection(selectionChangedEvent.getSelection()); - } - }; + selectionChangedListener = new ISelectionChangedListener() { + // This just notifies those things that are affected by the section. + // + @Override + public void selectionChanged(SelectionChangedEvent selectionChangedEvent) { + setSelection(selectionChangedEvent.getSelection()); + } + }; } // Stop listening to the old one. @@ -921,22 +900,19 @@ public class HistoryEditor */ public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) { if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) { - final BasicDiagnostic basicDiagnostic = - new BasicDiagnostic - (Diagnostic.ERROR, "org.eclipse.emf.edapt.history.editor", //$NON-NLS-1$ - 0, - getString("_UI_CreateModelError_message", resource.getURI()), //$NON-NLS-1$ - new Object[] { exception == null ? (Object) resource : exception }); + final BasicDiagnostic basicDiagnostic = new BasicDiagnostic(Diagnostic.ERROR, + "org.eclipse.emf.edapt.history.editor", //$NON-NLS-1$ + 0, + getString("_UI_CreateModelError_message", resource.getURI()), //$NON-NLS-1$ + new Object[] { exception == null ? (Object) resource : exception }); basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true)); return basicDiagnostic; - } - else if (exception != null) { + } else if (exception != null) { return new BasicDiagnostic(Diagnostic.ERROR, "org.eclipse.emf.edapt.history.editor", //$NON-NLS-1$ 0, getString("_UI_CreateModelError_message", resource.getURI()), //$NON-NLS-1$ new Object[] { exception }); - } - else { + } else { return Diagnostic.OK_INSTANCE; } } @@ -975,39 +951,38 @@ public class HistoryEditor final int pageIndex = addPage(tree); setPageText(pageIndex, getString("_UI_SelectionPage_label")); //$NON-NLS-1$ - getSite().getShell().getDisplay().asyncExec - (new Runnable() { - @Override - public void run() { + getSite().getShell().getDisplay().asyncExec(new Runnable() { + @Override + public void run() { + if (getPageCount() > 0) { setActivePage(0); } - }); + } + }); } // Ensures that this editor will only display the page's tab // area if there are more than one page // - getContainer().addControlListener - (new ControlAdapter() { - boolean guard = false; + getContainer().addControlListener(new ControlAdapter() { + boolean guard = false; - @Override - public void controlResized(ControlEvent event) { - if (!guard) { - guard = true; - hideTabs(); - guard = false; - } + @Override + public void controlResized(ControlEvent event) { + if (!guard) { + guard = true; + hideTabs(); + guard = false; } - }); + } + }); - getSite().getShell().getDisplay().asyncExec - (new Runnable() { - @Override - public void run() { - updateProblemIndication(); - } - }); + getSite().getShell().getDisplay().asyncExec(new Runnable() { + @Override + public void run() { + updateProblemIndication(); + } + }); } /** @@ -1075,14 +1050,11 @@ public class HistoryEditor public Object getAdapter(Class key) { if (key.equals(IContentOutlinePage.class)) { return showOutlineView() ? getContentOutlinePage() : null; - } - else if (key.equals(IPropertySheetPage.class)) { + } else if (key.equals(IPropertySheetPage.class)) { return getPropertySheetPage(); - } - else if (key.equals(IGotoMarker.class)) { + } else if (key.equals(IGotoMarker.class)) { return this; - } - else { + } else { return super.getAdapter(key); } } @@ -1141,15 +1113,14 @@ public class HistoryEditor // Listen to selection so that we can handle it is a special way. // - contentOutlinePage.addSelectionChangedListener - (new ISelectionChangedListener() { - // This ensures that we handle selections correctly. - // - @Override - public void selectionChanged(SelectionChangedEvent event) { - handleContentOutlineSelection(event.getSelection()); - } - }); + contentOutlinePage.addSelectionChangedListener(new ISelectionChangedListener() { + // This ensures that we handle selections correctly. + // + @Override + public void selectionChanged(SelectionChangedEvent event) { + handleContentOutlineSelection(event.getSelection()); + } + }); } return contentOutlinePage; @@ -1164,20 +1135,19 @@ public class HistoryEditor */ public IPropertySheetPage getPropertySheetPage() { if (propertySheetPage == null) { - propertySheetPage = - new ExtendedPropertySheetPage(editingDomain) { - @Override - public void setSelectionToViewer(List<?> selection) { - HistoryEditor.this.setSelectionToViewer(selection); - HistoryEditor.this.setFocus(); - } + propertySheetPage = new ExtendedPropertySheetPage(editingDomain) { + @Override + public void setSelectionToViewer(List<?> selection) { + HistoryEditor.this.setSelectionToViewer(selection); + HistoryEditor.this.setFocus(); + } - @Override - public void setActionBars(IActionBars actionBars) { - super.setActionBars(actionBars); - getActionBarContributor().shareGlobalActions(this, actionBars); - } - }; + @Override + public void setActionBars(IActionBars actionBars) { + super.setActionBars(actionBars); + getActionBarContributor().shareGlobalActions(this, actionBars); + } + }; propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory)); } @@ -1240,33 +1210,31 @@ public class HistoryEditor // Do the work within an operation because this is a long running activity that modifies the workbench. // - final WorkspaceModifyOperation operation = - new WorkspaceModifyOperation() { - // This is the method that gets invoked when the operation runs. + final WorkspaceModifyOperation operation = new WorkspaceModifyOperation() { + // This is the method that gets invoked when the operation runs. + // + @Override + public void execute(IProgressMonitor monitor) { + // Save the resources to the file system. // - @Override - public void execute(IProgressMonitor monitor) { - // Save the resources to the file system. - // - boolean first = true; - for (final Resource resource : editingDomain.getResourceSet().getResources()) { - if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) - && !editingDomain.isReadOnly(resource)) { - try { - final long timeStamp = resource.getTimeStamp(); - resource.save(saveOptions); - if (resource.getTimeStamp() != timeStamp) { - savedResources.add(resource); - } - } - catch (final Exception exception) { - resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + boolean first = true; + for (final Resource resource : editingDomain.getResourceSet().getResources()) { + if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) + && !editingDomain.isReadOnly(resource)) { + try { + final long timeStamp = resource.getTimeStamp(); + resource.save(saveOptions); + if (resource.getTimeStamp() != timeStamp) { + savedResources.add(resource); } - first = false; + } catch (final Exception exception) { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); } + first = false; } } - }; + } + }; updateProblemIndication = false; try { @@ -1352,10 +1320,9 @@ public class HistoryEditor editingDomain.getResourceSet().getResources().get(0).setURI(uri); setInputWithNotify(editorInput); setPartName(editorInput.getName()); - final IProgressMonitor progressMonitor = - getActionBars().getStatusLineManager() != null ? - getActionBars().getStatusLineManager().getProgressMonitor() : - new NullProgressMonitor(); + final IProgressMonitor progressMonitor = getActionBars().getStatusLineManager() != null + ? getActionBars().getStatusLineManager().getProgressMonitor() + : new NullProgressMonitor(); doSave(progressMonitor); } @@ -1473,8 +1440,9 @@ public class HistoryEditor * @generated */ public void setStatusLineManager(ISelection selection) { - final IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ? - contentOutlineStatusLineManager : getActionBars().getStatusLineManager(); + final IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer + ? contentOutlineStatusLineManager + : getActionBars().getStatusLineManager(); if (statusLineManager != null) { if (selection instanceof IStructuredSelection) { @@ -1496,8 +1464,7 @@ public class HistoryEditor break; } } - } - else { + } else { statusLineManager.setMessage(""); //$NON-NLS-1$ } } diff --git a/plugins/org.eclipse.emf.edapt.history/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.history/META-INF/MANIFEST.MF index 9af8f14..32aa9eb 100644 --- a/plugins/org.eclipse.emf.edapt.history/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.edapt.history/META-INF/MANIFEST.MF @@ -36,3 +36,4 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)", org.eclipse.emf.edapt.migration;bundle-version="[1.3.1,2.0.0)";visibility:=reexport
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.eclipse.emf.edapt.spi.history.HistoryPlugin$Implementation
+Automatic-Module-Name: org.eclipse.emf.edapt.history
diff --git a/plugins/org.eclipse.emf.edapt.history/src/org/eclipse/emf/edapt/history/util/MoveChecker.java b/plugins/org.eclipse.emf.edapt.history/src/org/eclipse/emf/edapt/history/util/MoveChecker.java index a9b93a8..97e9e8b 100644 --- a/plugins/org.eclipse.emf.edapt.history/src/org/eclipse/emf/edapt/history/util/MoveChecker.java +++ b/plugins/org.eclipse.emf.edapt.history/src/org/eclipse/emf/edapt/history/util/MoveChecker.java @@ -47,8 +47,12 @@ public class MoveChecker { * change or release */ public static boolean canBeMoved(List<Change> changes, EObject target) { - final List<Change> children = getChanges(getChildren(target)); - return canBeMoved(changes, target, children.size()); + try { + final List<Change> children = getChanges(getChildren(target)); + return canBeMoved(changes, target, children.size()); + } catch (final IllegalStateException ex) { + return false; + } } /** @@ -57,33 +61,37 @@ public class MoveChecker { */ public static boolean canBeMoved(List<Change> changes, EObject target, int targetIndex) { - if (!allowedTarget(changes, target)) { - return false; - } - for (final Change change : changes) { - final EObject source = change.eContainer(); - final int sourceIndex = getIndex(change); - - if (source == target && sourceIndex == targetIndex) { - // nothing has to be done - } else if (before(source, sourceIndex, target, targetIndex)) { - final List<Change> difference = getDifference(source, - sourceIndex + 1, target, targetIndex); - difference.removeAll(changes); - if (DependencyChecker.depends(difference, Collections - .singletonList(change))) { - return false; - } - } else { - final List<Change> difference = getDifference(target, targetIndex, - source, sourceIndex - 1); - difference.removeAll(changes); - if (DependencyChecker.depends(change, difference)) { - return false; + try { + if (!allowedTarget(changes, target)) { + return false; + } + for (final Change change : changes) { + final EObject source = change.eContainer(); + final int sourceIndex = getIndex(change); + + if (source == target && sourceIndex == targetIndex) { + // nothing has to be done + } else if (before(source, sourceIndex, target, targetIndex)) { + final List<Change> difference = getDifference(source, + sourceIndex + 1, target, targetIndex); + difference.removeAll(changes); + if (DependencyChecker.depends(difference, Collections + .singletonList(change))) { + return false; + } + } else { + final List<Change> difference = getDifference(target, targetIndex, + source, sourceIndex - 1); + difference.removeAll(changes); + if (DependencyChecker.depends(change, difference)) { + return false; + } } } + return true; + } catch (final IllegalStateException ex) { + return false; } - return true; } /** @@ -152,7 +160,8 @@ public class MoveChecker { difference.addAll(changes); difference.addAll(getDifference(source.eContainer(), source instanceof Delete ? getIndex(source) - : getIndex(source) + 1, target, targetIndex)); + : getIndex(source) + 1, + target, targetIndex)); } return difference; } @@ -186,6 +195,9 @@ public class MoveChecker { * Get the index of an element within its container element */ private static int getIndex(EObject element) { + if (element == null || element.eContainer() == null || element.eContainmentFeature() == null) { + throw new IllegalStateException(); + } return ((List) element.eContainer().eGet(element.eContainmentFeature())) .indexOf(element); } diff --git a/plugins/org.eclipse.emf.edapt.migration.test/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.migration.test/META-INF/MANIFEST.MF index 3b38230..30e1a77 100644 --- a/plugins/org.eclipse.emf.edapt.migration.test/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.edapt.migration.test/META-INF/MANIFEST.MF @@ -20,3 +20,4 @@ Export-Package: org.eclipse.emf.edapt.migration.test;version="1.3.1";x-internal: org.eclipse.emf.edapt.migration.test.impl;version="1.3.1";x-internal:=true, org.eclipse.emf.edapt.migration.test.util;version="1.3.1";x-internal:=true Bundle-Vendor: %providerName +Automatic-Module-Name: org.eclipse.emf.edapt.migration.test diff --git a/plugins/org.eclipse.emf.edapt.migration.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.migration.ui/META-INF/MANIFEST.MF index af8918f..d76203f 100644 --- a/plugins/org.eclipse.emf.edapt.migration.ui/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.edapt.migration.ui/META-INF/MANIFEST.MF @@ -19,3 +19,4 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Export-Package: org.eclipse.emf.edapt.migration.ui;version="1.3.1";x-internal:=true Bundle-Vendor: %providerName Bundle-Localization: plugin +Automatic-Module-Name: org.eclipse.emf.edapt.migration.ui diff --git a/plugins/org.eclipse.emf.edapt.migration/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.migration/META-INF/MANIFEST.MF index fab1969..f27cdaf 100644 --- a/plugins/org.eclipse.emf.edapt.migration/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.edapt.migration/META-INF/MANIFEST.MF @@ -25,3 +25,4 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)", org.eclipse.emf.edapt.common;bundle-version="[1.3.1,2.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.eclipse.emf.edapt.spi.migration.MigrationPlugin$Implementation
+Automatic-Module-Name: org.eclipse.emf.edapt.migration
diff --git a/plugins/org.eclipse.emf.edapt.migration/build.properties b/plugins/org.eclipse.emf.edapt.migration/build.properties index 1239380..415bb7c 100644 --- a/plugins/org.eclipse.emf.edapt.migration/build.properties +++ b/plugins/org.eclipse.emf.edapt.migration/build.properties @@ -20,8 +20,10 @@ bin.includes = .,\ META-INF/,\ plugin.xml,\ plugin.properties,\ - about.html + about.html,\ + schema/ jars.compile.order = . source.. = src/,\ generated-src/ -src.includes = about.html +src.includes = about.html,\ + schema/ diff --git a/tests/org.eclipse.emf.edapt.common.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.edapt.common.tests/META-INF/MANIFEST.MF index a2d2ea7..32ab18b 100644 --- a/tests/org.eclipse.emf.edapt.common.tests/META-INF/MANIFEST.MF +++ b/tests/org.eclipse.emf.edapt.common.tests/META-INF/MANIFEST.MF @@ -8,3 +8,4 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Bundle-Vendor: Eclipse Modeling Project Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)" Export-Package: org.eclipse.emf.edapt.internal.common;version="1.3.1";x-internal:=true +Automatic-Module-Name: org.eclipse.emf.edapt.common.tests diff --git a/tests/org.eclipse.emf.edapt.rcptt/AllTests.suite b/tests/org.eclipse.emf.edapt.rcptt/AllTests.suite index 76f4bb0..d735928 100644 --- a/tests/org.eclipse.emf.edapt.rcptt/AllTests.suite +++ b/tests/org.eclipse.emf.edapt.rcptt/AllTests.suite @@ -4,8 +4,8 @@ Element-Name: AllTests Element-Type: testsuite Element-Version: 2.0 Id: _D99h4AkREeWg38ag0nnchw -Runtime-Version: 2.2.0.201706152316 -Save-Time: 11/15/17 3:35 PM +Runtime-Version: 2.3.0.201804052311 +Save-Time: 6/11/18 12:59 PM ------=_testcase-items-62c497da-4241-31f4-811a-6b453a3ecff8 Content-Type: text/testcase @@ -20,5 +20,6 @@ _x1puIAkPEeWg38ag0nnchw // kind: 'test' name: 'Select EElement' path: 'element_c _spU9wAkQEeWg38ag0nnchw // kind: 'test' name: 'Select Change' path: 'reconstruction_view/Select Change.test' _aedIALQUEee_6uXiZb2DRg // kind: 'test' name: 'Breaking change indication' path: 'general/Breaking change indication.test' _ExiWUMoSEeeVv4pPxMNi2w // kind: 'test' name: 'Multiple ecores' path: 'general/Multiple ecores.test' +_wXzbsG1lEeiv5_IJNNSbGg // kind: 'test' name: 'Extension Points' path: 'general/Extension Points.test' ------=_testcase-items-62c497da-4241-31f4-811a-6b453a3ecff8-- diff --git a/tests/org.eclipse.emf.edapt.rcptt/general/Extension Points.test b/tests/org.eclipse.emf.edapt.rcptt/general/Extension Points.test new file mode 100644 index 0000000..2f77cdb --- /dev/null +++ b/tests/org.eclipse.emf.edapt.rcptt/general/Extension Points.test @@ -0,0 +1,53 @@ +--- RCPTT testcase --- +Format-Version: 1.0 +Contexts: _bma0MAkBEeWg38ag0nnchw,_CqPtsAkFEeWg38ag0nnchw,_NFFKUAkEEeWg38ag0nnchw,_3TFIgAkBEeWg38ag0nnchw,_rv0HYAkGEeWg38ag0nnchw,_qYMXsAkHEeWg38ag0nnchw +Element-Name: Extension Points +Element-Type: testcase +Element-Version: 3.0 +External-Reference: +Id: _wXzbsG1lEeiv5_IJNNSbGg +Runtime-Version: 2.3.0.201804052311 +Save-Time: 6/11/18 12:58 PM +Testcase-Type: ecl + +------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac +Content-Type: text/ecl +Entry-Name: .content + +get-view "Package Explorer" | get-tree | select "org.eclipse.emf.ecp.makeithappen.model/META-INF/MANIFEST.MF" + | double-click +with [get-editor "org.eclipse.emf.ecp.makeithappen.model"] { + get-tab-folder | get-tab-item Extensions | click + get-section "All Extensions" | get-button "Add..." | click +} +with [get-window "New Extension"] { + with [get-editbox -after [get-label "Extension Point filter:"]] { + set-text edapt + key-type Left -times 17 + set-text "*edapt" + } + get-button "Show only extension points from the required plug-ins" | uncheck + get-table | select "org.eclipse.emf.edapt.migrators" + get-button Finish | click + get-window "New plug-in dependency" | get-button No | click +} +get-editor "org.eclipse.emf.ecp.makeithappen.model" | get-section "Extension Element Details" | get-button "Browse..." + | click +with [get-window "Resource Attribute Value"] { + get-tree | select "org.eclipse.emf.ecp.makeithappen.model/model/task.history" + get-button OK | click +} +get-editor "org.eclipse.emf.ecp.makeithappen.model" | get-section "All Extensions" | get-button "Add..." | click +with [get-window "New Extension"] { + get-editbox -after [get-label "Extension Point filter:"] | set-text "*edapt" + get-button "Show only extension points from the required plug-ins" | uncheck + get-table | select "org.eclipse.emf.edapt.factories" + get-button Finish | click + get-window "New plug-in dependency" | get-button No | click +} +with [get-editor "org.eclipse.emf.ecp.makeithappen.model" | get-section "Extension Element Details"] { + get-label "nsURI*:" | get-property caption | equals "nsURI*:" | verify-true + get-link "class*:" | get-property caption | equals "class*:" | verify-true + get-label "useWildcards:" | get-property caption | equals "useWildcards:" | verify-true +} +------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- diff --git a/tests/org.eclipse.emf.edapt.rcptt/pom.xml b/tests/org.eclipse.emf.edapt.rcptt/pom.xml index 0b5342b..d22a239 100644 --- a/tests/org.eclipse.emf.edapt.rcptt/pom.xml +++ b/tests/org.eclipse.emf.edapt.rcptt/pom.xml @@ -8,8 +8,8 @@ <packaging>rcpttTest</packaging> <properties> - <rcptt-maven-version>2.2.0</rcptt-maven-version> - <rcptt-runner-version>2.2.0</rcptt-runner-version> + <rcptt-maven-version>2.3.0</rcptt-maven-version> + <rcptt-runner-version>2.3.0</rcptt-runner-version> <toolchains-version>1.1</toolchains-version> </properties> |