A JBoss Project
Red Hat
This is the archived New & Noteworthy page that is also part of  4.2.0.Final

What's New in 4.2.0.Beta1

Arquillian

Arquillian XML Editor

The Arquillian XML Editor makes Arquillian tests easier to configure.

arquillianxmleditor

The editor has been created using the Sapphire framework (http://www.eclipse.org/sapphire). It includes the following features:

  • editing arquillian artifacts (containers, groups, extensions, protocols and engines)

  • proposing possible values of containers and protocols

  • adding the required dependencies for containers and protocols

Related JIRA: JBIDE-16791


Aerogear

Hybrid Mobile (Cordova) Tools

Search and use Cordova engines from local file system

Hybrid Mobile tools can search and use Cordova engines from local directories. This permits custom Cordova engines to be used together with the tools. At this time only custom engines that adhere to the file and naming structure of Apache Cordova distributions will be recognized by the tools.

EnginePreferences

Related JIRA: JBIDE-16408

Preferences for default engine

A preference is added for selecting a default engine. Default engines are used when a configured engine for a project is removed and on the new project wizard to pre-select the engine. See above for a screen shot for the new preference node.

Related JIRA: JBIDE-16550

Plug-in registry is now cached

The registry information is now cached. This causes significantly less network calls when using Cordova Plug-in Discovery wizard.

Related JIRA: JBIDE-16692

Support for XCode 5.1

XCode simulator integration has been updated to support XCode 5.1 version.

Related JIRA: JBIDE-16744

Cordova Plug-in Discovery wizard has an option to show already installed plug-ins

There is a new "Show Installed" check box to show already installed Cordova plug-ins on a project.

showinstalled

Related JIRA: JBIDE-16257


BrowserSim

JavaFx web engine and debugger support on Linux

Now there is a Linux specific option (enabled by default) to enable GTK2 for the process launched by BrowserSim / Cordovasim. It allows using javaFx web engine and debugger on Linux:

GTK selection option

Related JIRA: JBIDE-16732

Multiple version support for Cordovasim

Now Cordovasim uses the same engine (cordova.js) as HMT (Hybrid Mobile Tools) and handles it in an appropriate way:

CordovaSim multiple version support

Related JIRA: JBIDE-16390

Eclipse logging for JavaFx web engine

Now the output of the main javascript console functions (console.log, console.info, console.warn, console.error) is displayed in the Eclipse console. The option is now available for both SWT WebKit and JavaFx web engines:

JavaFx Eclipse console logging

Related JIRA: JBIDE-16587

Battery Status support

Now CordovaSim has Battery Status support. It gives the ability to simulate batterystatus, batterylow and batterycritical events.

Battery Status support

Related JIRA: JBDS-2858


CDI Tools

Apache DeltaSpike Partial Beans

CDI tools recognize now DeltaSpike partial beans which are taken into account by the related tools features such as validation, code completion, hyperlinks, refactoring, etc.

Related JIRA: JBIDE-13419


Forge Tools

Connection Profiles

We provided deep integration between the Forge 2 database add-on and the Eclipse DTP project. Connection profiles created with Forge 2 can be used in DTP and the other way around.

Bring up the connection profile wizard as illustrated below.

connection

Fill out the fields to create the desired connection profile and push Finish.

wizard

Et voila, you can see the newly created profile in the DTP Data Source Explorer. Moreover you can connect to the data source and view the contents of the tables as illustrated below.

explorer

Embedded Forge Console

The embedded Forge console can now also be used with the included Forge 2 runtime.

forge230

You can switch between both consoles using a drop down menu in the Forge console toolbar.

dropdown

Forge 2 Runtime

Very good news for Forge 2 users! Forge 2 went final in the meantime and we included runtime version 2.3.0.Final.

f2startup

Lots of useful new commands have been implemented in the meantime. Bring up the list of available commands using the Ctrl+5 (or Cmd+5) keystroke.

f2commands

Forge 1 Runtime

The embedded Forge 1 runtime is now Forge 1.4.4.Final!

forge144

JST / JSF / HTML Editor

Non-standard HTML attribute validation (e.g. ng-*)

It’s now possible to ignore non-standard HTML attributes. We contributed that feature to Eclipse Luna (Milestone 6). This is typically needed when developing Angular JS applications as the HTML validator considers Angular JS ng-* attributes as invalid html (which is actually correct since the proper syntax to be 100% compatible with the html5 spec is to use data-ng-*).

ng

With this change we hope to now strike the right balance between those liking strict and those preferring relaxed validation.

Related JIRA: JBIDE-16622

Drop without dialog from Palette

When a widget from Palette view is dragged and dropped the corresponding New Widget wizard is opened to let you fine tune the content. This is great for beginners and complex tags but if you just want the default text you can now hold down Ctrl (for Linux and Windows) or Alt/Option (for Mac) and now when the widget is dropped to the HTML Editor the code snippet is inserted without any dialog.

Faster and more efficient.

Related JIRA: JBIDE-16636

New Heading wizard for jQuery Mobile Palette 1.4

New Heading widget (introduced in jQuery Mobile 1.4) is now available in HTML5 Palette view.

heading

Related JIRA: JBIDE-16486


Maven

JBoss Maven Integration

Maven Profile Management UI

We contributed the Maven Profile Management UI to the m2e project. You get the same features, the Ctrl+Alt+P shortcut still works but all that is now part of m2e itself (starting from m2e 1.5 Luna M6).

The Maven Profile Management feature was removed from the JBoss Tools update site and the Red Hat Developer Studio installer.

Related JIRA: JBIDE-15836


OpenShift

Application wizard

Downloadable Cartridges and all new UX

We overhauled the application wizard that was becoming pretty crowded.

We also introduced support for downloadable cartridges. Downloadable cartridges in OpenShift allow you to pass a git repository url which contains your custom cartridge.

Your cartridge code may run as web- (standalone) or add-on-cartridge (embedded cartridge). JBoss Tools supports both breeds.

New Application wizard

When you launch the OpenShift application wizard you will get to chose whether you want to use your existing application or create a new one.

create new or import existing

Use an Existing Application

Using your existing application is as easy as picking it from the list of all your OpenShift applications. You may freely type it’s name and get content assisted when typing. Alternatively you may hit browse and choose among your applications across all your domains.

select existing application

Code Anything custom cartridge

When creating a new application you will have to choose the application type (cartridge) up-front. You may choose among the predefined cartridges that are shipped with your OpenShift server. Alternatively you may also decide to provide your own framework code via the url of your git repository ("Code Anything").

downloadable cart type

Adding Cartridges

The page for configuring application details such as the name, domain, gear and the add-on (embeddable) cartridges now only shows cartridges you have added. Initially the list will be empty.

application configuration

You now can add embeddable cartridges. Here you can choose among the predefined ones or provide your own cartridge code.

downloadable cart embedded

Related JIRA: JBIDE-15905


Server Tools

JBoss Server Adapters

Deployment over management

AS 7, EAP 6 and WildFly server adapters now support deploying over management as opposed to the file management api.

The advantage of deployment over management is that you can do this with local and remote servers without having direct access to the filesystem (you of course need to have access to the management api).

The disadvantage compared to file based deployment is that you cannot do incremental updates, it has to be full deployments. Thus if you have large deployments or want to update files incrementally the local/file based deployment is to be preffered.

Optional runtimes for remote servers

Servers configured as remote no longer require a runtime locally installed. Allowing you to do deployments/queries remotely.

Remote servers allow optional runtime

Adding a local runtime to your server helps with finding things like default ports, and may be required for proper functioning of some lesser-used functionality like the JMX explorer, but for most operations, a remote server no longer requires a local runtime to be present.

Whether or not a profile requires a runtime is determined by how that profile functions. Servers configured for local use always (currently) require a local runtime, while remote servers don’t anymore.

Related JIRA: JBIDE-15162

Profiles

All the server adapters for JBoss AS, WildFly and EAP now has a notion of profiles.

A profile is a set of functionality and pre-configured options that help you decide how you want to run your server and what types of actions it should take for all the different types of functionality.

While earlier server adapters still only have two such profiles (local and remote servers), any server adapter based on JBoss AS 7 or later will have two additional options, specifically whether or not to prefer using "Management" operations instead of filesystem operations.

A server set in a profile preferring management operations will connect to the server’s management service to perform actions such as shutdown, deployment, and determining the state of the server. A server not preferring management operations will continue to, for example, run a shutdown command over ssh to terminate the server, or send files over ssh to your remote server’s deployment folder.

Selecting the profile for your server

Above, you can see how to select the profile you want to use. When you select a profile you will get another page asking for the details needed for that profile. The image below shows how that looks for a remote server.

Configuring your remote server's details

Related JIRA: JBIDE-9212

Deploy-Only server

Profiles

Deploy Only server now supports two profiles: local and remote. Local is similar to how it worked before (deploy files locally) and remote is adding support for deploying via Eclipse RSE system (such as secure copy over SSH).

The first step of the New Server wizard is to select either one or the other of these profiles.

Selecting the profile for your Deploy-Only Server

When configuring the server for local use, a deploy folder and a temporary deploy folder are required.

Configuring the Deploy-Only Server for local use

When configuring the server for remote use, you’ll be asked to also provide a hostname for the server.

Configuring the Deploy-Only Server for remote use

Start and Stop Scripts

The Deploy-Only server now allow optional start and stop scripts which are used when launching and stopping the server.

Previously Deploy-Only just assumed the server was started, now you can tell it to actually do a start and stop command.

Toggling whether to take launch or shutdown actions

By default there are no start and stop commands available.

Viewing the launch configuration for a server that will not launch

If you toggle the "Server is externally managed" you will be able to specify commands for start and stop.

Viewing the launch configuration for a server that will launch

When attempting to shut down your server, the command you’ve entered will be executed on the local or remote system. If the shutdown command fails, though, the Deploy-Only server will attempt to kill the process that was used to launch the server. Users configuring the Deploy-Only server to run the launch or shutdown scripts that wrap a java command (such as JBoss AS, EAP and WildFly) terminating these scripts may not actually terminate the backing java command.

Related JIRA: JBIDE-7515


Usage

Usage tracking for installs and server creation

Usage reporting is now able to track individual events besides just pure startups. In this beta we activated two kinds of event tracking.

  • Installs from JBoos Tools Central

  • New server creation

ga

These we will use to learn more about how our users are using the tooling and improve tooling going forward.

All information which is going to be collected is reflected in Preferences for you to review:

preferences

As always JBoss Tools will not send any information before a user have opted in, nor is there any personal information sent.

Related JIRAs: JBIDE-16800, JBIDE-16424


Web Services Tools

Server-side JAX-RS 2.0 Support

JAX-RS 2.0 is part of JavaEE7 and JBoss Tools now provides you with support for this update of the specification.

JAX-RS Filters and Interceptors

The JAX-RS tooling now detects server-side JAX-RS Interceptors and Filters, i.e., implementations of javax.ws.rs.ext.ReaderInterceptor, javax.ws.rs.ext.ResponseInterceptor, javax.ws.rs.container.ContainerRequestFilter and javax.ws.rs.container.ContainerResponseFilter.

Such implementations are included into the JAX-RS Metamodel associated with the parent Eclipse project, and the JAX-RS validation does not complain anymore when they are annotated with @Provider.

Related JIRA: JBIDE-16753

Custom Name Binding annotation

The new @NameBinding meta-annotation is detected when found on a user-defined annotation. This user-defined annotation can be used to bind specific Filters and Interceptors to a Resource Method or a Resource (and hence, all methods of this resource) or to the whole Application.

@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(value = RetentionPolicy.RUNTIME)
@NameBinding
public @interface CustomInterceptorBinding {}

Related JIRA: JBIDE-16824

Validation

The JAX-RS validator reports a problem if the user-defined @NameBinding annotation(s) on a Filter or Interceptor is(are) not bound to a Resource, a Resource Method or the Application (and vice-versa), as the JAX-RS Specification states:

A filter or interceptor class can be decorated with multiple binding annotations. In this case, in accordance with the semantics described in CDI, all those annotations must be present in the resource class or method for the binding to be established.

Also, the @PreMatching annotation is only allowed on implementations of javax.ws.rs.container.ContainerRequestFilter (in which case, the user-defined Container Request Filters are invoked before the Resource method is matched). The JAX-RS Validator will report a problem if this annotation is used on any other type of JAX-RS element.

Related JIRAs: JBIDE-16752, JBIDE-16754

When a Filter or Interceptor is annotated with a user-defined name binding annotation, then an hyperlink on this annotation provides the user with navigation to the associated resources/resource methods/application that have the same user-defined annotation (and vice-versa).

For example:

@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(value = RetentionPolicy.RUNTIME)
@NameBinding
public @interface CustomInterceptorBinding {

}

with

@ApplicationPath("/app")
@CustomInterceptorBinding
public class RestApplication extends Application {

}

and

@Provider
@CustomInterceptorBinding
public class CustomResponseFilterWithBinding implements ContainerResponseFilter {

	@Override
	public void filter(ContainerRequestContext requestContext,
                     ContainerResponseContext responseContext)
			throws IOException {
		...
	}
}

In that case, ctrl (or cmd) ` click on @CustomInterceptorBinding allow for navigation between all those 3 classes.

jaxrs namebinding navigation

Related JIRA: JBIDE-16829

JAX-RS Endpoint template

The JAX-RS Endpoint templates that are displayed in the Project Explorer have been updated: each parameter name in the @Path, @QueryParam and @MatrixParam annotations is followed by its type as shown below:

  • /rest/customers/{id:Integer} (a @Path named id and of type java.lang.Integer)

  • /rest/customers?start={int}&size={int:20} (two @QueryParam parameters, named start and size, both primitive int, the later one with the optional @DefaultValue set to 20).

Related JIRA: JBIDE-12029


back to top