coowoole / vosao

Automatically exported from code.google.com/p/vosao
GNU Lesser General Public License v2.1
0 stars 0 forks source link

Can not install large plugin file #561

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Create plugin with dependencies to other jars (app engine + jersy + 
objectify)
2. Try to install it
3. You get time out from app engine and you have half and not working 
installation

I think the plugin should be installed from the web in two steps, 
1) save the url and setup cron job.
2) cron should run in background installing the plugin.

another option in to add the artifacts, separately by selecting the plugin and 
upload artifact to its context.

This is a critical bug from my point of view, I even considered to migrate to 
other non app engine cms, but I think I have a work around, I may disable the  
call to uninstall in method install at PluginLoader then I'll be able to 
install the plug in in parts, I will also try to create a hook to install from 
url, I hope it will do the job.

Original issue reported on code.google.com by m@bidxbid.com on 13 Mar 2012 at 9:53

GoogleCodeExporter commented 9 years ago
1. Move jars to Vosao depoyment war and keep config+resources in plugin war. Of 
course you will need to redeploy app in case of plugin changes.

2. If your plugin data model is separate from Vosao's data then consider to 
organize your big plugin as separate GAE application and just call rest 
services from plugin. For example main app: 

www.site.com - Vosao
static.site.com - CDN with static content
plugin.site.com - plugin application

Current plugin Vosao's architecture doesn't work well for big plugins. Storing 
classes in DB costs too much.

Original comment by kinyelo@gmail.com on 17 Mar 2012 at 2:32

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
I tried that at first, and it worked Vosao find the jars.
But I had a copy of the jars in my API and in the plugin as a result (Maven did 
that automatically).
so I found an other work around that fits better for me, I just got Vosao code 
I add my API dependency to pom XML, and add my service interface to velocity 
directly at PageBusinessImpl class
context.put("myAPI", myAPI.create());

now I can access my plugin via velocity in the following manner:
${myAPI.doSomthing()}
I still need to install Vosao on each change.
Those work a round's are good for developers, but for the general public nor 
for the average administrator it wont be easy, it also hard to share plugins 
and grow Vosao community.
I guess the best option is to change the plugins install mechanism, so you'll 
be able to install plugins that contains XML descriptor file with all JAR's 
URI's, then a cron job will install it in the background, vosao-plugin.xml 
might be a good place to do that.
One can store its plugin in a bucket or use maven to retrieve the JAR's

Original comment by Moshe.Beeri on 17 Mar 2012 at 6:45