can somebody tell me what the best way is to copy a package from a bundle and to create a new bundle from it? I want to take the package “…simulator.datsource.csv” and create a new bundle by just doing some minor modifications in it.
I hope the question is clear.
Thank you for the answer.
Hi. just do the getting started and modify this file and build it.
thank you for the reply. But actually I don’t want to go through the whole procedure of the “getting started” again all the time I want to create a new bundle. Isn’t there a way in BNDtools to just copy and paste and rename a bundle…that would take only a few seconds. Compared to minutes if I program everything from scratch…
what I usually do when creating a new OSGi Bundle for OpenEMS is, I let bndtools create a new “Bnd OSGi Provider/Adapter Bundle” (see “Create a new OSGi Bundle”) and then copy over the following files from some other Bundle:
The more professional way in future would be to provide templates for bndtools that allow this kind of scaffolding - but we are not there yet… I just created an Issue for it
If you just want to add a new package inside the Simulator-Bundle, you can just copy an existing package. Make sure to add the new package to the bnd.bnd file as a “Private-Package”.
thank you for the answer. I actually tried to follow the second path that you proposed to copy a package. But something is missing. So here is what I did:
- Copy package …meter.grid.reacting from the io.openems.edge.simulator bundle and renamed the copy to e.g. “newPack”
- include the according “Private-Package” in bnd.bnd and saved it
Two build errors are occurring:
- Duplicate pid Simulator.GridMeter.Reacting from class io.openems.simulator.newPack.config
- Service-component entry can not be located in JAR: OSGI-INF/Simulator.GridMeter.Reacting.xml~
seems that I solved it myself.
Two renaming steps have to be done:
- rename [component].java by rightclicking => refactor => rename
- in this java-file the @component declaration needs to be changed