Skip to content
Snippets Groups Projects
Select Git revision
  • cd69b388d4e05581fed28bdcc204f15dda024bb5
  • main default protected
  • devel2
  • release
  • devel
5 results

TaskAndTimeTimJahn.txt

Blame
  • TaskAndTimeTimJahn.txt 15.74 KiB
    Hallo Tim,
    
    Nachfolgend die Informationen die du brauchst.
    
        Zum Thematischen einlesen solltest du dir das DiNeROS-Paper anschauen: 
    		https://link.springer.com/article/10.1007/s11334-024-00570-5
            Folgende Sections sind wichtig für dich à 1,2, 5.1-5.5
    
        Im Paper werden Petri Netze auch erklärt, ansonsten kannst du auch noch 
    		https://en.wikipedia.org/wiki/Petri_net 
    		drüber scrollen
    		
        Die Einarbeitung in GLSP ist recht einfach für die Basics: 
    		https://eclipsesource.com/blogs/2021/10/05/a-hands-on-tutorial-for-eclipse-glsp/
    		
        Für weiterführende Konzepte ist meist leider nur die API Doku 
    		https://eclipse.dev/glsp/documentation/ oder der Code da
            Diese solltest du dir bei Bedarf, wenn du am Issues fixen bist anschauen
    
    		example:
    			https://github.com/eclipse-glsp/glsp-examples/tree/master/project-templates/java-emf-theia
    		
        Der Editor selbst ist in 
    		https://git-st.inf.tu-dresden.de/dineros/framework/pnml-petri-net-editor
            Tipps zur Installation:
                überprüfe bei Fehler die Versionen deiner Bibliotheken/Maven à oft sind diese nicht kompatibel, oder apt-get ist veraltet
                Fehlende dependencies à oft fehlt keytar
    			
        Die Issues: 
    		https://git-st.inf.tu-dresden.de/dineros/framework/pnml-petri-net-editor/-/issues
            Reihenfolge der Bearbeitung: #1, #2, #4, #6, #3, #5, #7
    		
        Nutze für den Bugfix den Branch „devel“
        Ein beispiel PNML findest du in 
    		https://git-st.inf.tu-dresden.de/dineros/framework/journal-paper-evaluation/-/blob/main/full/model-v5/sorting-wf-synced-safe-sensor-grpn-sig.pnml?ref_type=heads
    
    Bei Fragen schreib mir einfach. Sobald ich kann, antworte ich dir.
    
    Viele Grüße,
    Sebastian
    
    //------------------------------------------------------------------------------------------------------
    
    hours:
    14.11.24  8h -
    24.11.24  4h -
    30.11.24  8h -
    01.12.24  8h -
    08.12.24  8h -
    16.12.24 12h -
    22.12.24 12h -
    23.12.24  8h -
    24.12.24  2h -
    06.01.25  8h -
    11.01.25  4h -
    12.01.25 12h -
    19.01.25  4h
    //------------------------------------------------------------------------------------------------------
    
    see https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#prerequisite_native_keymap
    for dependencies:
    
    sudo apt update
    sudo apt install nodejs
    sudo apt install npm
    
    curl -fsSL https://deb.nodesource.com/setup_21.x | sudo -E bash -
    sudo npm install -g n
    node --version
    sudo n 20.18.0  //theia needs version < 21
    
    ===============================================================
    alt. if sudo n does not work (check with node --version):
    
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
    nvm install 20
    ===============================================================
    
    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
    echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
    sudo apt update && sudo apt install yarn
    
    sudo apt-get install libx11-dev libxkbfile-dev
    sudo apt-get install libsecret-1-dev
    
    
    npm install keytar@7.2.0
     
    - everything works so far
    
    hours:
    14.11.24 8h
    
    tutorial for glsp does not work for java 21, throws:
    
      $ Unknown OSGi execution environment: 'JavaSE-21'
      $ org.eclipse.tycho.core.ee.UnknownEnvironmentException: Unknown OSGi execution environment: 'JavaSE-21'
    
    switch to JavaSE 17
    
      $ update-java-alternatives --list
      $ sudo update-java-alternatives --set /usr/lib/jvm/java-1.17.0-openjdk-amd64
    
    tutorial for glsp not up to date - git repository modified heavily to accomodate the documentation - the files 
    refered to in the tutorial ar not in the refered repository
      - proceed to work through the documentation
    
    some unclear aspects regarding the issues:
    
    - general location of affected files
    - adding new content?
    - backup plan
    - devel or new branch?
    
    #1 no bug fix; add mask?
     - new pnml is empty file - misses model; add defaut model via handler
     - see 
     	https://eclipse.dev/glsp/documentation/protocol/#24-model-data
      	https://eclipse.dev/glsp/documentation/sourcemodel
    
    	modify:
    		pnml-petri-net-editor/glsp-server/src/main/java/org/eclipse/glsp/example/javaemf/model/TaskListSourceModelStorage.java
    		see:
    			https://github.com/eclipse-glsp/glsp-server/blob/master/plugins/org.eclipse.glsp.server.emf/src/org/eclipse/glsp/server/emf/EMFSourceModelStorage.java
    			https://ralph.blog.imixs.com/2022/05/20/build-your-own-modelling-tool-with-eclipse-glsp/
    			https://download.eclipse.org/modeling/emf/emf/javadoc/2.11/org/eclipse/emf/common/util/URI.html
     
    #2 tasklist file names?
     - petri_net editor
     - rename everything
    
    #3 one page includes all others elements?
     - one page includes all
     - modify CreateServerPageHandler.java
    
    #4 node page - maybe example
     - beispiel - last link
          https://git-st.inf.tu-dresden.de/dineros/framework/journal-paper-evaluation/-/blob/main/full/model-v5/sorting-wf-synced-safe-sensor-grpn-sig.pnml?ref_type=heads
     - add extra option for node page with additional metadata
     - see for menu adaption
     	https://eclipse.dev/glsp/documentation/ui-extensions/
    
     - how does that look?
    
     for the GLSP example at https://github.com/eclipse-glsp/glsp-examples MIND TAKING THE CORRECT BRANCH
      - https://github.com/eclipse-glsp/glsp-examples/tree/example-javaemftheia-extension
    
      THE REFERENCES OF THE GLSP EXTENSION WILL OTHERWISE NOT MAKE SENSE 
    
     graphical objects are mostly done by the sprotty framework, not glsp
     - found example of adding new element on https://github.com/eclipse-glsp/glsp/discussions/1042
     - https://github.com/eclipse-glsp/glsp-examples/compare/master...example-javaemftheia-extension
    
    #5 "all elements like channels" - only channels
     - input only for transitions, markings only for places 
     - see 
     	https://eclipse.dev/glsp/documentation/ui-extensions/
    
    #6 some details pls
     - elements are in the model but not in the exported pnml
     - see
     	https://eclipse.dev/glsp/documentation/sourcemodel
    	https://eclipse.dev/glsp/documentation/protocol/#25-model-saving => point 2.5.3
    
     - custom export available?
     - keine page types, transition types in exported .xml
    
    #7 
     - possibly same issue categry as #1 => see RequestModelAction
     - see
     	https://eclipse.dev/glsp/documentation/protocol/#1-server-client-lifecycle
    	https://eclipse.dev/glsp/documentation/protocol/#24-model-data
    
    prio 1,3,4,6
    
    push to devel, merge with sebastioan as assignee in gitlab website
    
    30.11.24 8h
    01.12.24 8h
    08.12.24 8h
    16.12.24 12h
    
    issue #1 
    - recreated error by creating new file test.pnml in editor:
    
    ===========================================================================================================================
    
    I will delete all error dcumentation for resolved issues, since they will still be on git and clutter the file otherwise
    
    ===========================================================================================================================
    
    pageNode implementation
    
    NaseModel.pnml
    
    java.lang.ExceptionInInitializerError
    	at org.eclipse.glsp.example.javaemf.model.TaskListSourceModelStorage.setupResourceSet(TaskListSourceModelStorage.java:58)
    	at org.eclipse.glsp.server.emf.EMFSourceModelStorage.getOrCreateEditingDomain(EMFSourceModelStorage.java:68)
    	at org.eclipse.glsp.example.javaemf.model.TaskListSourceModelStorage.loadSourceModel(TaskListSourceModelStorage.java:85)
    	at org.eclipse.glsp.server.features.core.model.RequestModelActionHandler.executeAction(RequestModelActionHandler.java:75)
    	at org.eclipse.glsp.server.features.core.model.RequestModelActionHandler.executeAction(RequestModelActionHandler.java:45)
    	at org.eclipse.glsp.server.actions.AbstractActionHandler.execute(AbstractActionHandler.java:53)
    	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runAction(DefaultActionDispatcher.java:198)
    	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleAction(DefaultActionDispatcher.java:176)
    	at org.eclipse.glsp.example.javaemf.handler.MyActionDispatcher.handleAction(MyActionDispatcher.java:24)
    	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleNextAction(DefaultActionDispatcher.java:163)
    	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runThread(DefaultActionDispatcher.java:149)
    	at java.base/java.lang.Thread.run(Thread.java:1583)
    Caused by: java.lang.ClassCastException: class org.eclipse.emf.ecore.impl.EAttributeImpl cannot be cast to class org.eclipse.emf.ecore.EReference (org.eclipse.emf.ecore.impl.EAttributeImpl and org.eclipse.emf.ecore.EReference are in unnamed module of loader 'app')
    	at org.pnml.emf.ptnet.impl.PtnetPackageImpl.getToolInfoPage_Page(PtnetPackageImpl.java:2024)
    	at org.pnml.emf.ptnet.impl.PtnetPackageImpl.initializePackageContents(PtnetPackageImpl.java:2971)
    	at org.pnml.emf.ptnet.impl.PtnetPackageImpl.init(PtnetPackageImpl.java:597)
    	at org.pnml.emf.ptnet.PtnetPackage.<clinit>(PtnetPackage.java:59)
    	... 12 more
    
    test.pnml
    
    Could not initialize class org.pnml.emf.ptnet.PtnetPackage
    java.lang.NoClassDefFoundError: Could not initialize class org.pnml.emf.ptnet.PtnetPackage
    	at org.eclipse.glsp.example.javaemf.model.TaskListSourceModelStorage.setupResourceSet(TaskListSourceModelStorage.java:58)
    	at org.eclipse.glsp.server.emf.EMFSourceModelStorage.getOrCreateEditingDomain(EMFSourceModelStorage.java:68)
    	at org.eclipse.glsp.example.javaemf.model.TaskListSourceModelStorage.loadSourceModel(TaskListSourceModelStorage.java:85)
    	at org.eclipse.glsp.server.features.core.model.RequestModelActionHandler.executeAction(RequestModelActionHandler.java:75)
    	at org.eclipse.glsp.server.features.core.model.RequestModelActionHandler.executeAction(RequestModelActionHandler.java:45)
    	at org.eclipse.glsp.server.actions.AbstractActionHandler.execute(AbstractActionHandler.java:53)
    	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runAction(DefaultActionDispatcher.java:198)
    	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleAction(DefaultActionDispatcher.java:176)
    	at org.eclipse.glsp.example.javaemf.handler.MyActionDispatcher.handleAction(MyActionDispatcher.java:24)
    	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleNextAction(DefaultActionDispatcher.java:163)
    	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runThread(DefaultActionDispatcher.java:149)
    	at java.base/java.lang.Thread.run(Thread.java:1583)
    Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.ClassCastException: class org.eclipse.emf.ecore.impl.EAttributeImpl cannot be cast to class org.eclipse.emf.ecore.EReference (org.eclipse.emf.ecore.impl.EAttributeImpl and org.eclipse.emf.ecore.EReference are in unnamed module of loader 'app') [in thread "MyActionDispatcher 3"]
    	at org.pnml.emf.ptnet.impl.PtnetPackageImpl.getToolInfoPage_Page(PtnetPackageImpl.java:2024)
    	at org.pnml.emf.ptnet.impl.PtnetPackageImpl.initializePackageContents(PtnetPackageImpl.java:2971)
    	at org.pnml.emf.ptnet.impl.PtnetPackageImpl.init(PtnetPackageImpl.java:597)
    	at org.pnml.emf.ptnet.PtnetPackage.<clinit>(PtnetPackage.java:59)
    	... 12 more
    
    
    error trying to save after adding nodePage
    
    class org.pnml.emf.ptnet.impl.PageImpl cannot be cast to class java.lang.String (org.pnml.emf.ptnet.impl.PageImpl is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap')
    java.lang.ClassCastException: class org.pnml.emf.ptnet.impl.PageImpl cannot be cast to class java.lang.String (org.pnml.emf.ptnet.impl.PageImpl is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap')
    	at org.eclipse.emf.ecore.impl.EcoreFactoryImpl.convertEStringToString(EcoreFactoryImpl.java:661)
    	at org.eclipse.emf.ecore.impl.EcoreFactoryImpl.convertToString(EcoreFactoryImpl.java:219)
    	at org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.convertToString(XMLHelperImpl.java:1610)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.getDatatypeValue(XMLSaveImpl.java:3108)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveDataTypeSingle(XMLSaveImpl.java:1698)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1280)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1181)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1042)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2417)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1553)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1181)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1042)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2417)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1553)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1181)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1042)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2417)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1553)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1181)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1042)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2417)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1553)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.writeTopObject(XMLSaveImpl.java:683)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.traverse(XMLSaveImpl.java:591)
    	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:251)
    	at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:389)
    	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1475)
    	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1044)
    	at org.eclipse.glsp.example.javaemf.model.TaskListSourceModelStorage.saveSourceModel(TaskListSourceModelStorage.java:165)
    	at org.eclipse.glsp.server.actions.SaveModelActionHandler.executeAction(SaveModelActionHandler.java:47)
    	at org.eclipse.glsp.server.actions.SaveModelActionHandler.executeAction(SaveModelActionHandler.java:32)
    	at org.eclipse.glsp.server.actions.AbstractActionHandler.execute(AbstractActionHandler.java:53)
    	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runAction(DefaultActionDispatcher.java:198)
    	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleAction(DefaultActionDispatcher.java:176)
    	at org.eclipse.glsp.example.javaemf.handler.MyActionDispatcher.handleAction(MyActionDispatcher.java:24)
    	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleNextAction(DefaultActionDispatcher.java:163)
    	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runThread(DefaultActionDispatcher.java:149)
    	at java.base/java.lang.Thread.run(Thread.java:1583)