Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Rich Client Platform (RCP) » Application plug-in strategy?
Application plug-in strategy? [message #1184971] Wed, 13 November 2013 20:32 Go to next message
Gary Worsham is currently offline Gary WorshamFriend
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 Very Happy .

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 Go to previous messageGo to next message
Christian Dietrich is currently offline Christian DietrichFriend
Messages: 14661
Registered: July 2009
Senior Member
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 Go to previous messageGo to next message
Gary Worsham is currently offline Gary WorshamFriend
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 #1185123 is a reply to message #1185112] Wed, 13 November 2013 22:47 Go to previous messageGo to next message
Christian Dietrich is currently offline Christian DietrichFriend
Messages: 14661
Registered: July 2009
Senior Member
Hi,

Simply sharing the block DSL files is no option?


Twitter : @chrdietrich
Blog : https://www.dietrich-it.de
Re: Application plug-in strategy? [message #1185124 is a reply to message #1185123] Wed, 13 November 2013 22:50 Go to previous messageGo to next message
Christian Dietrich is currently offline Christian DietrichFriend
Messages: 14661
Registered: July 2009
Senior Member
Or do you want to do this at application runtime?
Then you would interpret the models instead of compiling them
Or you need a plugin mechanism as eclipse/OSGi offer it


Twitter : @chrdietrich
Blog : https://www.dietrich-it.de
Re: Application plug-in strategy? [message #1185161 is a reply to message #1185124] Wed, 13 November 2013 23:22 Go to previous messageGo to next message
Gary Worsham is currently offline Gary WorshamFriend
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

Re: Application plug-in strategy? [message #1185474 is a reply to message #1185123] Thu, 14 November 2013 04:24 Go to previous messageGo to next message
Gary Worsham is currently offline Gary WorshamFriend
Messages: 176
Registered: September 2013
Senior Member
Christian Dietrich wrote on Wed, 13 November 2013 17:47
Hi,

Simply sharing the block DSL files is no option?


Sure it's a great option, for people who are willing to get into writing code and dealing with Eclipse. But I also want to make it as easy as possible for people to share the block classes without requiring that complexity.
Re: Application plug-in strategy? [message #1185623 is a reply to message #1185474] Thu, 14 November 2013 06:48 Go to previous messageGo to next message
Christian Dietrich is currently offline Christian DietrichFriend
Messages: 14661
Registered: July 2009
Senior Member
So your question is zero Xtext related?

Twitter : @chrdietrich
Blog : https://www.dietrich-it.de
Re: Application plug-in strategy? [message #1185668 is a reply to message #1185623] Thu, 14 November 2013 07:29 Go to previous messageGo to next message
Uli Merkel is currently offline Uli MerkelFriend
Messages: 250
Registered: June 2013
Senior Member
Hi Gary,

I just went through chapter 6 "Customization" of Lorento Bettini's book (ISBN:978-1-78216-030-4)

XTEXT and XTEND use Dependency Injection allover the place.
Perhaps this would give you a way to provide flexibility
for each customer if you manage the DI replacement.
Re: Application plug-in strategy? [message #1186116 is a reply to message #1185623] Thu, 14 November 2013 13:41 Go to previous message
Gary Worsham is currently offline Gary WorshamFriend
Messages: 176
Registered: September 2013
Senior Member
Christian Dietrich wrote on Thu, 14 November 2013 01:48
So your question is zero Xtext related?


Well, I thought that maybe it was a common goal for people developing their DSLs, but yes, I'm sorry. I'll ask the mods to move this thread over to the JDT or RCP area. I did a little more reading last night and it's possible, if I have enough time to work on it, that I could rearchitect my current Swing application over to SWT leading to an Eclipse RCP approach.
Previous Topic:Exceptional closing of helpView in RCP application base on Kepler
Next Topic:Can't reproduce application launch on command-line
Goto Forum:
  


Current Time: Tue Mar 19 02:03:31 GMT 2024

Powered by FUDForum. Page generated in 0.02528 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top