Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Eclipse > Eclipse Modeling
Eclipse Modeling Forum d'entraide sur les technologies Eclipse de développement basées sur un modèle (EMF, GMF, Acceleo, EEF, CDO ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 08/04/2012, 12h02   #1
allal_carno
Invité de passage
 
Homme kassaa allal
JAVA
Inscription : février 2012
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme kassaa allal
Âge : 27
Localisation : Algérie

Informations professionnelles :
Activité : JAVA
Secteur : Enseignement

Informations forums :
Inscription : février 2012
Messages : 4
Points : 0
Points : 0
Envoyer un message via Skype™ à allal_carno
Par défaut Manipulation des transformations QVTO

Bonjour,

J'essaie d'exécuter une transformation, essentiellement via le code donné ici : http://wiki.eclipse.org/QVTOML/Examples/InvokeInJava.

Cela fonctionne pour mes ressources:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    URI transformationURI = URI.createURI("platform:/resource/tests/transforms/ecore2uml.qvto");
    TransformationExecutor executor = new TransformationExecutor(transformationURI);
 
    ResourceSet resourceSet = new ResourceSetImpl();
    Resource inResource = resourceSet.getResource(URI.createURI("platform:/resource/tests/model/Model1.ecore"), true);        
    EList<EObject> inObjects = inResource.getContents();
 
    ModelExtent input = new BasicModelExtent(inObjects);        
    ModelExtent output = new BasicModelExtent();
 
    ExecutionContextImpl context = new ExecutionContextImpl();
    context.setConfigProperty("keepModeling",true);
 
    ExecutionDiagnostic result = executor.execute(context, input, output);
 
    if(result.getSeverity() == Diagnostic.OK) {
        // the output objects got captured in the output extent
        List<EObject> outObjects = output.getContents();
        // let's persist them using a resource 
        ResourceSet resourceSet2 = new ResourceSetImpl();
        Resource outResource = resourceSet2.getResource(URI.createURI("platform:/resource/tests/model/Model2.uml"), true);
Mais un message d'erreur se produit lorsque j'exécute cette transformation qvto :
Citation:
Exception in thread "main" java.lang.RuntimeException: Cannot create a resource for 'platform:/resource/tests/model/Model1.ecore'; a registered resource factory is needed
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource (ResourceSetImpl.java:394) :
Ce qu'il a déclaré lors de la ressource est nul.

Je suis habitué d'une ressource .ecore.

Quelqu'un saurait-il m'expliquer ce qui ne va pas ?

Merci d'avance pour votre aide.
allal_carno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2012, 15h06   #2
Mickael_Istria
Membre émérite

 
Avatar de Mickael_Istria
 
Homme Mickael Istria
Développeur Expert Eclipse RCP
Inscription : juillet 2008
Messages : 482
Détails du profil
Informations personnelles :
Nom : Homme Mickael Istria
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Expert Eclipse RCP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2008
Messages : 482
Points : 910
Points : 910
En fait avec EMF, tu enregistres une resource factory par type de fichier/extension. La tu manipules des .uml et EMF ne connait pas ce format .uml. Donc il te demande de lui specifier la factory a utiliser pour lire le fichier. Cce doit etre une UMLFactory j'imagine.
Il faudrait que tu sois sur que le plugin qui gere UML soit dans ton classpath, et qu'il enregistre bien sa factory pour l'extension .uml. Sinon, tu enregistres la UMLFactory pour le .uml par toi meme. Le point d'extension dont tu reves est org.eclipse.emf.ecore.extension_parser
__________________
Inscrivez-vous pour la premiere EclipseCon France, le 5 et 6 juin!

Read my blog about Eclipse | Follow me on twitter
My employer, JBoss, by RedHat
Mickael_Istria est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2012, 14h34   #3
allal_carno
Invité de passage
 
Homme kassaa allal
JAVA
Inscription : février 2012
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme kassaa allal
Âge : 27
Localisation : Algérie

Informations professionnelles :
Activité : JAVA
Secteur : Enseignement

Informations forums :
Inscription : février 2012
Messages : 4
Points : 0
Points : 0
Envoyer un message via Skype™ à allal_carno
Merci pour votre aide mais ça n'a pas marché, voici la partie complète du code qui génère l'erreur.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package classes;
 
 
 
import java.io.IOException;
import java.util.Collections;
import java.util.List;
import java.util.Map;
 
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
 
import org.eclipse.core.runtime.IStatus;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.common.util.BasicDiagnostic;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.Resource.Factory;
import org.eclipse.emf.ecore.resource.Resource.Factory.Registry;
import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
import org.eclipse.emf.ecore.resource.impl.ResourceFactoryRegistryImpl;
import org.eclipse.emf.ecore.resource.impl.ResourceImpl;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.m2m.qvt.oml.BasicModelExtent;
import org.eclipse.m2m.qvt.oml.ExecutionContextImpl;
import org.eclipse.m2m.qvt.oml.ExecutionDiagnostic;
import org.eclipse.m2m.qvt.oml.ModelExtent;
import org.eclipse.m2m.qvt.oml.TransformationExecutor;
 
 
 
 
 
 
public class onto2smd {
 
	public onto2smd(){	
 
	URI transformationURI = URI.createURI("platform:/resource/tests/transforms/OntoL_ecore_2_SMDuml.qvto");
 
	TransformationExecutor executor = new TransformationExecutor(transformationURI);
 
	ResourceSet resourceSet = new ResourceSetImpl();
 
	URI inURI = URI.createURI("platform:/resource/tests/model/M.ecore",true);
 
 
	Resource inResource = new ResourceImpl(inURI);		
 
     EList<EObject> inObjects = inResource.getContents();
 
	ModelExtent input = new BasicModelExtent(inObjects);
 
	ModelExtent output = new BasicModelExtent();
 
 
	ExecutionContextImpl context = new ExecutionContextImpl();
	context.setConfigProperty("keepModeling",true);
 
	ExecutionDiagnostic result = executor.execute(context, input, output);
 
 
	if(result.getSeverity()== Diagnostic.OK) {
 
 
	 List<EObject> outObjects = output.getContents();
 
	        ResourceSet resourceSet2 = new ResourceSetImpl();
 
		Resource outResource = resourceSet2.getResource(
				URI.createURI("platform:/resource/tests/model/M.uml"), true);
 
		outResource.getContents().addAll(outObjects);
		try {
			outResource.save(Collections.emptyMap());
		} catch (IOException e) {
 
			e.printStackTrace();	
		}
	} else {
 
 
		IStatus status = BasicDiagnostic.toIStatus(result);
 
		System.err.println("ERREUR chargement du mod&#65533;&#65533;&#65533;le ");
	}
	}
 
 
	public static void main(String[] args) {
		    try {
		      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		    }
		    catch(Exception e) {
		      e.printStackTrace();
		    }
		    new onto2smd();
		  }
 
}
L'erreur produite lors de l'execution du programme dans cette ligne (ligne 65) est:

Citation:
ExecutionDiagnostic result = executor.execute(context, input,output);
Si vous pouvez voire encore une fois le code et aider moi SVP !!
MERCI d'avance
allal_carno est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h32.


 
 
 
 
Partenaires

Hébergement Web