geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Dealing with multiple GBeans
Date Thu, 19 Jan 2006 20:20:46 GMT
I think you have named your printer gbeans with keys name=gbean1 and  
name=gbean2 but the references expect them to be named  
name=APrinterGBean and name=BPrinterGBean.

You can look in var/log/geronimo.log for debug messages about why  
MyGBean didn't start: it will tell you what it is looking for.  You  
might need to adjust the log level to include DEBUG level.

thanks
david jencks

On Jan 19, 2006, at 11:44 AM, Nelson A. Perez wrote:

>
>
> Hi All,
>
>  With you help I have been developing a small
> application. The goal is very simple, we have 3
> GBeans: MyGBean, APrinterGBean and BPrinterGBean.
> MyGBean invokes a "print" operation on the two
> printers which it references and gets via dependency
> injection.
>
>  MyGBean prints "MyGBean" when started. For the other
> two GBeans, they have public "print" operations that
> when invoked (by MyGBean in this case) they output
> "APrinterGBean" and "BPrinterGBean" respectively.  So,
> if all were working correctly, we would see the
> sequence:
>
> "MyGBean"
> "APrinterGBean"
> "BPrinterGBean"
>
>   If I run MyGBean without referencing any of the
> printer GBeans, I get the correct message: "MyGBean."
> However, when I do handle the references for
> APrinterGBean and BPrinterGBean, I am able to compile
> and deploy the configuratiion plan successfuly, but
> only APrinterGBean and BPrinterGBean get started and
> as a result nothing gets printed. It is puzzling that
> it seems to be working fine, but MyGBean just doesn't
> get started, because if it were, we would see the
> sequence of the three messages:
>
> "MyGBean"
> "APrinterGBean"
> "BPrinterGBean"
>
>
> Any idea on why this is happening ? It all seems to be
> done properly, so I am a bit surprised. The
> configuration plan that I am using is:
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> 	
> <configuration
> 	
> xmlns="http://geronimo.apache.org/xml/ns/deployment"
> 	   configId="task/SampleTask"
> 	   >
> 	
> 		<dependency>		
> 			<groupId>samples</groupId>
> 	    	        <artifactId>task</artifactId>
> 	    	        <version>1.0</version>  	    	
> 		</dependency>		    		
> 			    	
>     	<gbean name="gbean1" class="task.APrinterGBean">
> </gbean>
>     	
>     	<gbean name="gbean2" class="task.BPrinterGBean">
> </gbean>
>     	
>     	<!--
> 		 <gbean name="DefaultThreadPool"
> class="org.apache.geronimo.pool.ThreadPool">
>         	<attribute
> name="keepAliveTime">15000</attribute>
>         	<attribute name="poolSize">30</attribute>
>         	<attribute
> name="poolName">DefaultThreadPool</attribute>
>     	</gbean> -->
> 	
> 		<gbean name="MyGBean" class="task.MyGBean">
>     		<!-- <reference
> name="Executor"><name>DefaultThreadPool</name></reference>
>  -->
> 		    <reference name="APrinter">
> <name>APrinterGBean</name> </reference>
> 			<reference name="BPrinter">
> <name>BPrinterGBean</name> </reference>
>    		</gbean>
>    			    	       		    		    	
> 		<!-- <gbean name="PrintStopper"
> class="task.PrintStopper" /> </gbean> -->
> 									 	
> </configuration>
> 	
>
>
> The MyGBean looks as follows:
>
>
> public class MyGBean implements GBeanLifecycle {
>
> ...
>
>     private APrinterGBean APrinter;
>     private BPrinterGBean BPrinter;
>
> ...
>
>     public void setAPrinter( APrinterGBean APrinter )
> {
>         this.APrinter = APrinter;
>     }
>
>     public void setBPrinter( BPrinterGBean BPrinter )
> {
>         this.BPrinter = BPrinter;
>     }
>
> ...
>
>
> infoFactory.addReference("APrinter",APrinterGBean.class);
>
> infoFactory.addReference("BPrinter",BPrinterGBean.class);
>
>
> ...
>
> public void doStart() throws WaitingException,
> Exception {
>     	System.out.println("GBean: " + objectName + " has
> started");
>         log.info("My GBean has started");
>         log.info(objectName);
>         log.info( "bean1 = " + APrinter);
>         log.info( "bean2 = " + BPrinter);
>
>         print(); //prints: MyGBean
>         APrinter.print(); //prints: "APrinterGBean"
>         BPrinter.print(); //prints: "BPrinterGBean"
>     }
>
>
> Clearly, the doStart() of MyGBean operation is not
> being executed, but I dont get any error messages
> related to MyGBean on the console nor on the log
> files.
>
> So, the issue here is that the configuration plan is
> deployed correctly, APrinterGBean and BPrinterGBean
> get started, but MyGBean is not getting started.
>
> Finally, in the next step of my little project I will
> make both APrinterGBean and BPRinterGBean run each on
> a ThreadPool. Each will run an infinite loop and I
> will create a fourth GBean whose sole purpose will be
> to stop the two printers. You can see the beginnings
> of this in the commented sections of my config plan
> above.
>
> After I am done, I can post the whole project, so that
> others can learn from it. The Internet is full of
> examples with code that does not compile, so I am sure
> this my code will be useful to others.
>
> Thanks,
> NP.
>
>
>
>
>
>
>
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com


Mime
View raw message