Re: Updating the base NetBeans Platform for my application
Peter Hansson <[email protected]>
| Newsgroups | gmane.comp.java.netbeans.modules.openide.devel |
|---|---|
| Message-ID | <CAC55jYNN+TVr3=8THN0-ohGf_G-wM44SWzFhuVSFMQJRgqOiYA@mail.gmail.com> |
@Johannes: When you update a deployed application using the Update Center method all that really gets updated are modules in a writable user-specific directory. On Windows that would typically be in %APPDATA% somewhere. However, the core of your application doesn't get updated ... because it can't. Again using Windows as example the core of your deployed NetBeans Platform application lives in %ProgramFiles%. So whatever you do there will always be a core left of your deployed application which is tied to NB version you originally released your version on. While you may be able to update every single module of your application it is kinda all temporary because it exists only until someone decides to whipe out that crucial directory in your roaming profile. Then your deployed application has lost all its "upgrades" and you are back to what it looked like when it was first installed. Also: consider things like binary startup wrappers (exe files), application's conf file, etc. Those things you can't update. I hope this clarifies a bit what I meant. Peter On Fri, May 6, 2016 at 1:57 PM, Johannes Wahle <[email protected]> wrote: > @Peter > Are you really sure of this? > > According to > <https://platform.netbeans.org/tutorials/nbm-runtime-container.html> > https://platform.netbeans.org/tutorials/nbm-runtime-container.html > the basic required modules are: > > Startup (org-netbeans-core-startup)—Provides the main method of your > application, as well as all the code needed for starting it up. > Bootstrap (org-netbeans-bootstratp)—Enables the runtime container to > understand what a module is and how to load and compose them into one > application. > Filesystem API (org-openide-filesystems)—Gives your application a virtual > filesystem. > Module System API (org-openide-modules)—Gives you access to the lifecycle > of the modules in your application. > Lookup API (org-openide-util-lookup)—Provides a generic communication > mechanism for inter-modular interaction. > Utilities API (org-openide-util)—Includes several utility classes shared > between the other modules in the runtime container. > > When I build my application via Maven with the release profile, the > target/netbeans_site/ folder contains .nbm files for each of those. > > So I assume that they will be updated. What else would need to be updated? > > Regards, > Johannes > > > On 06.05.2016 13:31, Peter Hansson wrote: > > Clarification : I answered the question as if you mean for your end users > who has your application deployed. That's how I understood the question. > > On Fri, May 6, 2016 at 1:28 PM, Peter Hansson <[email protected] > > wrote: > >> The short answer is no. You cannot change the core (aka the bootstrap) of >> your application without releasing the whole application again. Just look >> to the NetBeans IDE as an example of this: You cannot use the Update Center >> mechanism to upgrade from NB IDE v7 to V8, not even from say v8.0 to v8.1. >> The Update Center mechanism updates modules, not the core itself. >> >> I bet this is an often asked for feature. I myself would like to be able >> to do not only NB platform upgrade seamlessly but I would like as well to >> seamlessly upgrade the JVM that I bundle with the application. My user base >> is conservative and not necessarily IT experts. Getting them to install the >> application in the first place was a struggle. Asking them to re-do this >> process is painful and I fear I'll loose some users over this. >> >> >> Truth be told this feature would probably have been integrated into NB >> Platform years ago if it was simple to do. It isn't. Write-access is at >> least one of the problems that would need to solved. >> >> Your best bet is to release a new module (or change existing module) via >> your Update Center. In this module you would then alert the user that a >> brand new version is available (with download instructions and so on). Give >> the user a verbal instruction of what he needs to do. People have tried >> automating this but you'll only get so far. You can do the download for him >> and you can even auto-execute the installer-exe you've just downloaded but >> there's - AFAIK - no way to programmatically remove the existing version of >> a NB Platform application from within your new installer. And at this point >> in time your old application is still executing. So, you see, there are >> certain problems that need to be overcome. >> >> >> Peter >> >> On Wed, May 4, 2016 at 5:44 PM, Lorthirk < <[email protected]> >> [email protected]> wrote: >> >>> Hello. My application currently resides on NetBeans Platform 7.4, and >>> I'd need a method implemented in NetBeans Platform 8.1. >>> >>> Is there a way to update the modules of the NetBeans Platform itself via >>> the update manager, or do I have to release a new installer? >>> >>> Thanks! >>> >>> >>> >>> >>> >> > >