yWorks Ant Explorer Released

yWorks Ant Explorer Released

yWorks is proud to announce the availability of yWorks Ant Explorer, a powerful tool to visualize and explore your Ant build scripts.

Ant Explorer Benefits

Ant build scripts can become hard to understand once they reach a certain "critical mass." Myriads of targets with Gordian dependencies or complex relationships of properties can easily spoil any attempts of maintenance for a developer.

The yWorks Ant Explorer provides the means to tackle such situations by visualizing your Ant build scripts. It automatically

  • presents a build script's targets and their dependencies as well as the used properties in a clear and concise manner

  • evaluates and displays the contents of your properties


But best of all, it can do all the above live when it amazingly animates your Ant build script's execution in real-time!

yWorks Ant Explorer is free of charge and comes with strong integration for popular IDEs. It is available as a plugin for Eclipse, IntelliJ Idea(TM), and NetBeans. A stand-alone version is also available. Please visit the yWorks Ant Explorer home page for more information (http://www.yworks.com/en/products_antexplorer_about.htm).

The integration for IntelliJ Idea can be installed using the Plugin Manager.

About yWorks

yWorks specializes in professional software solutions for the visualization of diagrams and graphs.
Our flagship product yFiles offers state-of-the-art software components that bring high-quality diagramming into any Java application.
Copyright © 2005 yWorks GmbH. All rights reserved.

yWorks Homepage: http://www.yworks.com
yWorks Ant Explorer Homepage: http://www.yworks.com/en/products_antexplorer_about.htm

12 comments
Comment actions Permalink

Some screenshots...



Attachment(s):
ae1.jpg
ae2.jpg
ae3.jpg
0
Comment actions Permalink

Hmm... IJ 5.0.1 RC thinks I have the Newest version even though I have
1.0 beta -b13.

Is this IJ fault or yWorks?

Amnon

0
Comment actions Permalink

It seems that usage of the task is not being interpreted correctly. For example, here is a piece of our ANT script: yWorks Ant Explorer states that property javamail.ready is not defined, when in reality it is defined as a part of ]]>.

Amnon

0
Comment actions Permalink

Hi,

Thanks for your report.
At the moment not all "property-creating" tasks are parsed correctly. We
will add support for this soon.


Johannes Schneider


Amnon I. Govrin wrote:

It seems that usage of the <available> task is not being interpreted
correctly.

For example, here is a piece of our ANT script:
<available property="javamail.ready" type="file"
file="${dist.jetty.ext}/javamail.jar"/>
<target name="dist.javamail" unless="javamail.ready">
<copy todir="${dist.jetty.ext}">
<fileset dir="${javamail.lib}" includes="*.jar"/>
</copy>
</target>

yWorks Ant Explorer states that property javamail.ready is not defined,
when in reality it is defined as a part of <available>.

Amnon

0
Comment actions Permalink

Johannes Schneider wrote:

yWorks Ant Explorer Released


I keep getting an exception when opening my build.xml with the latest
Ant Explorer version:

INFO - y.antexplorer.AntEditor - Error creating parsing Ant File
java.lang.NullPointerException
at com.yworks.ax.c0.a(DashoA14*..)
at com.yworks.ax.c1.taskFinished(DashoA14*..)
at org.apache.tools.ant.Project.fireTaskFinished(Project.java:1909)
at org.apache.tools.ant.Task.perform(Task.java:380)
at org.apache.tools.ant.Target.execute(Target.java:341)
at
org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:133)
at com.yworks.ax.c0.(DashoA14*..) at com.yworks.ax.cz.b(DashoA14*..) at com.yworks.antvis.idea.SelectionComponent.createAnalysis(DashoA14*..) at com.yworks.antvis.idea.AntEditor2.]]>(DashoA14*..)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at com.yworks.ax.b.a(DashoA14*..)
at com.yworks.antvis.idea.AntEditorProvider.createEditor(DashoA14*..)
at
com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl3(FileEditorManagerImpl.java:109)
at
com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$3.run(FileEditorManagerImpl.java:2)
at
com.intellij.openapi.command.impl.CommandProcessorImpl.executeCommand(CommandProcessorImpl.java:84)
at
com.intellij.openapi.command.impl.CommandProcessorImpl.executeCommand(CommandProcessorImpl.java:83)
at
com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl2(FileEditorManagerImpl.java:180)
at
com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl(FileEditorManagerImpl.java:309)
at
com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileWithProviders(FileEditorManagerImpl.java:196)
at
com.intellij.openapi.fileEditor.ex.FileEditorManagerEx.openFile(FileEditorManagerEx.java)
at
com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$4.run(FileEditorManagerImpl.java:5)
at
com.intellij.openapi.command.impl.CommandProcessorImpl.executeCommand(CommandProcessorImpl.java:14)
at
com.intellij.openapi.command.impl.CommandProcessorImpl.executeCommand(CommandProcessorImpl.java:83)
at
com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openEditor(FileEditorManagerImpl.java:26)
at
com.intellij.openapi.fileEditor.OpenFileDescriptor.openFileAskingType(OpenFileDescriptor.java:135)
at
com.intellij.openapi.fileEditor.OpenFileDescriptor.navigate(OpenFileDescriptor.java:102)
at
com.intellij.psi.impl.source.TreeWrapperPsiElement.navigate(TreeWrapperPsiElement.java:70)
at
com.intellij.ide.projectView.impl.nodes.BasePsiNode.navigate(BasePsiNode.java:46)
at com.intellij.util.OpenSourceUtil.navigate(OpenSourceUtil.java:41)
at com.intellij.util.OpenSourceUtil.openSourcesFrom(OpenSourceUtil.java:29)
at
com.intellij.util.EditSourceOnDoubleClickHandler$1.mouseClicked(EditSourceOnDoubleClickHandler.java:49)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:212)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:211)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:211)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:211)
at java.awt.Component.processMouseEvent(Component.java:5491)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at com.intellij.util.ui.Tree.processMouseEvent(Tree.java:70)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3901)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at
com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:9)
at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:20)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:106)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

0
Comment actions Permalink

Are you sure, you have the latest version installed? The stacktrace
looks like it is the old version.

Especially the class "AntEditor2" does not exist anymore...


Could you please check your plugin directory? Maybe there exist two
installed versions?



Johannes Schneider


Jens Voß wrote:

Johannes Schneider wrote:

>> yWorks Ant Explorer Released
>>
>>


I keep getting an exception when opening my build.xml with the latest
Ant Explorer version:

INFO - y.antexplorer.AntEditor - Error creating parsing Ant File
java.lang.NullPointerException
at com.yworks.ax.c0.a(DashoA14*..)
at com.yworks.ax.c1.taskFinished(DashoA14*..)
at org.apache.tools.ant.Project.fireTaskFinished(Project.java:1909)
at org.apache.tools.ant.Task.perform(Task.java:380)
at org.apache.tools.ant.Target.execute(Target.java:341)
at
org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:133)
at com.yworks.ax.c0.<init>(DashoA14*..)
at com.yworks.ax.cz.b(DashoA14*..)
at
com.yworks.antvis.idea.SelectionComponent.createAnalysis(DashoA14*..)
at com.yworks.antvis.idea.AntEditor2.<init>(DashoA14*..)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at com.yworks.ax.b.a(DashoA14*..)
at com.yworks.antvis.idea.AntEditorProvider.createEditor(DashoA14*..)
at
com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl3(FileEditorManagerImpl.java:109)

at
com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$3.run(FileEditorManagerImpl.java:2)

at
com.intellij.openapi.command.impl.CommandProcessorImpl.executeCommand(CommandProcessorImpl.java:84)

at
com.intellij.openapi.command.impl.CommandProcessorImpl.executeCommand(CommandProcessorImpl.java:83)

at
com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl2(FileEditorManagerImpl.java:180)

at
com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl(FileEditorManagerImpl.java:309)

at
com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileWithProviders(FileEditorManagerImpl.java:196)

at
com.intellij.openapi.fileEditor.ex.FileEditorManagerEx.openFile(FileEditorManagerEx.java)

at
com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$4.run(FileEditorManagerImpl.java:5)

at
com.intellij.openapi.command.impl.CommandProcessorImpl.executeCommand(CommandProcessorImpl.java:14)

at
com.intellij.openapi.command.impl.CommandProcessorImpl.executeCommand(CommandProcessorImpl.java:83)

at
com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openEditor(FileEditorManagerImpl.java:26)

at
com.intellij.openapi.fileEditor.OpenFileDescriptor.openFileAskingType(OpenFileDescriptor.java:135)

at
com.intellij.openapi.fileEditor.OpenFileDescriptor.navigate(OpenFileDescriptor.java:102)

at
com.intellij.psi.impl.source.TreeWrapperPsiElement.navigate(TreeWrapperPsiElement.java:70)

at
com.intellij.ide.projectView.impl.nodes.BasePsiNode.navigate(BasePsiNode.java:46)

at com.intellij.util.OpenSourceUtil.navigate(OpenSourceUtil.java:41)
at
com.intellij.util.OpenSourceUtil.openSourcesFrom(OpenSourceUtil.java:29)
at
com.intellij.util.EditSourceOnDoubleClickHandler$1.mouseClicked(EditSourceOnDoubleClickHandler.java:49)

at
java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:212)
at
java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:211)
at
java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:211)
at
java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:211)
at java.awt.Component.processMouseEvent(Component.java:5491)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at com.intellij.util.ui.Tree.processMouseEvent(Tree.java:70)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:3901)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at
com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:9)
at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:20)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:106)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)

at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)

at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

0
Comment actions Permalink

Johannes,

FYI, the sequence "righ-click, go to source" on an Ant target produces the following:


Error during dispatching of java.awt.event.InvocationEvent[INVOCATION_DEFAULT,runnable=com.yworks.ax.bz@134b846,notifier=null,catchExceptions=false,when=1124107751262] on sun.awt.windows.WToolkit@99c59d: Index: 2, Tab count: 2
java.lang.IndexOutOfBoundsException: Index: 2, Tab count: 2
at javax.swing.JTabbedPane.checkIndex(JTabbedPane.java:1562)
at javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:462)
at com.intellij.ui.TabbedPaneWrapper$TabbedPane.setSelectedIndex(TabbedPaneWrapper.java:43)
at com.yworks.ax.bz.run(DashoA10*..)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:9)
at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:170)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:106)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)


Regards,

Franck

0
Comment actions Permalink

Johannes Schneider wrote:

Are you sure, you have the latest version installed?


Hi Johannes,

I checked, and it turned out the version I had installed was in fact
an old one (1.0 beta b-13). The strange thing though was that the
Plugin manager labeled that version as "Newest" and saw no need to
upgrade it. After a "manual upgrade", my build file now works fine...

Thanks for the hint,
Jens

0
Comment actions Permalink

Thanks for posting...

I'll upload a bugfix soon...



Johannes Schneider


Franck Rasolo wrote:

Johannes,

FYI, the sequence "righ-click, go to source" on an Ant target produces the following:


Error during dispatching of java.awt.event.InvocationEvent[INVOCATION_DEFAULT,runnable=com.yworks.ax.bz@134b846,notifier=null,catchExceptions=false,when=1124107751262] on sun.awt.windows.WToolkit@99c59d: Index: 2, Tab count: 2
java.lang.IndexOutOfBoundsException: Index: 2, Tab count: 2
at javax.swing.JTabbedPane.checkIndex(JTabbedPane.java:1562)
at javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:462)
at com.intellij.ui.TabbedPaneWrapper$TabbedPane.setSelectedIndex(TabbedPaneWrapper.java:43)
at com.yworks.ax.bz.run(DashoA10*..)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:9)
at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:170)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:106)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)


Regards,

Franck

0
Comment actions Permalink

Johannes Schneider wrote:

Hi,

Thanks for your report.
At the moment not all "property-creating" tasks are parsed correctly. We
will add support for this soon.


Johannes Schneider


In IDEA, you can set Build file Properties in the Ant Build panel. These are currently not
recognized by Ant Visualizer.

For example; in the Build File Properties dialog, I have app.server set to weblogic81 but in
the graph it is shown in red with the text "not defined".

Tim Haley

0
Comment actions Permalink

Thanks for pointing on this.

I will include support for it in the next release...


Johannes Schneider


Tim Haley wrote:

Johannes Schneider wrote:

>> Hi,
>>
>> Thanks for your report.
>> At the moment not all "property-creating" tasks are parsed correctly.
>> We will add support for this soon.
>>
>>
>> Johannes Schneider
>>


In IDEA, you can set Build file Properties in the Ant Build panel. These
are currently not recognized by Ant Visualizer.

For example; in the Build File Properties dialog, I have app.server set
to weblogic81 but in the graph it is shown in red with the text "not
defined".

Tim Haley

0
Comment actions Permalink

Tim Haley wrote:
> In IDEA, you can set Build file Properties in the Ant Build panel.
These

are currently not recognized by Ant Visualizer.

For example; in the Build File Properties dialog, I have app.server set
to weblogic81 but in the graph it is shown in red with the text "not
defined".


At the moment I can't find a way to read those configured properties.
I'm waiting for a response from JetBrains...


Johannes Schneider

0

Please sign in to leave a comment.