From b24069a2f7330a1e915c995df9ff1eca58a64840 Mon Sep 17 00:00:00 2001 From: Dominique Marcadet <Dominique.Marcadet@centralesupelec.fr> Date: Fri, 5 Apr 2019 17:11:24 +0200 Subject: [PATCH] new plugin utilities --- .../plugin.properties | 4 +- .../.classpath | 7 ++ .../.project | 28 ++++++++ .../.settings/org.eclipse.jdt.core.prefs | 7 ++ .../META-INF/MANIFEST.MF | 15 +++++ .../build.properties | 4 ++ .../plugin.properties | 20 ++++++ .../pom.xml | 30 +++++++++ .../nsd/utilities/NsdModelLoader.java | 64 +++++++++++++++++++ .../plugin.properties | 4 +- pom.xml | 1 + 11 files changed, 180 insertions(+), 4 deletions(-) create mode 100644 fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/.classpath create mode 100644 fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/.project create mode 100644 fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/.settings/org.eclipse.jdt.core.prefs create mode 100644 fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/META-INF/MANIFEST.MF create mode 100644 fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/build.properties create mode 100644 fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/plugin.properties create mode 100644 fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/pom.xml create mode 100644 fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/utilities/NsdModelLoader.java diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties index 1cb6f01..b96d357 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties @@ -16,8 +16,8 @@ # http://wdi.supelec.fr/software/RiseClipse/ # -pluginName = NSD Model Edit Support -providerName = www.example.org +pluginName = RiseClipse IEC 61850 NSD Edit Support +providerName = CentraleSup�lec & EDF _UI_CreateChild_text = {0} _UI_CreateChild_text2 = {1} {0} diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/.classpath b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/.classpath new file mode 100644 index 0000000..eca7bdb --- /dev/null +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/.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/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/.project b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/.project new file mode 100644 index 0000000..bc8237a --- /dev/null +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities</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/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/.settings/org.eclipse.jdt.core.prefs b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..0c68a61 --- /dev/null +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/META-INF/MANIFEST.MF b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/META-INF/MANIFEST.MF new file mode 100644 index 0000000..81b9512 --- /dev/null +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/META-INF/MANIFEST.MF @@ -0,0 +1,15 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-Vendor: %providerName +Bundle-SymbolicName: fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities +Bundle-Version: 1.0.0.qualifier +Automatic-Module-Name: fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Require-Bundle: org.eclipse.emf.common, + org.eclipse.emf.ecore, + org.eclipse.emf.edit, + fr.centralesupelec.edf.riseclipse.iec61850.nsd, + fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit, + fr.centralesupelec.edf.riseclipse.main +Export-Package: fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/build.properties b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/build.properties new file mode 100644 index 0000000..34d2e4d --- /dev/null +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/plugin.properties b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/plugin.properties new file mode 100644 index 0000000..6d56417 --- /dev/null +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/plugin.properties @@ -0,0 +1,20 @@ +# Copyright (c) 2019 CentraleSup�lec & EDF. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# This file is part of the RiseClipse tool +# +# Contributors: +# Computer Science Department, CentraleSup�lec +# EDF R&D +# Contacts: +# dominique.marcadet@centralesupelec.fr +# aurelie.dehouck-neveu@edf.fr +# Web site: +# http://wdi.supelec.fr/software/RiseClipse/ +# + +pluginName = RiseClipse IEC 61850 NSD Utilities +providerName = CentraleSup�lec & EDF diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/pom.xml b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/pom.xml new file mode 100644 index 0000000..fdc7614 --- /dev/null +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/pom.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <groupId>fr.centralesupelec.edf.riseclipse</groupId> + <artifactId>fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities</artifactId> + <version>1.0.0-SNAPSHOT</version> + <packaging>eclipse-plugin</packaging> + + <parent> + <groupId>fr.centralesupelec.edf.riseclipse</groupId> + <artifactId>RiseClipseMetamodel_NSD2016</artifactId> + <version>1.0.0-SNAPSHOT</version> + </parent> + + <build> + <plugins> + <plugin> + <groupId>org.eclipse.tycho</groupId> + <artifactId>target-platform-configuration</artifactId> + <version>${tycho-version}</version> + <configuration> + <!-- This needed parameter seems to be ignored if put in the pom root file --> + <pomDependencies>consider</pomDependencies> + </configuration> + </plugin> + </plugins> + </build> + +</project> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/utilities/NsdModelLoader.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/utilities/NsdModelLoader.java new file mode 100644 index 0000000..e828fe9 --- /dev/null +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/utilities/NsdModelLoader.java @@ -0,0 +1,64 @@ +/** + * Copyright (c) 2019 CentraleSupélec & EDF. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * This file is part of the RiseClipse tool + * + * Contributors: + * Computer Science Department, CentraleSupélec + * EDF R&D + * Contacts: + * dominique.marcadet@centralesupelec.fr + * aurelie.dehouck-neveu@edf.fr + * Web site: + * http://wdi.supelec.fr/software/RiseClipse/ + */ +package fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities; + +import org.eclipse.emf.ecore.EValidator; +import org.eclipse.emf.ecore.resource.Resource; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceFactoryImpl; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; +import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; +import fr.centralesupelec.edf.riseclipse.util.RiseClipseModelLoader; + +public class NsdModelLoader extends RiseClipseModelLoader { + + public NsdModelLoader( IRiseClipseConsole console ) { + super( console ); + } + + @Override + public void reset() { + super.reset( new NsdResourceSetImpl( true, console ) ); + + // Register the appropriate resource factory to handle all file + // extensions. + getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap() + .put( Resource.Factory.Registry.DEFAULT_EXTENSION, new NsdResourceFactoryImpl() ); + + // Register the package to ensure it is available during loading. + getResourceSet().getPackageRegistry().put( NsdPackage.eNS_URI, NsdPackage.eINSTANCE ); + } + + @Override + public NsdResourceSetImpl getResourceSet() { + return ( NsdResourceSetImpl ) super.getResourceSet(); + } + + public Resource loadWithoutValidation( String name ) { + Object eValidator = EValidator.Registry.INSTANCE.remove( NsdPackage.eINSTANCE ); + + Resource resource = load( name ); + + if( eValidator != null ) { + EValidator.Registry.INSTANCE.put( NsdPackage.eINSTANCE, eValidator ); + } + return resource; + } + +} diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/plugin.properties b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/plugin.properties index 10e27cc..ed13549 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/plugin.properties +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/plugin.properties @@ -16,5 +16,5 @@ # http://wdi.supelec.fr/software/RiseClipse/ # -pluginName = NSD Model -providerName = www.example.org +pluginName = RiseClipse IEC 61850 NSD Metamodel +providerName = CentraleSup�lec & EDF diff --git a/pom.xml b/pom.xml index cff541c..658b43a 100644 --- a/pom.xml +++ b/pom.xml @@ -23,6 +23,7 @@ <modules> <module>fr.centralesupelec.edf.riseclipse.iec61850.nsd</module> <module>fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit</module> + <module>fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities</module> </modules> </project> -- GitLab