tmf.ui: Gracefully handle invalid tar import operations

A tar.gz file may have an invalid tar file in the gzip. The
getNextEntry would return null in such a case. This performs
that null check in order to validate the tar and avoid a user-
facing NPE.

Change-Id: I28ae7c787d77a0f1c9136264cfc678d7e52cda1a
Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/87247
Reviewed-by: Hudson CI
Reviewed-by: Marc-André Laperle <marc-andre.laperle@ericsson.com>
Tested-by: Marc-André Laperle <marc-andre.laperle@ericsson.com>
(cherry picked from commit 6facaeb6ec0e729c457abb780fbc05995c0061cd)
Reviewed-on: https://git.eclipse.org/r/87272
1 file changed
tree: ecd2c9cd29f43de6bf0d631f5343f73045e9c3d7
  1. .mvn/
  2. analysis/
  3. btf/
  4. common/
  5. ctf/
  6. doc/
  7. gdbtrace/
  8. lttng/
  9. pcap/
  10. rcp/
  11. releng/
  12. statesystem/
  13. tmf/
  14. .gitattributes
  15. .gitignore
  16. .gitreview
  17. components.dia
  18. components.svg
  19. MAINTAINERS.md
  20. pom.xml
  21. README.md
  22. sync_settings.sh
  23. TraceCompass.setup
README.md

Eclipse Trace Compass

This source tree contains the source code for the Trace Compass plugins for Eclipse.

The plugins are categorized as follows:

analysis/    | Generic extensions to the base framework
btf/         | Best Trace Format (BTF) integration
common/      | Generic utilities that can be used by other plugins
ctf/         | Common Trace Format (CTF) reader library
doc/         | Documentation and code examples
gdbtrace/    | Support for reading and viewing GDB traces
lttng/       | LTTng integration
pcap/        | libpcap integration
rcp/         | Code specific to the RCP version
releng/      | Releng-related plugins
statesystem/ | State System library
tmf/         | Core framework

See the components.svg file for a diagram showing the dependencies between the different components.

Setting up the development environment

To set up the environment to build Trace Compass from within Eclipse, see this wiki page: http://wiki.eclipse.org/Trace_Compass/Development_Environment_Setup

Compiling manually

The Maven project build requires version 3.3 or later. It can be downloaded from http://maven.apache.org or from the package management system of your distro.

To build the project manually using Maven, simply run the following command from the top-level directory:

mvn clean install

The default command will compile and run the unit tests. Running the tests can take some time, to skip them you can append -Dmaven.test.skip=true to the mvn command:

mvn clean install -Dmaven.test.skip=true

Stand-alone application (RCP) packages will be placed in rcp/org.eclipse.tracecompass.rcp.product/target/products.

The p2 update site, used for installation as plugins inside Eclipse, will be placed in releng/org.eclipse.tracecompass.releng-site/target/repository.

Maven profiles and properties

The following Maven profiles and properties are defined in the build system. You can set them by using -P[profile name] and -D[property name]=[value] in mvn commands.

  • -Dtarget-platform=[target]

    Defines which target to use. This is used to build against various versions of the Eclipse platform. Available ones are in releng/org.eclipse.tracecompass.target. The default is usually the latest stable platform. To use the staging target for example, use -Dtarget-platform=tracecompass-eStaging.

  • -Pctf-grammar

    Re-compiles the CTF grammar files. This should be enabled if you modify the .g files in the ctf.parser plugin.

  • -P -build-rcp

    Disables the “build-rcp” profile to skip building the RCP archives.

  • -Prun-custom-test-suite

    Runs a test suite present in releng/org.eclipse.tracecompass.alltests. The test suite to run has to be defined by -DcustomTestSuite=[name], for example -DcustomTestSuite=RunAllPerfTests.

  • -Pdeploy-rcp

    Mainly for use on build servers. Copies the generated RCP archives, as well as the RCP-specific update site, to the paths specified by -DrcpDestination=/absolute/path/to/destination and -DrcpSiteDestination=/absolute/path/to/destination, respectively. Must be used with -Pbuild-rcp!

  • -Pdeploy-update-site

    Mainly for use on build servers. Copies the standard update site (for the Eclipse plugin installation) to the destination specified by -DsiteDestination=/absolute/path/to/destination.

  • -Psign-update-site

    Mainly for use on build servers. Signs all the generated update sites using the Eclipse signing server.

  • -Pdeploy-doc

    Mainly for use on build servers. Copies the generated HTML documentation to the destination specified by -DdocDestination=/absolute/path/to/destination. Some directories may need to already exist at the destination (or Maven will throw related errors).