JBoss Tools

3 Posts authored by: Denis Golovin

JBoss Tools introduced JSF 2 Composite Component support in version 3.2.0.M1, it matured through several development versions and got a lot of useful features:

  1. Content assist for component developers
  2. Content assist for component users
  3. Validation and quick fixes
  4. Refactoring
  5. Rendering in XHTML Visual Editor
  6. Resource Navigation in source and visual part of XHTML Visual Editor

 

Read full article about JBoss Tools JSF 2 Composite Component Support.

JBoss Tools tycho build now provides code coverage report for eclipse-test-plugins. All eclipse-test-plugin pom.xml files provide meta information about what bundles are instrumented and what classes are included in coverage report through properties:

  • emma.filter - emma filter to define what packages to include to or to exclude from report
  • emma.instrument.bundles - comma separated list of bundles to be instrumented on the fly during tests execution

 

Here is an example from org.jboss.tools.common.test plug-ins

 

<properties>
     <emma.filter>org.jboss.tools.common*</emma.filter>
     <emma.instrument.bundles>org.jboss.tools.common</emma.instrument.bundles>
</properties>

 

To enable code coverage report generation during build

 

-Dcoverage

 

system property should be added to build command line. It activates maven coverage profile to generate coverage reports on per test plug-in basis in text and xml formats. Text reports are printed out to the build console output like

 

     [echo] [EMMA v2.0.5312 report, generated Wed Jul 07 12:11:50 PDT 2010]
     [echo] -------------------------------------------------------------------------------
     [echo] OVERALL COVERAGE SUMMARY:
     [echo] 
     [echo] [class, %]     [method, %]     [block, %]     [line, %]     [name]
     [echo] 61%  (22/36)!     28%  (93/328)!     17%  (1056/6326)!     20%  (308.2/1575)!     all classes
     [echo] 
     [echo] OVERALL STATS SUMMARY:
     [echo] 
     [echo] total packages:     8
     [echo] total classes:     36
     [echo] total methods:     328
     [echo] total executable files:     28
     [echo] total executable lines:     1575
     [echo] 
     [echo] COVERAGE BREAKDOWN BY PACKAGE:
     [echo] 
     [echo] [class, %]     [method, %]     [block, %]     [line, %]     [name]
     [echo] 0%   (0/1)!     0%   (0/7)!     0%   (0/78)!     0%   (0/16)!     org.jboss.tools.common.preferences
     [echo] 0%   (0/2)!     0%   (0/40)!     0%   (0/492)!     0%   (0/125)!     org.jboss.tools.common.text
     [echo] 17%  (1/6)!     4%   (3/77)!     4%   (92/2401)!     4%   (24.9/562)!     org.jboss.tools.common.util
     [echo] 67%  (4/6)!     35%  (11/31)!     19%  (77/396)!     23%  (23.2/102)!     org.jboss.tools.common.reporting
     [echo] 75%  (6/8)!     33%  (25/75)!     21%  (367/1734)!     24%  (99.2/419)!     org.jboss.tools.common.xml
     [echo] 75%  (3/4)!     48%  (11/23)!     24%  (135/562)!     32%  (44.1/139)!     org.jboss.tools.common
     [echo] 75%  (3/4)!     42%  (23/55)!     36%  (153/422)!     36%  (52.4/144)!     org.jboss.tools.common.log
     [echo] 100% (5/5)     100% (20/20)     96%  (232/241)     95%  (64.4/68)     org.jboss.tools.common.zip
     [echo] -------------------------------------------------------------------------------


 

Reports are generated to /target/emma folder of test plug-in.

 

To enable code coverage for your test plug-in just add properties listed above to your plug-in pom.xml file and activate coverage profile as it explained above.

[Note: This blog has been replaced by a more up to date How to Build JBoss Tools 3.2 with Maven 3.]

 

Current trunk version of JBoss Tools can be built with maven 3 and make it faster and easier for everyone.

Prerequisites

  1. Java 1.6 SDK
  2. Maven 3.beta1
  3. About 6 GB of free disk space if you want to run all integration tests for (JBoss AS, Seam and Web Services Tools)
  4. subversion client 1.6.X (should work with lower version as well)

Environment Setup

Maven and Java

Make sure your maven 3 is available by default and Java 1.6 is used.

 

mvn -version

 

should print out something like

 

Apache Maven 3.0-alpha-7 (r921173; 2010-03-09 14:31:07-0800)
Java version: 1.6.0_18
Java home: /usr/lib/jvm/java-6-openjdk/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "2.6.32-22-generic-pae" arch: "i386" Family: "unix"

Sources

Checkout sources from anonymous SVN like

 

svn co https://svn.jboss.org/repos/jbosstools/trunk jbosstools-src

 

This will take some time dependent on your bandwidth

Build Strategies

All commands below is assuming that commands are executed in jbosstools-src folder after sources checked out as it suggested above.

There are several strategies to chose from building everything to build particular component or part of it like all plug-ins, all tests, all features, particular plugin/feature.

 

Target platform should be built first like

 

$mvn -f build/target-platform/pom.xml

 

If you want to just compile the modules, tests can be skipped by adding system property -Dmaven.test.skip=true and you should be able to faster verify compile issues.

Build/Test Everything

Current version cannot be build without local changes because of problem with with drools component, so to go with this scenario you need to remove drools references from pom.xml and site/site.xml. After that to build/test everything use:

 

$mvn clean install

Build/Test Particular Component with Dependencies

For convenience there are aggregator projects defined for each component. It provides a simple way to build/test components with dependencies.

 

$mvn clean install -f build/component/${component.name}.xml

 

where ${component.name} is component you want to build/test. Currently build/component folder contains aggregator projects for:

  1. tests,
  2. jmx,
  3. archives,
  4. as,
  5. common,
  6. seam

 

more is coming soon.

Build/Test Single Component

Be aware that to get this work all dependencies for this component must be installed in maven repo. It can be done by build everything first or by build component and its dependencies using aggregated project as it explained above. You can skip tests for this build and then enable them back when you run single component build.

To build single component use pom.xml in component's folder like it is shown below.

 

$mvn clean install -f ${component.name}/pom.xml

 

where ${component.name} is component's root folder name. For instance to build jmx component use command below

 

$mvn clean install -f jmx/pom.xml

Filter Blog

By date:
By tag: