Skip to content

a-langer/eclipse-oomph-console

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Console Oomph Installer

license p2 marketplace JitPack Maven

Console version of Oomph installer (also called Eclipse installer). Implements a headless installation mode from command line. This project base on patch 66353 of Mikael Karlback.

Available solutions:

Typical use cases:

  • Installation Eclipse with an exact set of features/plugins and with certain preferences.
  • Automation the process of installing and updating Eclipse (using CI\CD).

Supported features and examples of usage

  • Use a console version of Oomph installer; you can download it either from Standalone Oomph console installer (choose the appropriate download for your target platform) or with mvn command. This eclipse installer is provided with org.eclipse.oomph.console.application application to handle command line installations:

    # Check Oomph console version
    # Linux
    mvn org.apache.maven.plugins:maven-dependency-plugin:3.3.0:unpack -Dartifact=com.github.a-langer:org.eclipse.oomph.console.product:LATEST:tar.gz:linux.gtk.x86_64 -DoutputDirectory=./ -Dproject.basedir=./
    # MacOS x86_64
    mvn org.apache.maven.plugins:maven-dependency-plugin:3.3.0:unpack -Dartifact=com.github.a-langer:org.eclipse.oomph.console.product:LATEST:tar.gz:macosx.cocoa.x86_64 -DoutputDirectory=./ -Dproject.basedir=./
    # Windows (powershell)
    mvn "org.apache.maven.plugins:maven-dependency-plugin:3.3.0:unpack" "-Dartifact=com.github.a-langer:org.eclipse.oomph.console.product:LATEST:zip:win32.win32.x86_64" "-DoutputDirectory=./" "-Dproject.basedir=./"
    
    # Linux/MacOS binary
    ./eclipse-installer/eclipse-inst
    # Windows binary
    ./eclipse-instc.exe
    # Following examples may suit a default unix shell; adapt command and argument quoting as needed by your platform/shell
  • Install Eclipse product such as "Eclipse IDE for Java Developers" or "Eclipse IDE for PHP Developers", ex.:

    # Install "Eclipse IDE for Java Developers"
    ./eclipse-inst -nosplash -application org.eclipse.oomph.console.application -vmargs \
      -Doomph.installation.location="$PWD/ide" \
      -Doomph.product.id="epp.package.java"
    
    # Install "Eclipse IDE for PHP Developers"
    ./eclipse-inst -nosplash -application org.eclipse.oomph.console.application -vmargs \
      -Doomph.installation.location="$PWD/ide" \
      -Doomph.product.id="epp.package.php"
  • Install Eclipse project, such as "SWTBot testing tool" or "Model Workflow Engine" (see list of projects), ex.:

    # Install "SWTBot testing tool" over "Eclipse IDE for Java Developers"
    ./eclipse-inst -nosplash -application org.eclipse.oomph.console.application -vmargs \
      -Doomph.installation.location="$PWD/ide" \
      -Doomph.product.id="epp.package.java" \
      -Doomph.project.id="swtbot" \
      -Doomph.workspace.location="$PWD/workspace"
    
    # Install "Model Workflow Engine" over "Eclipse IDE for Java Developers"
    ./eclipse-inst -nosplash -application org.eclipse.oomph.console.application -vmargs \
      -Doomph.installation.location="$PWD/ide" \
      -Doomph.product.id="epp.package.java" \
      -Doomph.project.id="MWE" \
      -Doomph.workspace.location="$PWD/workspace"
  • Install multiple projects over product, ex.:

    # Install "SWTBot testing tool", "Business Intelligence Reporting Tool" and "Model Workflow Engine" over "Eclipse IDE for Java Developers"
    ./eclipse-inst -nosplash -application org.eclipse.oomph.console.application -vmargs \
      -Doomph.installation.location="$PWD/ide" \
      -Doomph.product.id="epp.package.java" \
      -Doomph.project.id="swtbot,birt,MWE" \
      -Doomph.workspace.location="$PWD/workspace" \
      -Doomph.installer.layout="text"
  • Install product and project from custom setup model, ex.:

    # Install "Bash Editor" over "Eclipse IDE for Java Developers" from setup model located in directory "$PWD/setups/"
    ./eclipse-inst -nosplash -application org.eclipse.oomph.console.application -vmargs \
      -Doomph.redirection.setups="index:/->http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/" \
      -Doomph.redirection.setupsDir="index:/->$PWD/setups/" \
      -Doomph.installation.location="$PWD/ide" \
      -Doomph.product.id="epp.package.java" \
      -Doomph.project.id="bash.editor" \
      -Doomph.workspace.location="$PWD/workspace" \
      -Doomph.installer.verbose=true
  • Install product and project from Oomph Configuration, ex.:

    # Install "Business Intelligence Reporting Tool" over "Eclipse IDE for Eclipse Committers" from Configuration
    ./eclipse-inst -nosplash -application org.eclipse.oomph.console.application -vmargs \
      -Doomph.configuration.setups="https://raw.githubusercontent.com/eclipse/birt/master/build/org.eclipse.birt.releng/BIRTConfiguration.setup" \
      -Doomph.installation.location="$PWD/ide" \
      -Doomph.workspace.location="$PWD/workspace" \
      -Doomph.installer.verbose=true
  • TODO Update Eclipse product and projects (not implemented yet, see 1, 2, 3).

Settings

The Console Oomph Installer settings (see also Eclipse runtime options):

  • oomph.product.id (string, default null) - identifier of product in setup model, ex.:

    # For product with latest version
    -Doomph.product.id="epp.package.java"
    # Or set the specific version for product
    -Doomph.product.id="epp.package.java:latest"
  • oomph.product.version (string, default latest) - version of product in setup model, if not defined in oomph.product.id, ex.:

    -Doomph.product.version="latest"
  • oomph.installation.location (string, default null) - location of product installation, ex.:

    -Doomph.installation.location="$PWD/ide"
  • oomph.installation.id (string, default specific for each product) - directory in oomph.installation.location, ex.:

    -Doomph.installation.id="my-inst-dir"
  • oomph.project.id (string, default null) - identifier of project in setup model, ex.:

    # For single project with default stream
    -Doomph.project.id="swtbot"
    # Or set the specific stream for project
    -Doomph.project.id="swtbot:master"
    
    # For multiple projects with default streams
    -Doomph.project.id="swtbot,birt,MWE"
    # Or set the specific streams for multiple projects
    -Doomph.project.id="swtbot:master,birt:master,MWE:master"
  • oomph.project.stream (string, default master) - stream of all projects in setup model, if not defined in oomph.project.id ex.:

    -Doomph.project.stream="master"
  • oomph.installer.layout (since 1.0.3, string, default progress) - output layout mode, can be "progress" or "text", ex.:

    -Doomph.installer.layout=text
  • oomph.installer.verbose (boolean, default false) - enable verbose output instead of progress bar, ex.:

    -Doomph.installer.verbose=true
  • oomph.installer.ssl.insecure (since 1.0.2, boolean, default false) - disable check of public key certificates (e.g. self-signed ones), ex.:

    -Doomph.installer.ssl.insecure=true
  • oomph.workspace.location (string, default oomph.installation.location) - project workspace location, ex.:

    -Doomph.workspace.location="$PWD/my-workspace"
  • oomph.redirection.setups - location of basic setup model (contain org.eclipse.setup file), will be added to eclipse.ini as "oomph.redirection.index.redirection", ex.:

    # Setup model from URL
    -Doomph.redirection.setups="index:/->http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/"
    # Setup model from directory
    -Doomph.redirection.setups="index:/->$PWD/my-custom-setups/"
  • oomph.redirection.<some_id> overrides - location of additional setup model (also contain org.eclipse.setup file), uses for override basic setup model location, ex.:

    # Basic setup model location
    -Doomph.redirection.setups="index:/->http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/"
    # Additional setup model location (overrides product and project catalog)
    -Doomph.redirection.setupsDir="index:/->$PWD/my-custom-setups/"
  • oomph.redirection.<some_id> additions - location of additional setup model (without org.eclipse.setup file), uses to provides you own setup without altering eclipse Oomph base setup (redirect empty redirectable.products.setup and/or redirectable.projects.setup from default config to you own definitions):

    # Basic setup model location
    -Doomph.redirection.setups="index:/->http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/"
    # Additional products setup models location
    -Doomph.redirection.productsCatalog="index:/redirectable.products.setup->$PWD/my-custom-products/products.setup"
    # Additional projects setup models location
    -Doomph.redirection.projectsCatalog="index:/redirectable.projects.setup->$PWD/my-custom-projects/projects.setup"
  • oomph.configuration.setups (since 1.0.3, string, default null) - location of Oomph Configuration, ex.:

    # From file
    -Doomph.configuration.setups="$PWD/my-custom-setups/Configuration.setup"
    # From URL
    -Doomph.configuration.setups="https://<hostname>/setups/Configuration.setup"

    NOTE: When combined with oomph.redirection.<some_id> product\projects must be from the same setups model as specified in Configuration for the productVersion or stream.

  • setup.p2.agent (string, default null) - directory location of shared pool for features/plugins, ex.:

    # From command line
    -Dsetup.p2.agent="$HOME/.p2"
    # From eclipse.ini
    -Dsetup.p2.agent="@user.home/.p2"
  • eclipse.p2.mirrors (boolean default false) - use repository mirrors.

  • oomph.setup.offline (boolean default true) - use local cache.

  • user.home and oomph.setup.user.home.redirect - change user home directory location (for testing), ex.:

    -Duser.home="$PWD/new-home" -Doomph.setup.user.home.redirect=true
  • <Any jvm options> - any jvm options will be bind to setup model variables, ex.:

    -Dmy.project.option1="my-value1" 
    -Dmy.project.option2="my-value2" 
    -Dmy.project.option3="my-value3"

Related links

Development environment