DevFaqNbmPostInstall

How to specify post-install code in NBM

NBM allows to declare its own custom code in NBM archive. This code is called-back by Autoupdate/Updater at the end of installation of NBM into IDE.


your_module.nbm
     |   
     +- Info
     |   |
     |   +--- info.xml
     |
    +- netbeans
        |
        +--- modules...
    |
    +-main
        |
        +--- main.properties
        +--- <custom code>

If Autoupdate/Updater detects main directory in the NBM archive then main.properties descriptor contains information about the own code. Updater runs specified Java code according to these properties.

The properties expected in main.properties are:

Property Value
mainClass name of the main class, run after module installation from the NBM
relativeClassPath classpath elements, may contain more elements
jvm.parameters properties for JVM, arguments inserted before the main class name
mainClass.arguments more arguments for the main class, added after the main class name


The run command is built on top of properties above.

#1 Problem: There was a bug: variable %IDE_USER% contained as same value as %IDE_HOME% i.e. both links to the platform cluster directory and %IDE_HOME% didn't contain user directory as should be. It was fixed in NetBeans 6.5 platform.

The properties can contain several special variables which Autoupdate replaces by real values:

Variable Value
 %IDE_HOME% platform directory
 %IDE_USER% user directory 1
 %FS% file separator char
 %PS% path separator char
 %JAVA_HOME% the current Java home


Example

  • Using properties mainClass, relativeClassPath, jvm.parameters etc.
  • Reads all special variables like %IDE_HOME%, %JAVA_HOME% etc.
  • Opens some GUI
  • Runs a JDK demo

To see that samplepostinstall project in action

  1. download NBM
  2. run NetBeans IDE (6.0 or newer)
  3. invoke Tools|Plugins and switch to Download tab
  4. add the downloaded NBM
  5. install it and then watch post-install hook what will be executed while installing that plugin



I'm not author of this feature, it's only my investigation.

Do not hesitate to contact me on mailto:jrechtacek@netbeans.org if you have any question.

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo