What's New in 4.2.0.Beta2
Aerogear
Hybrid Mobile (Cordova) Tools
Import Cordova projects
It is now possible to import Cordova projects and start using them as Hybrid Mobile projects, with the new import wizard. This feature can import projects that are created by Cordova CLI
Related JIRA: JBIDE-13649
Add Cordova plug-ins when creating Hybrid Mobile Projects
The New Hybrid Mobile(Cordova) project wizard now provides plug-in selection pages. You can now select an initial set of Cordova plug-ins to be installed to a new Hybrid Mobile project. Starting with org.apache.cordova.console is highly recommended.
Related JIRA: JBIDE-16728
64 bit iOS simulators are now supported
You can select to run 64 bit iOS simulators.
Related JIRA: JBIDE-17099
CordovaJS library provider improvments
It is possible to get Content Assistant on 'cordova' Object as well as on its Properties and Methods in JavaScript.
Related JIRA: JBIDE-15837
BrowserSim
Easier usage of JavaFx web engine and debugger support on Microsoft Windows 64-bit
JavaFx is an alternative to SWT WebKit and enables Windows users to run BrowserSim and CordovaSim without having to install Safari and run these features with a 32-bit Java developer kit.
In past 32-bit was assumed/forced giving problems for users on 64-bit Windows. Now the BrowserSim and CordovaSim will be launched with the appropriate version without the user to start.
If you are on 32-bit Windows you can still install Safari to use SWT WebKit if preferred.
Related JIRA: JBIDE-17258
Process launch console output for BrowserSim / CordovaSim
Process launch console output is implemented for both SWT WebKit and JavaFx web engines. Not only the output of the main javascript console functions (console.log, console.info, console.warn, console.error) is displayed in the Eclipse console, but also logs and errors of the process. Also user can manipulate console (Pin Console, Scroll Lock, etc.) and close BrowserSim / CordovaSim via Terminate button.
Related JIRA: JBIDE-16661
Linked folders support for CordovaSim
Linked folders are honored when project is run on CordovaSim.
Related JIRA: JBIDE-16931
Query parameters support for CordovaSim
CordovaSim now supports query parameters for the start page in launch configuration and via content tag in the config.xml.
Related JIRAs: JBIDE-16388, JBIDE-16389
Forge Tools
Forge 2 Runtime
The included Forge 2 runtime is 2.6.0.Final.
Starting the Forge 2 runtime is now achieved using the Ctrl+4 (or Cmd+4) key combination, the same as for Forge 1 runtimes. When multiple Forge runtimes are installed this key combination starts the default Forge runtime, which is specified and changeable in the Forge preferences.
Forge 2 Wizards
As well as starting the Forge runtime, pressing Ctrl+4 (or Cmd+4) opens a window listing available Forge wizards. The list of wizards is responsive, changing based on the currently selected workspace object. The image below illustrates the available wizards when nothing in particular was selected.
As you can see, there are wizards for creating database connection profiles, for managing Forge addons and for creating a new project.
When a project is selected while pressing the magic key combination, more wizards become available as illustrated in the image below.
Forge 2 Command Line Interface
The wizards above are also available as commands on the Forge command line. Open the Forge Console by navigating through the Eclipse menu (Window→Show View→Other…→Forge→Forge Console) or by typing in the Quick Access text field.
The image below illustrates the available commands in the workspace root.
JBoss Central
New Hybrid Mobile project wizard
JBoss Central now features the Hybrid Mobile Project wizard to let you kickstart new Cordova-based mobile applications.
If the Hybrid Mobile Toolkit is not installed, you’ll be asked to install it, as well as a few useful companion features (CordovaSim, BrowserSim). When using JBoss Tools you’ll also be offered to add LiveReload and the Visual Plugin Editor, if these features are not already installed.
The Spring Project wizard, that was previously featured on JBoss Central, is still available in the File > New > Project…
menu.
Related JIRA: JBIDE-16837
Early Access
We have introduced the concept of 'Early Access' features that can be installed from the Software/Updates
tab of JBoss Central. These features
are experimental or still being developed, so they may contain bugs and may not yet behave correctly.
To support these new incubating features, we’ve updated the JBoss Central view.
UI changes
On the Software/Updates
tab of JBoss Central, you can now see a Show Early Access
checkbox. Once selected, a disclaimer on the unsupported nature of the features you’re about to access will pop up. If you agree to it, the 'Early Access' features will be added to the list of available features. You can
easily differentiate them thanks to their yellow background and the Early Access
label at the right of the description, which provides a link to more information about how these features are (or are not) supported.
Early Access features can be installed and uninstalled just like regular features. Doing so will enable an additional software site from which these incubating components can be installed. Be aware that when updating Eclipse, this may cause some features to be updated unexpectedly.
Related JIRA: JBIDE-16375
Available features
The following features are included in the new 'Early Access' site within JBoss Central
-
Eclipse VJET: includes a JavaScript IDE, Java to Javascript Code Generation + Java Based DOM Kit
-
Arquillian Tools: Create, manage and run integration tests with Arquillian
-
AngularJS Eclipse: see below
Related JIRA: JBIDE-17318
AngularJS Eclipse
AngularJS Eclipse Plugin extends Eclipse WTP to provide:
-
an HTML editor which supports AngularJS expression and directive. See HTML features for more informations.
-
an Angular Explorer view which displays modules, controllers of your project in a tree.
-
a Javascript editor which supports AngularJS features (modules, etc). See Javascript features for more informations.
AngularJS Eclipse relies on the tern.java plugin to manage powerful completion on HTML files (AngularsJS Expression, directives, modules) and Javascripts files (see Tern Eclipse IDE).
If you are new to AngularJS Eclipse, please read this AngularJS Eclipse Getting Started.
Related JIRA: JBIDE-17278
Update and uninstall software from JBoss Central
From the same JBoss Central Software/Updates
page used to install additional features, you can now update features (if a newer version is available), or uninstall them.
Related JIRA: JBIDE-16592
JST / JSF / HTML Editor
JavaScript Editing improvments
Content Assistant in JavaScript is extended with the proposals on Objects, Properties and Functions of ECMA5 JavaScript Specification
Related JIRA: JBIDE-17159
AngularJS Eclipse Plugin integration
If you have AngularJS Eclipse Plugin installed in your Eclipse then JBoss Tools will enable AngularJS support in JavaScript projects automatically. For such projects, JBoss Tools HTML editor now provides AngularJS specific code assist, navigation, etc.
AngularJS Eclipse Plugin is available for installation in the Software/Update tab of JBoss Central (you need to enable Early Access features first).
Related JIRA: JBIDE-17217
Multiple versions of jQuery in jQuery Mobile Palette
Since JBoss Tools 4.2.0.Beta2, jQuery Mobile Palette supports multiple versions of jQuery and jQuery Mobile JS/CSS files in the New Widget dialog.
If there are no jQuery files references in the HTML page when inserting a jQuery Mobile widget from the Palette, then the corresponding JS and CSS links are added to the header element of the page automatically by default (can be disabled).
Related JIRA: JBIDE-17032
Drag and Drop improvements
Drag and Drop from jQuery Mobile Palette was improved and inserts widgets in proper places on the page, not just wherever the cursor/mouse happens to be. For example if you trying to drop a new page into another page then the page will be inserted right after or before the existing page element. If there is no proper place for the widget then a warning message will be shown:
Related JIRA: JBIDE-16321
Palette entries via content assist
There is now one more way to insert an HTML5 widget from the Palette view. All palette entries are available via content assist (Ctrl+Space) as templates.
Related JIRA: JBIDE-16687
Maven
JBoss Maven Integration
m2eclipse-egit integration
The Import > Checkout Maven Projects from SCM wizard doesn’t have any SCM provider by default, which can be pretty frustrating at times. With Git becoming the new de facto source control system, it only made sense to make m2eclipse-egit the sensible default SCM provider for m2e.
m2eclipse-egit will now be automatically installed when a JBoss Maven integration feature is installed from the JBoss Tools update site.
It will be installed by default with JBoss Developer Studio 8.0.0 as well.
Related JIRA: JBIDE-16574
OpenShift
Configure an OpenShift Application for your project
JBoss Tools 4.2.0.Beta adds New/Import OpenShift Application to the configure context menu of your workspace project in the package explorer and navigator. This allows you to create a new OpenShift application for your project via its the context menu. Simply pick Configure → New/Import OpenShift application and we’ll present you the application wizard.
Once the OpenShift application is created, we’ll merge it into your project. Pushing it back via our server adapter or via (E)git will deploy your project to OpenShift.
Related JIRA: JBIDE-10546
Start an Application from Quickstarts
In JBoss Tools 4.2.0 Beta2 you will be able to start new applications from the promoted OpenShift quickstarts. A quickstart will configure the appication-, add-on cartridge(s) and the application template code for you.
The quickstarts comes with predefined list of cartridges for setup. If that list allows you to choose between versions you can Edit them.
Related JIRA: JBIDE-14744
Snapshot and Restore/Deploy
Snapshots allow you to backup and restore your OpenShift application to and from a .tar.gz archive. Full snapshots contain all local files of your application, including the logs.
There is more than just backup and restore in snapshots: Binary deployments are also possible via Deployment snapshots. Deployment Snapshots allow you to deploy to OpenShift without using git.
JBoss Tools allows you both full and deployment snapshot via radio buttons in the snapshot wizard.
You can read all the details about (deployment) snaphots in the OpenShift user guide
Related JIRA: JBIDE-10456
Fully fledged Server Adapter context menu
We geared towards making your life easier and added all application related actions to the OpenShift server context menu (Servers view). We also reorganized the context menu of the OpenShift Explorer to better match the defaults used in Eclipse.
Related JIRA: JBIDE-15897
Project Examples
New Cordova Client + Restful back-end example available
A new mobile application example, contacts-mobile-basic, has been added to the Mobile Applications category of project examples. This example, featured in the Start from a sample section of JBoss Central, combines an Apache Cordova-based front-end client, communicating with an Apache Maven-built, JAX-RS-based back-end service.
Related JIRA: JBIDE-16838
Server Tools
JBoss Server Adapters
JBoss and Wildfly Runtime classpath containers now honor JBoss Module system
Previously, JBoss and Wildfly runtimes in your eclipse workbench would provide classpath containers that consisted of a set of jars found by filesets. If you wanted to update, change, or remove entries, you’d need to customize the list of entries in a preference page, where your only options were to add or remove filesets with includes and excludes patterns.
This "worked", but it really wasn’t good enough. It became downright wrong, though, once the Wildfly servers gained a patching ability to upgrade servers. Finding the proper jar was no longer as simple as using a fileset with an easily located base directory, but instead became dependent upon the actual details of your installation.
Now, that same preference page allows you to add a custom classpath entry for a JBoss module identifier. The classpath containers will search all appropriate directories based on the current state of the installation to locate the correct versions of the jars to be added to your eclipse project’s classpath.
If you already customized the list and want the new classpath resolution you need to reset the settings. You do this at Window → Preferences → Server → Runtime Environment → Default Classpath Entries and select "Restore Defaults".
Related JIRA: JBIDE-9479
Classpath containers will also support jboss-modules dependencies!
Those same classpath containers mentioned above will also be able to customize the container results if your project’s manifest.mf includes a "Dependencies" attribute as specified by https://docs.jboss.org/author/display/MODULES/Manifest+module+information [Wildfly’s documentation].
In general, this feature is most useful if your project is making use of the application server’s lower level functionality, or if your deployment is intended as, or has dependencies on, a JBoss Module.
Related JIRA: JBIDE-17236
JMX enhanced with JVM Monitor
JVM Monitor
The MBean Explorer, currently renamed to the JMX Navigator, has an exciting new addition. After connecting to a given JMX Connection, the properties view will now fill up with an expansive UI for profiling many aspects of your running server. The functionality itself is a fork of JVM Monitor, and most of the documentation of that project still applies, though there are some changes.
JVM Monitor is essentially a profiling agent, which will attach its library to your running java application in order to capture profiling data. The profiling data is polled repeatedly, allowing charts, call-trees, thread states, and many other utilities that you’ll find useful in debugging all sorts of problems on your running server.
Also, the JMX Navigator can automatically detect java processes running on your machine, and expose them for both JMX browsing and profiling. This profiling ability is available not just for servers but for all java launches, if you choose to make use of it.
For Beta2, only the automatically detected processes will have this integration with the properties view, but we expect to expand the integration efforts substantially in the upcoming releases.
Most of the documentation for this expansive new functionality can be found at http://www.jvmmonitor.org/doc/index.html. Be aware, though, that not all of the documentation applies currently. Most notable is the absence of a JVM Explorer view. While no complete list of differences is available at the moment, we expect to make one available for our GA release.
Related JIRA: JBIDE-17309
Usage
Usage tracking for wizards, Forge Tools, HTML Editor, Cordovasim, Browsersim
A few new usage events have been added to this milestone release:
-
Number of times JBoss Tools HTML/JSP Editor (Source/Visual tab) and HTML5 Preview are activated
-
Class name of completed IDE wizards
-
BrowserSim and CordovaSim engine names (JavaFx or Webkit) and number of times started
-
Forge Tools runtime version and number of times started
These will be used to learn more about how our users are using the tooling and improve it going forward.
All information which is going to be collected is reflected in Preferences > JBoss Tools > Usage Reporting for you to review.
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-17320, JBIDE-17305, JBIDE-17232, JBIDE-17458
Visual Editor
HTML Preview as a separate plugin
HTML Preview is a WYSIWYG plugin for HTML pages. Preview is not coupled with a particular editor, but editor must have DOM model support. HTML Preview has several cool features like:
-
automatic refresh (enabled by default)
-
refresh on save
-
navigation from source to view and vice versa
HTML Preview can be enabled via Quick Access > HTML Preview. More info about HTML Preview can be found in our blog.
Related JIRAs: JBIDE-16908, JBIDE-16919, JBIDE-16920
HTML Preview as a part of VPE
HTML Preview could also be treated as a possible XULRunner substitution for plain HTML pages (JSF/xhtml still requires XULRunner). The point is that, when XULRunner is unavailable, HTML Preview will be used in "Visual/Source" and "Preview" tabs of the VPE.
Related JIRAs: JBIDE-16414, JBIDE-16925, JBIDE-16926, JBIDE-16927
Web Services Tools
New JAX-RS Wizard for Resource and Application creation
Two new JAX-RS wizards now replace the former "Create Sample RESTFul Web Services" wizard:
-
a wizard to create a new JAX-RS Application. This wizard lets the user choose between creating a subclass of
javax.ws.rs.core.Application
or defining a<servlet-mapping>
element in the project’s web deployment descriptor.
-
a wizard to create a new JAX-RS Resource. This wizard provides the user with default settings for the class name, the
@Path
value at the type level and the supported media-types (by default,application/json
andapplication/xml
). The wizard also provides with code skeleton generation for CRUD methods.
The JAX-RS Resource creation wizard also allows for JAX-RS Application creation if none already exists in the project. This step can be skipped if the user plans to deploy her project on a non-Java EE platform. A third option, labelled "Skip the JAX-RS Application creation", is displayed on the "JAX-RS Application" dialog page shown above.
The JAX-RS Resource wizard can be invoked from "File>New" in the menu bar and in the project’s menu. It also appears in the Servlet group in the toolbar, both in the Java EE and JBoss perspectives.
Both JAX-RS Resource and Application wizards can be invoked from a selected element in the Project Explorer, including classes, packages, source folders and the "JAX-RS Web Services" node. The default values will depend on the current selection.
Related JIRA: JBIDE-17151
JAX-RS parameters validation and support for ParamConverterProviders
The JAX-RS tooling now validates the parameter types in the Resource Methods. In particular, it verifies that the parameter types meet one of the following requirements:
-
Primitive types.
-
Types that have a constructor that accepts a single String argument.
-
Types that have a static method named valueOf or fromString, with a single String argument that return an instance of the type.
-
List<T>, Set<T>, or SortedSet<T>, where T satisfies #2 or #3 above.
-
Types for which a ParamConverter is available via a registered ParamConverterProvider (new addition in JAX-RS 2.0).
Related JIRAs: JBIDE-15592, JBIDE-16763
Quickfixes
When defining custom NameBinding and HttpMethod annotations, the @Target
and @Retention
meta-annotations must be set with appropriate values. Not only the JAX-RS Tooling has been recognizing those custom annotations and validating the values of the aforementioned meta-annotations for a while, but it also now provides users with quickfixes to set the expected values from the error marker in the Java editor (and not only from the Markers view).
Related JIRA: JBIDE-17177
JAX-RS 2.0 Support
Tooling for server-side JAX-RS 2.0 development is almost complete (see New and Noteworthy of JBoss Tools 4.2.0.Beta1). The 2 remaining features to implement are:
-
Support for
@BeanParam
annotation on Resource Methods parameters and Resource fields. This annotation allows for injection user-defined beans whose fields and properties may be annotated with JAX-RS param annotations. -
Provide JAX-RS Fields type validation. This is a similar feature to what’s been implemented in this release with regards to Resource Method parameter validation, but applied on Resource fields.
Related JIRA: JBIDE-16329