Java plugins best practises, examples etc.

If you have questions or if you want to share your opinion about Aware IM post your message on this forum
Post Reply
hpl123
Posts: 2579
Joined: Fri Feb 01, 2013 1:13 pm
Location: Scandinavia

Java plugins best practises, examples etc.

Post by hpl123 »

Hi all,
I am venturing into developing custom Java plugins and intend to develop some for own projects and potentially some for fellow developers to buy and I have read the programmers reference and currently studying all things Java and I would be interested in hearing from developers that have developed java plugins (forum or PM).

- Best practices?
- What "type" of plugin have you developed (function, process etc.)?
- Examples of what you have done? Which "features" implemented etc.
- Plugin "independence" (internalising dependencies etc.) if the plugin is to be shared?
- OS independence, anything special to do to get the plugin fully working on all OS´s Aware supports?
- Anyone doing "licensing" etc. for plugins?
- Things to think about?
- Pitfalls, things to avoid?

Thanks in advance.
Henrik (V8 Developer Ed. - Windows)
intra
Posts: 279
Joined: Thu Oct 11, 2012 1:30 pm
Location: Australia

Re: Java plugins best practises, examples etc.

Post by intra »

- Anyone doing "licensing" etc. for plugins?

I did bring this up at a conference previously.

I think it would be good for developers who have made plugin's to have a mechanism where we could use AwareIM's mac address validation or some other mechanism to either allow or disallow a particular plugin to work.

Example:
You make a plugin that for a specific installation, AwareIM already makes a unique ID and does a MAC Address check. Being able to access that via a library for a validation would allow third party plugin developers to ensure that their plugins remain at that customer site.
Avid Linux user....
hpl123
Posts: 2579
Joined: Fri Feb 01, 2013 1:13 pm
Location: Scandinavia

Re: Java plugins best practises, examples etc.

Post by hpl123 »

intra wrote:- Anyone doing "licensing" etc. for plugins?

I did bring this up at a conference previously.

I think it would be good for developers who have made plugin's to have a mechanism where we could use AwareIM's mac address validation or some other mechanism to either allow or disallow a particular plugin to work.

Example:
You make a plugin that for a specific installation, AwareIM already makes a unique ID and does a MAC Address check. Being able to access that via a library for a validation would allow third party plugin developers to ensure that their plugins remain at that customer site.
I have thought about this as well and working on a solution for it. What I thought about as an identifier is the BS name and while that isn´t 100% effective as a user might want to "move" the plugin to another BS and if they are "mischievous" (dicks), they could still use the old one on the old BS as it´s no way to "unregister" the old plugin. I am working on an idea about how to solve that but not sure it will work (another option might be a nontransferable license, see below).

Fixed, nontransferable license? It is possible to "hardcode" the bsname into the plugin and only run if the BS is the one hardcoded in the plugin and then it´s fixed and works (but presents a problem if a customer then wants to move that license to another BS, read above). One solution to this is selling fixed/nontransferable licenses i.e you buy a plugin/license for BS and that´s it and you can´t change it. If you need the plugin for another BS, you will have to buy another license. Is this viable, what do you think?
Henrik (V8 Developer Ed. - Windows)
PointsWell
Posts: 1457
Joined: Tue Jan 24, 2017 5:51 am
Location: 'Stralya

Re: Java plugins best practises, examples etc.

Post by PointsWell »

hpl123 wrote:
intra wrote:If you need the plugin for another BS, you will have to buy another license. Is this viable, what do you think?
Depends what you are selling and at what price point.
hpl123
Posts: 2579
Joined: Fri Feb 01, 2013 1:13 pm
Location: Scandinavia

Re: Java plugins best practises, examples etc.

Post by hpl123 »

I am thinking mainly of licensing model and not so much price model at this point but of course licensing model would have to be taken into consideration when thinking of price when I/we get there.

I have tried various things in Java/Aware and difficult to do a good licensing solution:
- I have done the bsname hardcode solution and works (proof on concept OK).
- I have created a licensing server solution where an Aware app via REST acted as licensing negotiator and works (proof of concept OK) BUT I see some issues with doing it this way. One issue is uptime, if the licensing server is down it could create problems (I did solve this though through another mechanism). Another thing is future reliability etc. of the licensing server party i.e if the developer doing the plugins and that has the licensing server up and running is hit by a bus, the licensing server and thereby plugin would at some point stop working. Yet another thing is license server load i.e the licensing server might get a lot of requests and would in most cases be unfeasible if the developer has multiple plugins with many requests etc..
- I have looked into creating a stand alone licensing server solution outside of Aware and can be done in a simple way (low tech data repository) or advanced way (integrate a "real" licensing server solution). IMO, none of these solution seems viable for the scope of plugin development.

I think the bsname hardcode with untransferable license would have to be the model, I at least can´t think of anything else ATTM. Anyone else have any thoughts/ideas?
Henrik (V8 Developer Ed. - Windows)
Post Reply