[kepler-dev] Adding actors programmatically ......
Chad Berkley
berkley at nceas.ucsb.edu
Thu Feb 16 09:40:27 PST 2006
Yeah, you need to get an instance of the CacheManager and add the object
via that.
jagan wrote:
> Hello Chad,
>
> I have created and added lsid into idStore,
> ==================================
> LSIDGenerator lsidGenerator = LSIDGenerator.getInstance();
> LibraryIndex index = LibraryIndex.getInstance();
> KeplerLSID lsid = lsidGenerator.getNewLSID("actor");
>
> LibraryIndexComponentItem itemToAdd = new
> LibraryIndexComponentItem(_actorNameStr, lsid);
> System.out.println("itemtoAdd="+itemToAdd);
> LibraryIndexItem subtree = index.findItem(new
> KeplerLSID("urn:lsid:localhost:onto:1:1#PreConfiguredGridletActor"));
> System.out.println("subtreeitem="+subtree);
> index.add(itemToAdd, subtree);
> index.refresh();
> =================================
> When I try to refresh, I am getting the following error message,
>
> It seems to me that while building tree, newly created lsid is not able
> to find in cache.
>
> Do I need to add some code to add lsid into cache?
>
> ========================================
> [java] itemtoAdd=<component name="localActorName"
> lsid="urn:lsid:kepler-pro
> ject.org:actor:501:1"/>
>
> [java] subtreeitem=<concept name="gridlets"
> lsid="urn:lsid:localhost:onto:1
> :1#PreConfiguredGridletActor"/>
>
> [java] Could not resolve lsid urn:lsid:kepler-project.org:actor:501:1
> [java] java.lang.NullPointerException
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:647)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:642)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:642)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:642)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:642)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
> aryIndex.java:552)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.refresh(Library
> Index.java:563)
> [java] at
> org.monash.griddles.JGridletCreater.fire(JGridletCreater.java
> :171)
> [java] at
> ptolemy.actor.process.ProcessThread.run(ProcessThread.java:18
> 6)
> [java] ptolemy.kernel.util.IllegalActionException: Error building
> tree mode
> l: null
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:670)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:642)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:642)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:642)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:642)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
> aryIndex.java:552)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.refresh(Library
> Index.java:563)
> [java] at
> org.monash.griddles.JGridletCreater.fire(JGridletCreater.java
> :171)
> [java] at
> ptolemy.actor.process.ProcessThread.run(ProcessThread.java:18
> 6)
> [java] ptolemy.kernel.util.IllegalActionException: Error building
> tree mode
> l: Error building tree model: null
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:670)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:642)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:642)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:642)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
> aryIndex.java:552)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.refresh(Library
> Index.java:563)
> [java] at
> org.monash.griddles.JGridletCreater.fire(JGridletCreater.java
> :171)
> [java] at
> ptolemy.actor.process.ProcessThread.run(ProcessThread.java:18
> 6)
> [java] ptolemy.kernel.util.IllegalActionException: Error building
> tree mode
> l: Error building tree model: Error building tree model: null
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:670)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:642)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:642)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
> aryIndex.java:552)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.refresh(Library
> Index.java:563)
> [java] at
> org.monash.griddles.JGridletCreater.fire(JGridletCreater.java
> :171)
> [java] at
> ptolemy.actor.process.ProcessThread.run(ProcessThread.java:18
> 6)
> [java] ptolemy.kernel.util.IllegalActionException: Error building
> tree mode
> l: Error building tree model: Error building tree model: Error building
> tree mod
> el: null
> [java] ptolemy.kernel.util.IllegalActionException: Error building
> tree mode
> l: Error building tree model: Error building tree model: Error building
> tree mod
> el: Error building tree model: null
> [java] 1672 ms. Memory: 93768K Free: 30511K (33%)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:670)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
> LibraryIndex.java:642)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
> aryIndex.java:552)
> [java] at
> org.kepler.objectmanager.library.LibraryIndex.refresh(Library
> Index.java:563)
> [java] at
> org.monash.griddles.JGridletCreater.fire(JGridletCreater.java
> :171)
> [java] at
> ptolemy.actor.process.ProcessThread.run(ProcessThread.java:18
> 6)
> ================================================================
>
>
> Chad Berkley wrote:
>
>>Is that lsid loaded into the system? You can't just create a new LSID
>>unless it's already loaded into the system. If you want to create one
>>and have it loaded, you need to use the LSIDGenerator class in the
>>org.kepler.lsid package.
>>
>>chad
>>
>>jagan wrote:
>>
>>
>>>Hi Chad,
>>>
>>>I have added the following lines of code to add actor programitically,
>>>
>>>------------------------------------------------------------------------------------
>>> LibraryIndex index = LibraryIndex.getInstance();
>>> KeplerLSID lsid = new
>>>KeplerLSID("urn:lsid:kepler-project.org:actor:701:1");
>>> LibraryIndexComponentItem itemToAdd = new
>>>LibraryIndexComponentItem(_actorNameStr, lsid);
>>> System.out.println("itemtoAdd="+itemToAdd);
>>> LibraryIndexItem subtree = index.findItem(new
>>>KeplerLSID("urn:lsid:localhost:onto:1:1#PreConfiguredGridletActor"));
>>> System.out.println("subtreeitem="+subtree);
>>> index.add(itemToAdd, subtree);
>>> LibraryIndex.getInstance().refresh();
>>>-------------------------------------------------------------------------------------
>>>
>>>I am getting the following error messages, by somehow it is not able to
>>>resolve lsid.
>>>
>>>Could you mind to look into it?
>>>
>>>============================================================
>>>
>>> [java] itemtoAdd=<component name="localActorName"
>>>lsid="urn:lsid:kepler-pro
>>>ject.org:actor:701:1"/>
>>>
>>> [java] subtreeitem=<concept name="gridlets"
>>>lsid="urn:lsid:localhost:onto:1
>>>:1#PreConfiguredGridletActor"/>
>>>
>>> [java] Could not resolve lsid urn:lsid:kepler-project.org:actor:701:1
>>> [java] java.lang.NullPointerException
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:647)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:642)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:642)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:642)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:642)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
>>>aryIndex.java:552)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.refresh(Library
>>>Index.java:563)
>>> [java] at
>>>org.monash.griddles.JGridletCreater.fire(JGridletCreater.java
>>>:164)
>>> [java] at
>>>ptolemy.actor.process.ProcessThread.run(ProcessThread.java:18
>>>6)
>>> [java] ptolemy.kernel.util.IllegalActionException: Error building
>>>tree mode
>>>l: null
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:670)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:642)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:642)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:642)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:642)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
>>>aryIndex.java:552)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.refresh(Library
>>>Index.java:563)
>>> [java] at
>>>org.monash.griddles.JGridletCreater.fire(JGridletCreater.java
>>>:164)
>>> [java] at
>>>ptolemy.actor.process.ProcessThread.run(ProcessThread.java:18
>>>6)
>>> [java] ptolemy.kernel.util.IllegalActionException: Error building
>>>tree mode
>>>l: Error building tree model: null
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:670)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:642)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:642)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:642)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
>>>aryIndex.java:552)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.refresh(Library
>>>Index.java:563)
>>> [java] at
>>>org.monash.griddles.JGridletCreater.fire(JGridletCreater.java
>>>:164)
>>> [java] at
>>>ptolemy.actor.process.ProcessThread.run(ProcessThread.java:18
>>>6)
>>> [java] ptolemy.kernel.util.IllegalActionException: Error building
>>>tree mode
>>>l: Error building tree model: Error building tree model: null
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:670)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:642)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:642)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
>>>aryIndex.java:552)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.refresh(Library
>>>Index.java:563)
>>> [java] at
>>>org.monash.griddles.JGridletCreater.fire(JGridletCreater.java
>>>:164)
>>> [java] at
>>>ptolemy.actor.process.ProcessThread.run(ProcessThread.java:18
>>>6)
>>> [java] ptolemy.kernel.util.IllegalActionException: Error building
>>>tree mode
>>>l: Error building tree model: Error building tree model: Error building
>>>tree mod
>>>el: null
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:670)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
>>>LibraryIndex.java:642)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
>>>aryIndex.java:552)
>>> [java] at
>>>org.kepler.objectmanager.library.LibraryIndex.refresh(Library
>>>Index.java:563)
>>> [java] at
>>>org.monash.griddles.JGridletCreater.fire(JGridletCreater.java
>>>:164)
>>> [java] at
>>>ptolemy.actor.process.ProcessThread.run(ProcessThread.java:18
>>>6)
>>> [java] ptolemy.kernel.util.IllegalActionException: Error building
>>>tree mode
>>>l: Error building tree model: Error building tree model: Error building
>>>tree mod
>>>el: Error building tree model: null
>>> [java] 1722 ms. Memory: 76372K Free: 12558K (16%)
>>>
>>>with regards,
>>>
>>>Jagan Kommineni
>>>
>>>
>>>Chad Berkley wrote:
>>>
>>>
>>>
>>>>Hi Jagan,
>>>>
>>>>This seems to now be working. You can see some sample code in
>>>>CreateKSWDialog around line 420. It basically looks like this:
>>>>
>>>>LibraryIndex.getInstance().add(
>>>> new LibraryIndexComponentItem(am.getName(), am.getLSID()), subtree);
>>>>LibraryIndex.getInstance().refresh();
>>>>util.EmptyChangeRequest request = new
>>>> util.EmptyChangeRequest(actorEntity, "request change");
>>>>actorEntity.requestChange(request);
>>>>
>>>>I'm not even sure if the changerequest is needed. I'll probably remove
>>>>those lines. The LibraryIndex calls should do the trick. If you don't
>>>>see the tree refresh right away, trying hitting the 'reset' button. If
>>>>you are viewing a resultset from a search you will not see the actor appear.
>>>>
>>>>hope that works for you.
>>>>
>>>>chad
>>>>
>>>>jagan wrote:
>>>>
>>>>
>>>>
>>>>
>>>>>Hello Chad,
>>>>>
>>>>>Could you mind to update me whether there is any progress about the
>>>>>adding actors dynamically?
>>>>>
>>>>>with regards,
>>>>>
>>>>>Jagan Kommineni
>>>>>
>>>>>Chad Berkley wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>Hey Jagan,
>>>>>>
>>>>>>I was trying to do something similar yesterday and it wasn't working.
>>>>>>I'll keep working on it today and when i figure it out, i'll let you
>>>>>>know. I think it's something to do with the LibraryIndex, but I'm not
>>>>>>quite sure yet.
>>>>>>
>>>>>>chad
>>>>>>
>>>>>>jagan wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>>Hello Chad,
>>>>>>>
>>>>>>> While creating actor programmitically I have followed the
>>>>>>>following steps,
>>>>>>>===================================================================================================================
>>>>>>>
>>>>>>>public void fire() throws IllegalActionException {
>>>>>>> super.fire();
>>>>>>> try { GriddlesExec wss = null;
>>>>>>> _actorNameStr = actorName.getExpression();
>>>>>>> wss = new GriddlesExec(new EntityLibrary(),
>>>>>>>_actorNameStr); LibraryIndex index =
>>>>>>>LibraryIndex.getInstance();
>>>>>>> KeplerLSID lsid = new
>>>>>>>KeplerLSID("urn:lsid:kepler-project.org:actor:500:1");
>>>>>>> LibraryIndexItem itemToAdd = new LibraryIndexItem(_actorNameStr,
>>>>>>>lsid);
>>>>>>> System.out.println("itemtoAdd="+itemToAdd);
>>>>>>> LibraryIndexItem subtree = index.findItem(new
>>>>>>>KeplerLSID("urn:lsid:localhost:onto:1:1#PreConfiguredGridletActor"));
>>>>>>> System.out.println("subtreeitem="+subtree);
>>>>>>> index.add(itemToAdd, subtree);
>>>>>>> System.out.println("Printing Component Items");
>>>>>>> for ( Iterator iter = index.items(); iter.hasNext(); )
>>>>>>> {
>>>>>>> LibraryIndexComponentItem key = (LibraryIndexComponentItem)
>>>>>>>iter.next();
>>>>>>> System.out.println( key );
>>>>>>> }
>>>>>>> System.out.println("Printing Ontologies");
>>>>>>> for ( Iterator iter = index.ontologies(); iter.hasNext(); )
>>>>>>> {
>>>>>>> LibraryIndexOntologyItem key = (LibraryIndexOntologyItem)
>>>>>>>iter.next();
>>>>>>> System.out.println( key );
>>>>>>> } }
>>>>>>> catch (Exception e) {
>>>>>>> System.out.println(e);
>>>>>>> }
>>>>>>> } // end of fire
>>>>>>>===================================================================================
>>>>>>>
>>>>>>>
>>>>>>>The output corresponding to above print statements relating new item
>>>>>>>is as follows,
>>>>>>>
>>>>>>>==================================================================================
>>>>>>>
>>>>>>>
>>>>>>> [java] itemtoAdd=<name="localActorName"
>>>>>>>lsid="urn:lsid:kepler-project.org:actor:500:1"/>
>>>>>>>
>>>>>>> [java] subtreeitem=<concept name="gridlets"
>>>>>>>lsid="urn:lsid:localhost:onto:1:1#PreConfiguredGridletActor"/>
>>>>>>>
>>>>>>> [java] Printing Component Items
>>>>>>> [java] <component name="CT Director"
>>>>>>>lsid="urn:lsid:kepler-project.org:director:4:1"/>
>>>>>>> ..............
>>>>>>> ...............
>>>>>>> [java] <concept name="gridlets"
>>>>>>>lsid="urn:lsid:localhost:onto:1:1#PreConfiguredGridletActor">
>>>>>>> [java] <name="localActorName"
>>>>>>>lsid="urn:lsid:kepler-project.org:actor:500:1"/>
>>>>>>> [java] </concept>
>>>>>>>
>>>>>>>=========================================================================================
>>>>>>>
>>>>>>>
>>>>>>> It seems to me that the actor has been added to the library but I
>>>>>>>can't see the actor on the user inter face.
>>>>>>>And als I haven't seen any items relating to the new actor on the
>>>>>>>$HOME/.kepler directory.
>>>>>>>
>>>>>>> Do I need to do something else to create kar file for the new
>>>>>>>actor (may be some committing)?
>>>>>>>
>>>>>>>with regards,
>>>>>>>
>>>>>>>Jagan Kommineni
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>_______________________________________________
>>>>Kepler-dev mailing list
>>>>Kepler-dev at ecoinformatics.org
>>>>http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/kepler-dev
>>>>
>>>>
>>>>
>>>>
>>_______________________________________________
>>Kepler-dev mailing list
>>Kepler-dev at ecoinformatics.org
>>http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/kepler-dev
>>
>>
>
More information about the Kepler-dev
mailing list