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!
>>>
>>>
>>>
>>>
>>>
>>
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.