[kepler-dev] Adding a new director and actors to kepler/director and kepler/actors
Chad Berkley
berkley at nceas.ucsb.edu
Fri Jan 15 14:10:55 PST 2010
Hey Christopher,
See my answers below.
Christopher Brooks wrote:
> I want to add the ContinuousDirector to Kepler.
> What do I do?
The short answer is copy one of the existing directors'
resources/kar/xxx directories and then fill in the values. There is no
automated functionality for this that I am aware of. If you wanted to
make a new module just for the ContinuousDirectory, that would work too.
>
>
> I did not find documentation about this, the closest is
> https://kepler-project.org/developers/reference/adding-new-classes-jars-to-kepler
>
> which is marked as private.
>
I believe it is private because it is no longer current or relevant.
> I see there is a directors repository:
> bash-3.2$ ls kepler/directors
> build.xml kar lib resources
>
> That directory has a kar directory that contains the kar files:
>
> bash-3.2$ ls kepler/directors/kar
> CTDirector.kar DDFDirector.kar DEDirector.kar PNDirector.kar
> SDFDirector.kar
>
> How do I create a kar file such as these?
> Instantiating the director using "Instantiate Attribute"
> and then using "Save Archive (KAR)" creates a workflow that contains the
> ContinuousDirector, but I want just the ContinuousDirector.
This directory is created automatically by kepler at startup.
>
> Do I need to create ContinuousDirector.kar by hand? (I suspect
> that ContinuousDirector.kar will be created for me from the
> files in the resources directory.)
>
> I see that there is also a resources directory:
> bash-3.2$ ls kepler/directors/resources
> kar
> bash-3.2$ ls kepler/directors/resources/kar
> CTDirector DDFDirector DEDirector PNDirector SDFDirector
> bash-3.2$ ls kepler/directors/resources/kar/CTDirector
> CTDirector.xml MANIFEST.MF
>
> It looks like the contents of the kar file and the contents of the
> resources directory are the same.
> Why?
>
> bash-3.2$ jar -tvf kepler/directors/kar/CTDirector.kar
> 0 Thu Jan 14 13:38:38 PST 2010 META-INF/
> 333 Thu Jan 14 13:38:36 PST 2010 META-INF/MANIFEST.MF
> 12461 Thu Jul 23 13:48:38 PDT 2009 CTDirector.xml
> 254 Tue Oct 20 17:17:36 PDT 2009 MANIFEST.MF
> bash-3.2$ ls -l kepler/directors/resources/kar/CTDirector/
> total 40
> -rw-r--r-- 1 cxh staff 12461 Jul 23 13:48 CTDirector.xml
> -rw-r--r-- 1 cxh staff 254 Oct 20 17:17 MANIFEST.MF
>
> I guess the kar directory is created from the resources directory because
> director/kar is not in svn:
right, when you startup kepler, you'll notice a line on the console that
says "building kars" or something like that. Any module can have a
resources/kar directory and the contents of that directory will be
automatically turned into kars at startup.
>
> bash-3.2$ svn info kar/CTDirector.kar
> svn: 'kar' is not a working copy
>
> In fact, the kar directory is listed in svn:ignore.
>
> Looking at the kepler/directors/resources/kar/CTDirector.xml file, I
> see that I could just try copying the file.
>
> However, I have some questions:
> 1. CTDirector has an entityId:
>
> <property name="entityId"
> value="urn:lsid:kepler-project.org:director:4:1"
> class="org.kepler.moml.NamedObjId"/>
> How do I update this?
Right now, it's by hand. Aaron will have the latest info on lsid
generation. Aaron?
>
> 2. I see that the class comment is included in the .xml file.
> What happens when the class comment is updated in the java file?
> Does the .xml file get automatically updated?
The xml file is not updated automatically from the source. There used
to be an 'ant generate-actor-docs' task that did this, but I don't think
it exists anymore.
>
> 3. I see the .xml file has ports and parameters. Do these get
> automatically updated as the .java file changes?
No, the xml file is metadata about the java file. It must be updated
manually at this point. We did this because we wanted to allow semantic
annotations on any port and ptolemy allows ports and params to be
created either in the moml or in the java code. We wanted all
declarations in the xml file so that we had a complete description of
the component without having to instantiate it in java. That having
been said, we've had many problems over the years with our branched
version of moml. I saw edward comment the other day on a possible moml
2.0 spec. If that were to happen, I'd be happy to be on the design
committee :)
I don't think everything is on the web site, but aaron does have a good
Q&A about the kar system here:
https://kepler-project.org/developers/teams/framework/kepler-archive-kar/questions-and-answers
and there's a spec for the manifest here:
https://kepler-project.org/developers/teams/framework/kepler-archive-kar/kar-manifest-specification
All of the kar docs are here:
https://kepler-project.org/developers/teams/framework/kepler-archive-kar
Feel free to point out any ommissions or errors if you find them. Also
if you want to write up a how-to based on what you're doing, that would
be awesome!
chad
More information about the Kepler-dev
mailing list