[kepler-dev] starting an Actor IO package

Jianwu Wang jianwu at sdsc.edu
Tue Jul 8 20:28:39 PDT 2008


Hi, Tristan,

    Thanks for your help. Now I can compile and run it correctly.

Best wishes

Sincerely yours

Jianwu Wang
jianwu at sdsc.edu

Post-Doctor
Scientific Workflow Automation Technologies (SWAT) Laboratory
San Diego Supercomputer Center 
University of California, San Diego
San Diego, U.S.A. 



Tristan King wrote:
> Hi Jianwu,
>
> make sure you're in the ptII-swt directory. that error occurs when you 
> run maven in a directory that doesn't have a pom.xml
> the os info should be fine for the original pom.
>
> On Tue, Jul 8, 2008 at 5:19 PM, Jianwu Wang <jianwu at sdsc.edu 
> <mailto:jianwu at sdsc.edu>> wrote:
>
>     Hi Tristan,
>
>         Thanks for your great work. I tried to follow your steps, but
>     get the following error. I changed the pom.xml according to the
>     mvn --version info (deleting other profile and add os name). But
>     still failed. Any comments?
>
>     D:\Kepler\repository\hydrant>mvn --version
>     Maven version: 2.0.8
>     Java version: 1.5.0_15
>     OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"
>
>     D:\Kepler\repository\hydrant>mvn compile exec:exec -e
>     + Error stacktraces are turned on.
>     [INFO] Scanning for projects...
>     [INFO] Searching repository for plugin with prefix: 'exec'.
>     [INFO]
>     ------------------------------------------------------------------------
>     [INFO] Building Maven Default Project
>     [INFO]    task-segment: [compile, exec:exec]
>     [INFO]
>     ------------------------------------------------------------------------
>     [INFO]
>     ------------------------------------------------------------------------
>     [ERROR] BUILD ERROR
>     [INFO]
>     ------------------------------------------------------------------------
>     [INFO] Cannot execute mojo: resources. It requires a project with
>     an existing po
>     m.xml, but the build is not using one.
>     [INFO]
>     ------------------------------------------------------------------------
>     [INFO] Trace
>     org.apache.maven.lifecycle.LifecycleExecutionException: Cannot
>     execute mojo: res
>     ources. It requires a project with an existing pom.xml, but the
>     build is not usi
>     ng one.
>             at
>     org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:564)
>             at
>     org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
>             at
>     org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
>             at
>     org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
>             at
>     org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
>             at
>     org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
>             at
>     org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
>             at
>     org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
>             at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
>             at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>             at
>     sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>             at
>     sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>             at java.lang.reflect.Method.invoke(Method.java:585)
>             at
>     org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>             at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>             at
>     org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>
>             at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
>     Caused by: org.apache.maven.plugin.MojoExecutionException: Cannot
>     execute mojo:
>     resources. It requires a project with an existing pom.xml, but the
>     build is not
>     using one.
>             at
>     org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:373)
>
>     Best wishes
>
>     Sincerely yours
>
>     Jianwu Wang
>     jianwu at sdsc.edu <mailto:jianwu at sdsc.edu>
>
>     Post-Doctor
>     Scientific Workflow Automation Technologies (SWAT) Laboratory
>     San Diego Supercomputer Center 
>     University of California, San Diego
>     San Diego, U.S.A. 
>
>
>
>     Tristan King wrote:
>>     Hi All,
>>
>>     I've modified how my prototype works and built an example
>>     extension that demos how easy it is to build new a new view for
>>     actor outputs.
>>
>>     I now use one generic IOFactory which uses spring to load the
>>     output "devices". the spring config to use is passed in as a
>>     system property so it can be easily changed.
>>
>>     I have built console output in as the default for which i've
>>     built a text output device and a graph output device, and
>>     modified the Display, XYPlotter and TimedPlotter actors to take
>>     advantage of these (note that this required breaking a lot of
>>     other code that depends on the XYPlotter and TimedPlotter actors).
>>
>>     Today I built a text output device which opens up a SWT window to
>>     display text in. It is in it's own maven project and doesn't
>>     require that you have the ptII source on your system as the ptII
>>     jar (my actorio version) and all it's dependencies are stored in
>>     a maven repository. This small package works on linux and
>>     windows, but i'm having trouble with the macosx swt libraries.
>>     It's not bug free, but i think it's a good proof-of-concept.
>>
>>     to play with this:
>>     * install maven http://maven.apache.org/download.html
>>     * install git (http://code.google.com/p/msysgit/ works great on
>>     windows)
>>     * clone ptII-swt (git clone
>>     git://git.hpc.jcu.edu.au/jc124742/ptII-swt.git
>>     <http://git.hpc.jcu.edu.au/jc124742/ptII-swt.git>)
>>     (the above two steps can be skipped by downloading the latest
>>     snapshot
>>     from http://www.hpc.jcu.edu.au/git/?p=jc124742/ptII-swt.git;a=summary)
>>     * compile and run using maven "mvn compile exec:exec" (this will
>>     take a while the first time as maven has to download all the
>>     dependencies)
>>     * make/load a workflow that uses the display actor and run it.
>>
>>     If it has compile errors on the maven step, please run the command
>>     mvn --version
>>     and send me the results (if you feel technical, you can find the
>>     activation section in the pom.xml file and fix up the os info to
>>     match the results from mvn --version)
>>
>>     And if you feel like playing, you can edit the properties in
>>     src/main/resources/au/edu/jcu/eresearch/ptolemy/swt/spring-confix.xml
>>     to modify the default width and height of the window (requires
>>     mvn compile exec:exec again to apply the changes).
>>
>>     Comments?
>>
>>     Cheers
>>     -Tristan
>>
>>     On Thu, Jul 3, 2008 at 2:42 PM, Tristan King
>>     <tristan.king at jcu.edu.au <mailto:tristan.king at jcu.edu.au>> wrote:
>>
>>         I've started doing a bit of work on building an actor IO
>>         package (ptolemy.actor.io <http://ptolemy.actor.io>)
>>
>>         The purpose of this is to provide user input and output for
>>         actors so that the actors themselves don't have to
>>         be responsible for how they get user input, or how output is
>>         displayed. This will help to build actors that are useable in
>>         gui and headless environments without having to have modified
>>         actors for each situation.
>>
>>         I've built a simple prototype which uses an IO factory which
>>         is embedded in the Manager (since all actors can get access
>>         to the manager which controls them). When an actor requires
>>         an IO "device" it makes a request to the IO factory which
>>         returns an instance of the desired "device". For example, the
>>         Display actor requests a Text-based output device. This
>>         device implements a standard text based output device
>>         interface which has a write(String) function, and all the
>>         Display actor has to do is "write" the text to the device
>>         which handles how to display it. I've used spring
>>         to instantiate the correct IOFactory so that in the case of
>>         vergil, each manager is loaded with a
>>         ptolemy.vergil.io.VergilIOFactory and if vergil is not used
>>         the manager defaults to a ptolemy.actor.io.HeadlessIOFactory.
>>
>>         My work is currently stored in my ptII git mirror, in a
>>         branch which has been converted for maven compilation.
>>         If you want to clone the whole repository here are the git
>>         commands to clone the repository and to get to the branch
>>         (this will take a while):
>>
>>         git clone git://git.hpc.jcu.edu.au/jc124742/ptII.git
>>         <http://git.hpc.jcu.edu.au/jc124742/ptII.git>
>>         git checkout -b actorio origin/actorio
>>
>>         or you can download the current snapshot of the branch (which
>>         is about 35mb) from:
>>         http://www.hpc.jcu.edu.au/git/?p=jc124742/ptII.git;a=shortlog;h=refs/heads/actorio
>>         you can then run it by doing:
>>
>>         mvn compile # compiles the code, may take a while the first
>>         time while maven sorts out it's dependencies
>>         mvn exec:exec # starts vergil
>>
>>         then fire up any workflow while uses a Display actor. Note
>>         that i'm rubbish with swing and some of the window
>>         placing/sizing functionality has been removed to facilitate
>>         the separation of the actor from the visualisation, so the
>>         display window isn't nearly as good as the old one. If you
>>         start the workflow using MoMLSimpleApplication (i.e:
>>
>>         mvn compile
>>         java -cp
>>         target/classes:$HOME/.m2/repository/org/springframework/spring-context/2.0.8/spring-context-2.0.8.jar:$HOME/.m2/repository/org/springframework/spring-beans/2.0.8/spring-beans-2.0.8.jar:$HOME/.m2/repository/org/springframework/spring-core/2.0.8/spring-core-2.0.8.jar:$HOME/.m2/repository/log4j/log4j/1.2.15/log4j-1.2.15.jar:$HOME/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar
>>         ptolemy.actor.gui.MoMLSimpleApplication ../test.xml
>>
>>         ) it will print the output of any Display actors to the console.
>>
>>         If other people want to work on this, I will create a new
>>         branch for it on the ptolemy II svn (it requires a few
>>         changes to the core of ptolemy so i'm not gonna commit it to
>>         the trunk) and put it there in makefile building mode.
>>
>>         So, is anyone else interested in this? I think it's a key
>>         component in making kepler available in multiple
>>         environments. But it's a big change, much too big to be left
>>         up to one person. I would feel a lot more comfortable with a
>>         bunch of people telling me my ideas and designs are rubbish
>>         and help me build a good system rather than to build
>>         something that no one but me wants to use.
>>
>>         Things that need to be done:
>>         * My factory idea and prototype architecture needs to
>>         be criticised.
>>         * Types of "devices" need to be defined (i.e. text output,
>>         image output, file output, graph output, etc)
>>         * IO Factory and device interfaces need to be defined. 
>>         * Existing actors need to be modified to use the factory.
>>         * standard factory implementations need to be written (i.e.
>>         I'm rubbish at swing and thus someone else should do the
>>         vergil factory).
>>          
>>         Comments? Ideas? Criticisms?
>>         Cheers
>>         -Tristan
>>
>>         -- 
>>         Tristan King
>>         Research Officer,
>>         eResearch Centre
>>         James Cook University, Townsville Qld 4811
>>         Australia
>>
>>         Phone: +61747816902
>>         E-mail: tristan.king at jcu.edu.au
>>         <mailto:tristan.king at jcu.edu.au> www:
>>         http://eresearch.jcu.edu.au 
>>
>>
>>
>>
>>     -- 
>>     Tristan King
>>     Research Officer,
>>     eResearch Centre
>>     James Cook University, Townsville Qld 4811
>>     Australia
>>
>>     Phone: +61747816902
>>     E-mail: tristan.king at jcu.edu.au <mailto:tristan.king at jcu.edu.au>
>>     www: http://eresearch.jcu.edu.au
>>     ------------------------------------------------------------------------
>>     _______________________________________________ Kepler-dev
>>     mailing list Kepler-dev at ecoinformatics.org
>>     <mailto:Kepler-dev at ecoinformatics.org>
>>     http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/kepler-dev
>>
>
>
>
>
> -- 
> Tristan King
> Research Officer,
> eResearch Centre
> James Cook University, Townsville Qld 4811
> Australia
>
> Phone: +61747816902
> E-mail: tristan.king at jcu.edu.au <mailto:tristan.king at jcu.edu.au> www: 
> http://eresearch.jcu.edu.au 



More information about the Kepler-dev mailing list