Select Git revision
TaskAndTimeTimJahn.txt
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)