Application plug-in strategy? [message #1184971] |
Wed, 13 November 2013 20:32 |
Gary Worsham Messages: 176 Registered: September 2013 |
Senior Member |
|
|
Ok, I now have 2 awesome DSLs which are helping a lot with my Java application development. What I want to do is to publish an Eclipse version (or RCP?) which supports these as plug-ins within a Java development environment. So then, my customers (who use the application) would also be in a position to modify the application to add additional functional blocks.
These blocks would be available as class files, at the very least, which could be traded amongst users who wanted to offer a given functionality to others who were not interested in running Eclipse or an RCP to recompile the application. Kind of like Minecraft mods .
So now, this opens up the possibility of an application which has some classes which are variable, depending on whether or not any of the classes from the base distribution get replaced.
Two questions:
1) Is there any tool or system which makes this sort of application (rather than Eclipse) plugin capability easier to manage?
2) What sorts of care would one need to take around serialization and file exchange at the application level? For example, supposing 2 different people take the base application and add new classes? In order to exchange application files which did NOT reference these new classes, I'd hope that would be possible without issue.
In the case you get an application file which DOES reference a plugin which is not currently installed, I'd hope to get a warning rather than a serialization exception.
As it stands, in my current implementation, each of the functional blocks/classes has its own serialization ID. I usually have these randomly generated as I have not yet encountered any need to do anything else.
Thanks,
GW
[Updated on: Wed, 13 November 2013 20:32] Report message to a moderator
|
|
|
Re: Application plug-in strategy? [message #1185018 is a reply to message #1184971] |
Wed, 13 November 2013 21:12 |
|
Hi,
hmmm i am not sure if i get your question.
you want to enable user to provide a unit of code (e.g. a class with some methods) so that this code can be used in your dsl?
how does this "use" look like. how is the stuff incorporated?
do you know you can make use of xtends static imports/extensions in xbase as well?
it would help if you would come with some examples (they dont have to be from your dsl - feel free to invent something simple)
~Christian
Twitter : @chrdietrich
Blog : https://www.dietrich-it.de
|
|
|
Re: Application plug-in strategy? [message #1185112 is a reply to message #1185018] |
Wed, 13 November 2013 22:38 |
Gary Worsham Messages: 176 Registered: September 2013 |
Senior Member |
|
|
My application is a CAD system. One DSL creates an insertable "CAD Block" class and the other DSL creates the menus with reference to the Menu Item name and the CAD Block class name. So, users would use the DSLs to create new blocks and add items to the menu so that the new CAD Block would be useable. Then you compile the Java application which is the CAD program.
So, for example user 1 creates some new CAD Blocks, e.g. Chair, tree, sandwich. When they compile the application these three blocks are now available and a person using that version of the application can create drawings which include chairs, tree, and sandwiches.
User 2 either creates different blocks, or they don't create any blocks but they would like to be able to use the new blocks created by user 1. Then suppose they'd also like to be able to use from other blocks from a different user at the same time. They can't just take the application created by user 1, because it doesn't have user 3's new blocks. So these things really want to be like libraries. I just don't know how to make that happen.
[Updated on: Wed, 13 November 2013 22:39] Report message to a moderator
|
|
|
|
|
Re: Application plug-in strategy? [message #1185161 is a reply to message #1185124] |
Wed, 13 November 2013 23:22 |
Gary Worsham Messages: 176 Registered: September 2013 |
Senior Member |
|
|
Replacing application modules is fine. Ideally, I do want it to be something the user deals with at run time.
As I see it, part one of what I want to accomplish can be done simply by replacing .class files (brute force). MY question goes beyond that though in that the system creates files, in this analogy they would be "drawings". I am trying to anticipate compatibility issues where a drawing was created with some library that the user doe not have. It would be great to have some warning "this drawing requires CAD Block library xxxx.yyy.zzz".
[Updated on: Thu, 14 November 2013 00:59] Report message to a moderator
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.02528 seconds