[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [henshin-user] (no subject)

Actually, using your source code, transformation, and models, I was able to set up the transformation so that it runs without throwing in exception. (To try it out, download the attached zip, import it in Eclipse via "File -> Import -> General -> Existing Projects into Workspace...", and execute Main.java).

Note that the rule "AssociationClass2Class" successfully changes the model, whereas the application of the unit "CDRefinement" fails (I haven't looked at the transformation in detail).

In the general case, Steffen's answer is accurate: when working with EMF, you need to register the involved meta-models. But HenshinResourceSet has some convenience features built into it so that it can register the meta-models automatically in this case.

Best regards,
Daniel

Am 08.02.2017 um 10:42 schrieb Loic Gammaitoni:
@Daniel, I think this FAQ doesn't apply as the transformation executes correctly when using the Henshin GUI  in Eclipse.

@Steffen, this might well be the case as nowhere in the code have I imported my ecore model.
I attach my code at the end of this mail ( this code was copy pasted from the henshin interpreter page).
Do I have to add an instruction to import the ecore metamodel ? If so, how to do it ? ( I'm relatively new to the ecore world ).

Thanks for the swift reply,
Cheers,

Loïc

                HenshinResourceSet resourceSet = new HenshinResourceSet(workingDir);
   
                // Load a model:
                Resource model = resourceSet.getResource(input);
                 
                // Load the Henshin module:
                Module module = resourceSet.getModule(transformation);
                 
                // Apply the transformation (see below)...
                 
                // Save the model:
                model.save(null);
               
                // Prepare the engine:
                Engine engine = new EngineImpl();
                 
                // Initialize the graph:
                EGraph graph = new EGraphImpl(model);
               
                 
                // Find the unit to be applied:
                Unit u = module.getUnit(unit);
           
                // Apply the unit:
                UnitApplication application = new UnitApplicationImpl(engine, graph, u, null);
                application.execute(null);

       



On Wed, Feb 8, 2017 at 9:24 AM, Steffen Zschaler <steffen.zschaler@xxxxxxxxx> wrote:

From the stack trace, it looks like this occurs inside ECore. Have you set up your resource set correctly to include all the relevant metamodels?

Many thanks,

Steffen


On 08/02/2017 07:38, Daniel Strüber wrote:
Dear Loic,

there is an a FAQ entry about null pointer exceptions (NPEs) while executing a transformation, have you checked it? https://wiki.eclipse.org/Henshin_FAQ#I_get_NPEs_when_I_try_to_execute_my_transformation

Besides that, if possible, it would help us if you can attach the Java code, so we can look at it (I assume you modified it a bit so that it matches your transformation).

Best regards,
Daniel

Am 07.02.2017 um 23:48 schrieb loic.gammaitoni@xxxxxxxxx:

Dear mailing list readers,

I’m interested in measuring the time needed by Henshin to execute a transformation (see attached cdrefinement.henshin) on a given xmi model ( size10.xmi conforming to CD.ecore). The transformation works great when running through eclipse but unfortunately I can’t see any log of the time it took to be computed.
I thus tried my luck in developing a small java application running the transformation and printing out the time taken and can’t get rid of a NullPointerException...
Here is the stacktrace: (note that I simply reused the code given in the henshin interpreter web page)

Exception in thread "main" java.lang.NullPointerException

                at org.eclipse.emf.ecore.impl.EClassImpl.getFeatureID(EClassImpl.java:1500)

                at org.eclipse.emf.ecore.impl.DynamicEObjectImpl.eDerivedStructuralFeatureID(DynamicEObjectImpl.java:218)

                at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1008)

                at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1003)

                at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:998)

                at org.eclipse.emf.henshin.interpreter.impl.ChangeImpl$AttributeChangeImpl.applyAndReverse(ChangeImpl.java:134)

                at org.eclipse.emf.henshin.interpreter.impl.ChangeImpl$CompoundChangeImpl.applyAndReverse(ChangeImpl.java:466)

                at org.eclipse.emf.henshin.interpreter.impl.RuleApplicationImpl.undo(RuleApplicationImpl.java:126)

                at org.eclipse.emf.henshin.interpreter.impl.UnitApplicationImpl.undo(UnitApplicationImpl.java:135)

                at org.eclipse.emf.henshin.interpreter.impl.UnitApplicationImpl.executeSequentialUnit(UnitApplicationImpl.java:230)

                at org.eclipse.emf.henshin.interpreter.impl.UnitApplicationImpl.doExecute(UnitApplicationImpl.java:104)

                at org.eclipse.emf.henshin.interpreter.impl.UnitApplicationImpl.execute(UnitApplicationImpl.java:90)

                at Interpreter.interpret(Interpreter.java:80)

                at Main.main(Main.java:38)


Do you have any idea what causes this error ?

Also, is there a way to get the time taken by henshin to execute a transformation directly in eclipse ( without having to program anything )

Cheers,
Loïc

 

 

 

 



_______________________________________________
henshin-user mailing list
henshin-user@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/henshin-user
_______________________________________________ henshin-user mailing list henshin-user@xxxxxxxxxxx To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://emea01.safelinks.protection.outlook.com/?url="">https%3A%2F%2Fdev.eclipse.org%2Fmailman%2Flistinfo%2Fhenshin-user&data="">7Csteffen.zschaler%40kcl.ac.uk%7Cd07bcc42cc444ee058cf08d44ff58f49%7C8370cf1416f34c16b83c724071654356%7C0&sdata=GZvUzq%2BqoGUk2%2FltY3QqwPcE2X8pqnyPftwW%2BT9Ap%2Fs%3D&reserved=0
-- 
Dr. rer. nat. Steffen Zschaler AHEA
Senior Lecturer

King's College London
Department of Informatics

Email szschaler@xxxxxxx
Phone +44 (020) 7848 1513
WWW   http://www.steffen-zschaler.de/
_______________________________________________ henshin-user mailing list henshin-user@xxxxxxxxxxx To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/henshin-user
_______________________________________________
henshin-user mailing list
henshin-user@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/henshin-user

Attachment: CDRefinement.zip
Description: Zip compressed data