Bug #1851
closedsave atomic and composite actors in the new actor library
0%
Description
Cutted and pasted from email conversation:
On 03.01.2005 18:34, "Chad Berkley" <berkley@nceas.ucsb.edu> wrote:
Hi Shawn, Ilkay and Wibke,
This is probably our problem. There are several problems like this that
i've been finding as i've been working with our newly re-worked actor
library system. The best thing to do at this point is to enter a bug
and we can prioritize it and hopefully work on it at the kepler meeting
at the end of the month. I think there are several other bugs like this
so maybe we can fix them all at the same time.chad
Shawn Bowers wrote:
I'm not really sure what is causing your problem, but the actor library
uses the file basicKeplerActorLibrary.xml and not basicKeplerLibrary.xml.This file is basically just wrapped by a <group> without any additional
"wrapper" (i.e., the UserLibrary stuff).Shawn
Ilkay Altintas wrote:
Hi Chad and Shawn,
Wibke had some problems with the cloning of the composite actors to
the actor library.
All the details are given below. I thought you guys would help her
better than me.I tried the same thing that she is trying to do under the regular PTII
and it seems to work.
Please let me or her (cce'd) know if it is something we are missing or
unaware.Wibke: The explanation below is great. Thanks so much for sending it.
Thanks everybody,
-ilkayBegin forwarded message:
*From: *Wibke Sudholt <Wibke.Sudholt@web.de>
*Date: *December 20, 2004 12:41:30 AM PST
*To: *Ilkay Altintas <altintas@sdsc.edu>
*Subject: Reuse of composite actors again *
Hi Ilkay,I think the problem with the reuse of composite actors is a problem
of the
new actor tree/ontology layout in Kepler.According to the Ptolemy II documentation
(http://ptolemy.eecs.berkeley.edu/ptolemyII/ptIIlatest/ptII4.0.1/doc/design/
usingVergil/index.htm), things should basically work as described
in my
previous email. For example, the user library may look like this
(see also
http://ptolemy.eecs.berkeley.edu/~cxh/ptpub/addinganactor.htm):<entity name="UserLibrary" class="ptolemy.moml.EntityLibrary">
<configure>
<group>
<entity name="CompositeActor" class="myActors.CompositeActor"/>
</group>
</configure>
</entity>So, the library is processed by ptolemy.moml.EntityLibrary via a
configure
group. This according to the documentation suppresses evaluation of
the MoML
commands as far as I understand. Thus when using
myActors.CompositeActor by
dragging & dropping onto the workspace, the MoML content under
entity is
used in the workflow exactly as it is put in the library.In contrast, in Kepler the library basicKeplerLibrary.xml in the
Kepler
configs dir basically looks like this:<entity name="actor library" class="ptolemy.kernel.CompositeEntity">
<group>
...
</group>
</entity>In the middle (...) entities are imported via external files.
Differences
are that Kepler (1) uses the master class
ptolemy.kernel.CompositeEntity and
(2) directly implements the MoML entities, not via configure. As far
as I
understand, this does not suppress the evaluation of the MoML while
dragging
& dropping onto the workspace. In my case (see below) this leads
to the
source link being resolved and consequently the sub-entities of the
composite actor appearing two times in the workflow (one time via
the source
link copied and one time directly after resolving the link). This
might
perhaps explain the problems I observe when trying to include
composite
actor classes into the Kepler actor tree as described in my previous
email.This is as far as I could find out up to now. I am of course not
really sure
if this is the reason for the problems or if I misunderstand
something here.
But I would be very happy if you could clarify this for me, since
you are
the much better Kepler expert than I am :-) and I am really stuck
here
currently ...Thanks a lot,
Wibke
Hi Ilkay,
I think I finally found a possibility to reuse/link composite actors.
One has to include something like the following into the xml file
which
describes the library for the actor tree:<entity class="resurgence.ClassTest" name="Class Test"
source="ptolemy/configs/kepler/resurgence/ClassTest.xml">
<property class="org.ecoinformatics.seek.util.NamedObjId"
name="entityId" value="urn:lsid:ecoinformatics.org:kepler.1302.1"/>
</entity>The "source" attribute makes that the class MoML file (here
"ptolemy/configs/kepler/resurgence/ClassTest.xml") is reloaded each
time I
use a workflow which uses the entity.To make changes in the classes work, one has to recompile
kepler-configs.jar, however.Unfortunately, there are still problems with this setup. First of
all,
somehow a workflow generated on the workspace does not only get the
"entity"
entry from above, but also the contents of the ClassTest.xml file
included
(although it is still linked to this file, too, and the link works
e.g.
after changes and when looking inside a composite actor). Second,
whenever I
use ports and links etc. inside the class and not only just
entities, I
cannot dragg&dropp the actor to the workspace anymore and the
program hangs.
To me this actually looks like this might even be a bug in Ptolemy
or Kepler
...Do you perhaps know how to solve this or could you forward this to a
person
who might know?Thanks a lot,
Wibke
Updated by Matt Jones about 19 years ago
The mechanism for saving actors in the library has now changed. However, the
problem with saving composite actors is still not resolved. To close this bug,
both atomic actors (specialized) and composite actors should be able to be:
1) saved as KAR files
2) registered in the library when they are saved under (1)
Updated by Chad Berkley about 19 years ago
composite actors can now be added like any other actors. This all seems to be
working now.