Archive for August, 2009

Enabling Implicit Context Variables Resolution in Template Files

Thursday, August 6th, 2009

Because almost any template file has external references to context variables (and we’ll eventually find their declarations in code rendering that file), we need to introduce declarations for such implicit variables. IntelliJ IDEA helps us to do this in familiar comment-based way: @vtlvariable comment declares name, type and optional scope file for implicit variables; variable type is inferred from method and #foreach usages. Let’s have a look at the latter variant.
(more…)

Enabling Template Files and Velocimacros Resolution

Wednesday, August 5th, 2009

As you probably know, there’s something special about developing applications with template languages (e.g. Velocity and Freemarker): lack of compile-time information prevents from resolving references to included files and library macros. But this is not a problem anymore — IntelliJ IDEA can help you with the use of specially crafted comments.

Let’s have a look at an example module: a.vm file includes b.vm file via velocity.properties file (i. e. relative paths contained in file.resource.loader.path property).

Press Alt+Enter on an unresolved file reference in a.vm and select a module-wide velocity.properties file declaration (looks most appropriate for a single file).

IntelliJ IDEA finds or creates an implicitly included file (any *.vm file that begins with #* @implicitly included *#) and inserts a @velocityproperties comment into it. Then you can select a velocity.properties file from a list of suitable ones found by IntelliJ IDEA.

The comment itself is quite simple:

#* @velocityproperties path=”<RELATIVE PATH TO VELOCITY PROPERTIES FILE>” runtime_root=”<RELATIVE PATH TO RUNTIME ROOT DIRECTORY>” *#
Base for these relative paths is a folder containing file with comment (in this case, velocity_implicit.vm).

Analyzing Dataflow with IntelliJ IDEA

Wednesday, August 5th, 2009

Upcoming IntelliJ IDEA version, Maia brings you an improved version of the Dataflow to this feature and the completely new Dataflow from this.

Here I am describing how these features work and how they can help you the Code Archeologists better understand your code.

I am using Apache Tomcat source code as an example.
Let’s have a look at the SingleSignOnMessage class and its obscure String authType field.

(more…)

Intelligent Groovy Coding Assistance

Tuesday, August 4th, 2009

As most of you would know, IntelliJ IDEA includes intelligent Groovy support. We have created two live demos that demonstrate how you can effectively use IntelliJ IDEA to build your Groovy applications: Transparent Groovy Assistance and Groovy Specific Support.

Quick Analysis of Spring Bean Dependencies

Monday, August 3rd, 2009

In Maia you can quickly analyze Spring Bean dependencies: just press Ctrl+Alt+Shift+U while editing Spring application context or invoke pop-up menu on a Spring bean. The quick pop-up view displays selected bean with all its dependencies (including external files), to which you can easily navigate by double-clicking diagram elements.

Click thumbnail to view larger image.