Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

RCPTT/Contribution Guide

Revision as of 06:27, 28 September 2022 by Vasili.gulevich.xored.com (Talk | contribs) (Remove Maven projects from workspace, clarify workspace type)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Prerequisites

  • Oracle JDK 11

Source

git@github.com:eclipse/org.eclipse.rcptt.git

See also https://github.com/eclipse/org.eclipse.rcptt

Git configuration

Use these commands in your Git Bash / Terminal window:

$ git config --global user.name "<Your Full Name here>"
$ git config --global user.email "<username@example.com>"
 
$ git config --global core.autocrlf true    # on Windows, or
$ git config --global core.autocrlf input   # on Mac; see [https://help.github.com/articles/dealing-with-line-endings] for details
 
$ git config --global branch.autosetuprebase always   # [http://stevenharman.net/git-pull-with-automatic-rebase] for details
 
$ git config --global color.ui true   # colorful Git output in Mac's Terminal (don't need it on Windows, as Git Bash is already colorful)

Eclipse PDE

Install Eclipse IDE for Eclipse Committers form https://www.eclipse.org/downloads/

Set "Window/Preferences/Java/Compiler/Compiler compliance level" equal to 1.7 or higher.

Install Eclipse features from repositories:

Importing projects

Switch to Git perspective, right-click rcptt repository and select Import projects > Import existing projects > add project to working set > select. Uncheck any projects of "Maven" type. Next, create the desired working sets. When creating working sets, it is easier to use "Java" type of working set, as "Plug-ins and fragments" one requires to add at least one plugin upon creation (and we have none yet).

Main RCPTT working sets:

   ecl: /ecl
   core: /core
   launching: /launching
   runtime: /runtime, /testing/org.eclipse.rcptt.testing.ecl, dependencies/bundles/org.eclipse.rcptt.updates.aspectj.e44x, dependencies/bundles/org.eclipse.rcptt.updates.kepler
   ide: /rcp
   watson: /watson
   runner: /runner
   build: /repository/full, /releng/target-platforms

Formatter

Once you imported the projects, you should import formatter settings:

  1. open Preferences window, go to Java -> Code Style -> Formatter
  2. import formatter.xml profile from rcptt working directory
  3. go to Java -> Editor -> Save Actions
  4. select Format source code (Format edited lines) and Organize imports
  5. set Window/Preferences/General/Workspace/Encoding to utf-8
  6. set Window/Preferences/General/Workspace/Line delimiter to Unix

Target Platform

To apply a target platform:

  1. open actual ide.target file from org.eclipse.rcptt.targets project
  2. click on Set as Active Target Platform link

Launching from Eclipse

Use product build/org.eclipse.rcptt.product/org.eclipse.rcptt.product to create initial launch configuration. Currently product definition lacks some required plugins, so you might have to hit "Add required" button on Plugins tab of created launch configuration.

Launching issues

Sometimes, when product is not used to create launch configuration or due to target platform updates, selected plug-ins are lost from launch configuration. When you restore them, take a note that following plug-ins are required (by RCPTT launchers) but are not covered by direct dependencies:

   org.eclipse.equinox.p2.touchpoint.natives
   org.eclipse.equinox.p2.transport.ecf
   org.aspectj.weaver

Create RCPTT application under test

To create RCPTT attachable AUT, you also need to add a set of plug-ins to configuration.

  • Copy debug configuration "RCPTT" and rename it to "RCPTT AUT".
  • Change workspace path
  • Set the following VM arguments:
-Xms128m -Xmx768m -XX:PermSize=128M -XX:MaxPermSize=192M -DteslaPort=7926 -DeclPort=5378 -Dosgi.framework.extensions=org.eclipse.equinox.weaving.hook
  • Add the following plugins:
    • 'org.eclipse.rcptt.ecl.platform' plugin,
    • working set 'runtime' of RCPTT repo,
    • all plugins containing 'aspectj' from the target platform tree. Note that required plugin 'org.aspectj.weaver' is not added automatically by dependency,
    • remove all plugins containing 'mylyn'.
    • click 'Add required plug-ins' button.
    • set Auto-start to true for the 'org.eclipse.equinox.weaving.aspectj' plugin

If RCPTT AUT start, you should return to RCPTT and import existing project into workspace of RCPTT, choose rcptt/rcpttTests. Then click on rcpttTests > Run as > Run configurations > Remote application under tests > new:

If all is well, you should see a green triangle on AUT item in Application view.

Self RCPTT AUT

  • Copy "RCPT AUT" and rename it to "SELF RCPT AUT".
  • Change workspace path
  • Set the following VM arguments with different ports:
-Xms128m -Xmx768m -XX:PermSize=128M -XX:MaxPermSize=192M -DteslaPort=7927 -DeclPort=5379 -Dosgi.framework.extensions=org.eclipse.equinox.weaving.hook
  • In RCPTT IDE click on Run as > Run configurations > Remote application under tests > new.
    • Set name "selfQ7",
    • Change ELC port to 5379 and Tesla port to 7927 and run.

Third-party AUT's

  • Copy "RCPTT AUT" and rename it to "AUT APP".
  • Change workspace path
  • On plugins tab:
    • remove all plugins that contain 'update' substring.
    • add 'org.eclipse.ui.ide.application' plugin
    • add all plugins containing 'aspectj' from the target platform tree. Note that required plugin org.aspectj.weaver is not added automatically by dependency.
    • add org.eclipse.rcptt.ecl.interop, 'org.eclipse.rcptt.ecl.operations' and 'org.eclipse.rcptt.ecl.filesystem' plugins
    • add org.eclipse.rcptt.updates.runtime
    • click 'Add required plug-ins' button.

Contributing Patches

Prerequisites

  1. An account on GitHub.com
  2. Create eclipse account and sign CLA
  3. Create ssh keys and upload public key to Github


Download modules from p2 repository

Run the build script from the root directory of the project

Creating the review

  1. Create a Pull Request on Github
  2. Observe the request being built at RCPTT HIPP instance

Back to the top