RE: Problem in the function resolution phase

"Gustavo Wagner D Mendes / Pos. COPIN" <gustavo-y04Q/[email protected]> Wed, 9 Nov 2005 09:02:16 -0300
Newsgroups gmane.comp.java.smartfrog.devel
Message-ID <[email protected]>
Hello Patrick.

    Thanks. we will overwrite the sfDeployWith method. 
    As for the document, I was referring to the SmartFlow document, that
explains the workflow of SmartFrog: events, parallel, serial, etc. Is there a
new version of this document?
    
    Thanks, 

       Gustavo

On Wed, 9 Nov 2005 09:13:52 -0000, Goldsack, Patrick wrote
> Its not in the Prim interface as it is not one of the remotable 
> methods - but I assure you that it is there in the class.
> 
> When a component is created, and local to this, the deployer calls 
> the default constructor for the component class, then call the 
> sfDeployWith method passing all the data that is required to 
> construct the component (parent and description). After that, the 
> deployer returns the component handle to the requestor.
> 
> As for the reference manual, I am currently (slowly) working on a 
> revised version - it is in the CVS - with a large amount of new 
> introductory "how to use" material. But this is still only partially 
> done. The previsouly existing content is there, but somewhat restructured.
> 
> Patrick
> 
> -----Original Message-----
> From: Gustavo Wagner D Mendes / Pos. COPIN 
> [mailto:gustavo-y04Q/[email protected]] Sent: 08 November 2005 20:17 To: 
> Goldsack, Patrick; smartfrog-developer-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Cc:
aandrade-y04Q/[email protected]
> Subject: RE: [Smartfrog-developer] Problem in the function 
> resolution phase
> 
> Hello Patrick.
> 
> Thanks for the points. But we still have doubt about the 
> sfDeployWith method. where is the public void sfDeployWith(Prim 
> parent, ComponentDescritpion Cd) method? We haven't found it in the 
> Compound and Prim interfaces.
> 
> Another doubt. Is there a new version of the SmartFlow document? I 
> have the 2003-2004 draft.
> 
>   Cheers,
> 
>      Gustavo
> 
> On Mon, 7 Nov 2005 15:51:41 -0000, Goldsack, Patrick wrote
> > A number of points.
> > 
> > 1) The phase list should read  "type, place, sfconfig (sfConfig?), 
> > link, function". In this way, you don't link and apply functions to 
> > anything other than sfConfig.
> > 
> > 2) If you want to keep a copy of the component description,  overwrite 
> > the definition of sfDeployWith(ComponentDescritpion) and define it to 
> > be the following:
> > 
> >    ComponentDescription myCd;
> >    public void sfDeployWith(Prim parent, ComponentDescritpion Cd)
> >  throws ... {      myCd = cd.copy();  // must copy, as original gets 
> > changed by side-effect during deployment 	super(parent, cd);   }
> > 
> > Hopes this helps,
> > 
> > Patrick
> > 
> > -----Original Message-----
> > From: smartfrog-developer-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > [mailto:smartfrog-developer-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of 
> > Gustavo Wagner D Mendes / Pos. COPIN Sent: 07 November 2005 15:10
> > To: Goldsack, Patrick; smartfrog-developer-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Cc: 
> > aandrade-y04Q/[email protected] Subject: RE: [Smartfrog-developer] Problem in 
> > the function resolution phase
> > 
> > Hello Patrick. How are you?
> > 
> >   I have faced this problem when I have tried to parse a component to 
> > get its ComponentDescription. I do not know another way to get the 
> > ComponentDescription after the component is running. So, as I need the 
> > ComponentDescription to redeploy a component on a remote
> > machine, I have developed the util paserDescription method below:	
> > 
> > public static ComponentDescription parseDescription (InputStream
> > stream) throws RemoteException, SmartFrogException,
> >  FileNotFoundException { 		Phases phases = new SFParser()
> > .sfParse(stream);
> > 		
> > 		/* Resolving the phases. We don't resolve the 'sfConfig' phase because
> > 		 * it isn't a deployable component.
> > 		 */ 
> > 		phases.sfResolvePhase("type");
> > 		phases.sfResolvePhase("place");
> > 		phases.sfResolvePhase("link");
> > 		phases.sfResolvePhase("function");
> > 		
> > 		return phases.sfAsComponentDescription();		
> > 	}	
> > 
> > To test it, I have developed a simple component to be parsed:
> > 
> > #include "org/smartfrog/components.sf"
> > #include "org/smartfrog/functions.sf"
> > 
> > Teste1 extends {
> > 	sfClass "org.ourgrid.serviceprofile.teste.TesteImpl";
> > }
> > 
> > sfConfig extends Compound {
> > 	teste1 extends Teste1;
> > }
> > 
> > I have noticed that the problem is the inclusion of the functions.sf 
> > file. Even if you don't use any function in the function.sf file,  the 
> > problem will occur.
> > 
> >   Am I right?
> > 
> >    Cheers,
> > 
> >     Gustavo
> > 
> > ps.: The stacktrace of the error is below:
> > 
> > SmartFrogCompileResolutionException:: java.lang.NullPointerException,
> > resolutionPhase: function
> > 	at
> >
>
org.smartfrog.sfcore.languages.sf.SmartFrogCompileResolutionException.forward(SmartFrogCompileResolutionException.java:294)
	at
org.smartfrog.sfcore.languages.sf.sfcomponentdescription.SFComponentDescriptionImpl.sfResolvePhases(SFComponentDescriptionImpl.java:662)
	at
org.smartfrog.sfcore.languages.sf.sfcomponentdescription.SFComponentDescriptionImpl.sfResolvePhase(SFComponentDescriptionImpl.java:621)
	at org.ourgrid.serviceprofile.util.Util.parseDescription(Util.java:328) 	at
org.ourgrid.serviceprofile.util.UtilTest.testGetUndoComponent(UtilTest.java:254)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 	at
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 	at
java.lang.reflect.Method.invoke(Unknown Source) 	at
junit.framework.TestCase.runTest(TestCase.java:154) 	at
junit.framework.TestCase.runBare(TestCase.java:127) 	at
junit.framework.TestResult$1.protect(TestResult.java:106) 	at
junit.framework.TestResult.runProtected(TestResult.java:124) 	at
junit.framework.TestResult.run(TestResult.java:109) 	at
junit.framework.TestCase.run(TestCase.java:118) 	at
junit.framework.TestSuite.runTest(TestSuite.java:208) 	at
junit.framework.TestSuite.run(TestSuite.java:203) 	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.lang.NullPointerException 	at java.util.Hashtable.put(Unknown
Source) 	at
org.smartfrog.sfcore.common.OrderedHashtable.primPut(OrderedHashtable.java:170)
	at
org.smartfrog.sfcore.common.OrderedHashtable.put(OrderedHashtable.java:182) at
org.smartfrog.sfcore.languages.sf.functions.BaseFunction.doit(BaseFunction.java:63)
	at org.smartfrog.sfcore.languages.sf.Phase.actOn(Phase.java:97) 	at
org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.visit(ComponentDescriptionImpl.java:604)
	at
org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.visit(ComponentDescriptionImpl.java:599)
	at
org.smartfrog.sfcore.languages.sf.sfcomponentdescription.SFComponentDescriptionImpl.sfResolvePhases(SFComponentDescriptionImpl.java:659)
	... 18 more
> > 
> > On Thu, 3 Nov 2005 22:17:55 -0000, Goldsack, Patrick wrote
> > > Gustavo,
> > > 
> > > Thanks for pointing this out. I wonder how this slipped through - it 
> > > must have been sitting there for ages without anyone noticing. The 
> > > correct function for adding its attributes is sum, not plus. The 
> > > definition of plus should probably be removed, or made to point to 
> > > the class Sum for possible backward compatability. I will consider 
> > > this and fix...
> > > 
> > > I am somewhat surprised that unless you actually try to use it you 
> > > get an error (or if you try to include the file directly into sfConfig).
> > > Only the functions used within sfConfig should be evaulated, so a 
> > > file included at the top level will be ignored.
> > > 
> > > Eliminating the function phase enirely will of course remove the 
> > > problem, but I wouldn't recommend it!
> > > 
> > > Can you send me some more details as to why you are getting the 
> > > error message?  The file you are parsing would do.
> > > 
> > > Thanks
> > > Patrick
> > > 
> > > -----Original Message-----
> > > From: smartfrog-developer-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > > [mailto:smartfrog-developer-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf 
> > > Of Gustavo Wagner D Mendes / Pos. COPIN Sent: 03 November 2005 21:49
> > > To: smartfrog-developer-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Subject: [Smartfrog- 
> > > developer] Problem in the function resolution phase
> > > 
> > > Hello all.
> > > 
> > > In the org/smartfrog/functions.sf file there is the following component:
> > > 
> > > plus extends {
> > >     phase.function
> > > "org.smartfrog.sfcore.languages.sf.functions.Plus"; }
> > > 
> > > Note that it links to the
> > > org/smartfrog/sfcore/languages/sf/functions/Plus.class class, but it 
> > > does not exists in any smartfrog distribution. If we try to parse 
> > > any component, in the function phase occurs a ClassNotFoundException.
> > > 
> > > When I comment the function phase -
> > >  //phases.sfResolvePhase("function");, it works well.
> > > 
> > > If you dont have the Plus class, I can do it and send to you.
> > > 
> > >   Cheers,
> > > 
> > >      Gustavo
> > > 
> > >                 #############################################
> > >                 #       GUSTAVO WAGNER DINIZ MENDES         #
> > >                 #       Graduado pela UFCG                  #
> > >                 #       Curso: Ciência da Computação        #
> > >                 #       Mestrando pela COPIN-UFCG           #
> > >                 #     * Integrante do projeto OurGrid       #
> > >                 #        Fones: (83)88246910 / 32358355     #
> > >                 #                   33333453                #
> > > 
> > > -------------------------------------------------------
> > > SF.Net email is sponsored by:
> > > Tame your development challenges with Apache's Geronimo App Server. 
> > > Download it for free - -and be entered to win a 42" plasma tv or 
> > > your very own Sony(tm)PSP.  Click here to play:
> > http://sourceforge.net/geronimo.php
> > > _______________________________________________
> > > Smartfrog-developer mailing list
> > > Smartfrog-developer-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > > https://lists.sourceforge.net/lists/listinfo/smartfrog-developer
> > > 
> > > -------------------------------------------------------
> > > SF.Net email is sponsored by:
> > > Tame your development challenges with Apache's Geronimo App Server. 
> > > Download it for free - -and be entered to win a 42" plasma tv or 
> > > your very own Sony(tm)PSP.  Click here to play:
> > > http://sourceforge.net/geronimo.php
> > > _______________________________________________
> > > Smartfrog-developer mailing list
> > > Smartfrog-developer-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > > https://lists.sourceforge.net/lists/listinfo/smartfrog-developer
> > 
> >                 #############################################
> >                 #       GUSTAVO WAGNER DINIZ MENDES         #
> >                 #       Graduado pela UFCG                  #
> >                 #       Curso: Ciência da Computação        #
> >                 #       Mestrando pela COPIN-UFCG           #
> >                 #     * Integrante do projeto OurGrid       #
> >                 #        Fones: (83)88246910 / 32358355     #
> >                 #                   33333453                #
> > 
> > -------------------------------------------------------
> > SF.Net email is sponsored by:
> > Tame your development challenges with Apache's Geronimo App Server. 
> > Download it for free - -and be entered to win a 42" plasma tv or your 
> > very own Sony(tm)PSP.  Click here to play:
> http://sourceforge.net/geronimo.php
> > _______________________________________________
> > Smartfrog-developer mailing list
> > Smartfrog-developer-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > https://lists.sourceforge.net/lists/listinfo/smartfrog-developer
> > 
> > -------------------------------------------------------
> > SF.Net email is sponsored by:
> > Tame your development challenges with Apache's Geronimo App Server. 
> > Download it for free - -and be entered to win a 42" plasma tv or your 
> > very own Sony(tm)PSP.  Click here to play: 
> > http://sourceforge.net/geronimo.php
> > _______________________________________________
> > Smartfrog-developer mailing list
> > Smartfrog-developer-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > https://lists.sourceforge.net/lists/listinfo/smartfrog-developer
> 
>                 #############################################
>                 #       GUSTAVO WAGNER DINIZ MENDES         #
>                 #       Graduado pela UFCG                  #
>                 #       Curso: Ciência da Computação        #
>                 #       Mestrando pela COPIN-UFCG           #
>                 #     * Integrante do projeto OurGrid       #
>                 #        Fones: (83)88246910 / 32358355     #
>                 #                   33333453                #
> 
> -------------------------------------------------------
> SF.Net email is sponsored by:
> Tame your development challenges with Apache's Geronimo App Server. Download
> it for free - -and be entered to win a 42" plasma tv or your very own
> Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
> _______________________________________________
> Smartfrog-developer mailing list
> Smartfrog-developer-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/smartfrog-developer


                #############################################
                #       GUSTAVO WAGNER DINIZ MENDES         #
                #       Graduado pela UFCG                  #
                #       Curso: Ciência da Computação        #
                #       Mestrando pela COPIN-UFCG           #
                #     * Integrante do projeto OurGrid       #
                #        Fones: (83)88246910 / 32358355     #
                #                   33333453                #



-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php