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: How a gbean in one plugin reference to the gbeans in other plugin?
Date Fri, 12 Jun 2009 23:06:39 GMT
I don't see anything wrong yet :-)

On the other hand it is rather confusing trying to read these files  
after they've been reformatted via email and with all the commented  
out stuff.

Can you take out

- commented out stuff
- properties defining deployers you don't use
- the dependencies in the plan (they should be inserted by the build  
process)  (If you are showing the processed plan, fine, but tell us  
so :-)

Also, which jar has the classes needed for the config plugin?

thanks
david jencks

On Jun 12, 2009, at 3:44 PM, gongli710 wrote:

>
> Hi, geronimo experts
>
> I am learning geronimo, and developed 2 plugins as experiement. I  
> wrote 2
> gbean in 2 plugins:
>
> LoggingGbean in logging plugin with name as eyelight/loggingService,  
> the
> plugin was build and deployed successful.
>
> ConfigurationGbean in config plugin with name as
> eyelight/configurationService, and this gbean has reference to
> eyelight/loggingService.  I added logging plugin car as dependency  
> in this
> config plugin pom.xml, otherwise the build failed with error : or  
> matches to
> reference name eyelight/loggingService.
>
> when I deployed it to geronimo after build,  geronimo report error ,  
> the
> configurtionGbean  can not find its owen classes ( all libs have  
> been add to
> depenecies).  I suspect when I add logging plugin car as depency in
> configiration plugin, the class loading of configuration plugin was  
> changed
> in some way, it just load class from logging plugin class  
> dependency.  So I
> add configrationGbean's libs to logging plugin depencies, the
> configurationGbean can start and initiaed successfully.
>
> but I think this is not normal. One plugin need to include lib jars  
> belong
> other plugins just becase those plugin reference it.
>
> Maybe I made some mistakes on plugin plan, pom.xml writing, I am so  
> new to
> geronimo development. Any advice is appriciated here.
>
>
> logging plugin pom.xml
>
> <project xmlns="http://maven.apache.org/POM/4.0.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/maven-v4_0_0.xsd">
>    <modelVersion>4.0.0</modelVersion>
>    <groupId>com.frontwavetech.eyelight.server</groupId>
>    <artifactId>eyelight-server-logging-geronimo</artifactId>
>    <version>1.0-SNAPSHOT</version>
>    <packaging>car</packaging>
>
>    <properties>
>        <!-- This property is required by the car:package mojo -->
>        <geronimoVersion>2.1.4</geronimoVersion>
>
>
> <gbeanDeployerBootstrap>org.apache.geronimo.framework/geronimo-gbean- 
> deployer-bootstrap/${geronimoVersion}/car</gbeanDeployerBootstrap>
>
> <gbeanDeployer>org.apache.geronimo.framework/geronimo-gbean-deployer/ 
> ${geronimoVersion}/car</gbeanDeployer>
>
> <j2eeDeployer>org.apache.geronimo.configs/j2ee-deployer/$ 
> {geronimoVersion}/car</j2eeDeployer>
>
> <clientDeployer>org.apache.geronimo.configs/client-deployer/$ 
> {geronimoVersion}/car</clientDeployer>
>
> <connectorDeployer>org.apache.geronimo.configs/connector-deployer/$ 
> {geronimoVersion}/car</connectorDeployer>
>
> <openejbDeployer>org.apache.geronimo.configs/openejb-deployer/$ 
> {geronimoVersion}/car</openejbDeployer>
>
> <openejbcorbaDeployer>org.apache.geronimo.configs/openejb-corba- 
> deployer/${geronimoVersion}/car</openejbcorbaDeployer>
>
> <axisDeployer>org.apache.geronimo.configs/axis-deployer/$ 
> {geronimoVersion}/car</axisDeployer>
>
> <cxfDeployer>org.apache.geronimo.configs/cxf-deployer/$ 
> {geronimoVersion}/car</cxfDeployer>
>
> <axis2Deployer>org.apache.geronimo.configs/axis2-deployer/$ 
> {geronimoVersion}/car</axis2Deployer>
>
> <tomcatDeployer>org.apache.geronimo.configs/tomcat6-deployer/$ 
> {geronimoVersion}/car</tomcatDeployer>
>
> <jetty6Deployer>org.apache.geronimo.configs/jetty6-deployer/$ 
> {geronimoVersion}/car</jetty6Deployer>
>
> <jasperDeployer>org.apache.geronimo.configs/jasper-deployer/$ 
> {geronimoVersion}/car</jasperDeployer>
>
> <jpaDeployer>org.apache.geronimo.configs/persistence-jpa10-deployer/$ 
> {geronimoVersion}/car</jpaDeployer>
>    </properties>
>
>
>    <dependencies>
>
>        <dependency>
>            <groupId>org.apache.geronimo.framework</groupId>
>            <artifactId>geronimo-gbean-deployer</artifactId>
>            <version>${geronimoVersion}</version>
>            <type>car</type>
>            <scope>provided</scope>
>        </dependency>
>
> 	<dependency>
>            <groupId>org.apache.geronimo.framework</groupId>
>            <artifactId>geronimo-kernel</artifactId>
>            <version>${geronimoVersion}</version>
>            <type>jar</type>
>        </dependency>
>
>        <dependency>
>            <groupId>com.frontwavetech.eyelight.server</groupId>
>            <artifactId>eyelight-server-logging</artifactId>
>            <version>${version}</version>
>        </dependency>
> 		
>       <dependency>
>         <groupId>com.frontwavetech.eyelight</groupId>
>         <artifactId>eyelight-common-core</artifactId>
>         <version>1.0-SNAPSHOT</version>
>         <type>jar</type>
>       </dependency>
>
>       <dependency>
>         <groupId>com.frontwavetech.external</groupId>
>         <artifactId>frontwavetech-external-log4j</artifactId>
>         <version>1.2.16</version>
>         <type>jar</type>
>       </dependency>
>
>       <dependency>
> 	      <groupId>com.frontwavetech.external</groupId>
>    	
> <artifactId>frontwavetech-external-backport-util-concurrent</ 
> artifactId>
>     	  <version>3.1-Java12</version>
>      	  <type>jar</type>
>       </dependency>
> 		
>    </dependencies>
>
>    <build>
>        <pluginManagement>
>            <plugins>
>
>                <plugin>
>                    <groupId>org.apache.geronimo.buildsupport</groupId>
>                    <artifactId>car-maven-plugin</artifactId>
>                    <version>${geronimoVersion}</version>
>                    <extensions>true</extensions>
>                    <configuration>
>                        <!-- where in plugin catalog this should go -->
>                        <category>MyCategory</category>
>                    </configuration>
>                </plugin>
>
>            </plugins>
>        </pluginManagement>
>
>        <plugins>
>            <plugin>
>                <groupId>org.apache.geronimo.buildsupport</groupId>
>                <artifactId>car-maven-plugin</artifactId>
>                <configuration>
>                    <deploymentConfigs>
>                        <!-- gbean deployer is default.  For jee apps
> include all deployers your app needs, see properties -->
>
> <!--<deploymentConfig>${gbeanDeployer}</deploymentConfig>-->
>
> <!--<deploymentConfig>${j2eeDeployer}</deploymentConfig>-->
>
> <!--<deploymentConfig>${jetty6Deployer}</deploymentConfig>-->
>
> <!--<deploymentConfig>${jasperDeployer}</deploymentConfig>-->
>
> <!--<deploymentConfig>${jpaDeployer}</deploymentConfig>-->
>                    </deploymentConfigs>
>                    <!-- if you are deploying a jee app specify it  
> here -->
>                    <!--
>                                        <module>
>
> <groupId>org.apache.roller</groupId>
>
> <artifactId>roller-weblogger-geronimo</artifactId>
>                                            <type>war</type>
>                                        </module>
>                    -->
>                    <!-- Normally you can use the maven dependencies
> unaltered.  If you need to specify import scope
>                     you can list the dependencies here as you want  
> them in
> the plan.xml -->
>                    <useMavenDependencies>
>                        <value>true</value>
>                        <includeVersion>true</includeVersion>
>                    </useMavenDependencies>
>                    <!-- the instance sets up most of the optional
> geronimo-plugin.xml content -->
>                    <instance>
>                        <plugin-artifact>
>                            <!-- prerequisites prevent your module from
> being installed unless already present -->
>                            <!--
>                                                        <prerequisite>
>                                                            <id>
>
> <groupId>mysql</groupId>
>
> <artifactId>mysql-connector-java</artifactId>
>
> <version>3.1.12</version>
>
> <type>jar</type>
>                                                            </id>
>
> <resource-type>Database Connector</resource-type>
>                                                             
> <description>
>                                                                (why  
> this
> can't be installed as a dependency)
>                                                            </ 
> description>
>                                                        </prerequisite>
>                            -->
>                            <!-- extract stuff from the car to the  
> specified
> location (good for config info -->
>                            <!--<copy-file relative-to="server"
> dest-dir="var/roller-data">themes</copy-file>-->
>                            <!-- content that should go into
> var/config/config.xml for module customization -->
>                            <!-- note the variable ${RollerContextPath}
> which is further specified in var/config/config- 
> substitutions.properties -->
>                            <!--
>                                                        <config-xml- 
> content
> server="default">
>                                                            <gbean
> name="org.apache.geronimo.plugins/roller-jetty/1.0-SNAPSHOT/car">
>                                                                 
> <attribute
> name="contextPath">${RollerContextPath}</attribute>
>                                                            </gbean>
>
> </config-xml-content>
>                            -->
>                            <!-- a user-tweakable variable to go into
> var/config/config-substitutions.properties -->
>                            <!--<config-substitution
> key="RollerContextPath">/roller</config-substitution>-->
>                            <!-- artifact aliases let your module  
> substitute
> for another one, e.g one db for another -->
>                            <!--<artifact-alias
> key="org.apache.geronimo.plugins/roller-derby-database/1.0-SNAPSHOT/ 
> car">org.apache.geronimo.plugins/roller-mysql-database/1.0-SNAPSHOT/ 
> car</artifact-alias>-->
>
>                        </plugin-artifact>
>                    </instance>
>                </configuration>
>            </plugin>
>        </plugins>
>    </build>
>
> </project>
>
> logging plugin plan.xml
> <module xmlns="http://geronimo.apache.org/xml/ns/deployment-1.2">
>    <gbean name="eyelight/loggingService"
> class="com.frontwavetech.eyelight.server.logging.LoggingServiceGBean">
>    </gbean>
>
> </module>
>
>
> Configuration plugin pom.xml
> <project xmlns="http://maven.apache.org/POM/4.0.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/maven-v4_0_0.xsd">
>    <modelVersion>4.0.0</modelVersion>
>    <groupId>com.frontwavetech.eyelight.server</groupId>
>    <artifactId>eyelight-server-configuration-geronimo</artifactId>
>    <version>1.0-SNAPSHOT</version>
>    <packaging>car</packaging>
>
>    <properties>
>        <!-- This property is required by the car:package mojo -->
>        <geronimoVersion>2.1.4</geronimoVersion>
>
>
> <gbeanDeployerBootstrap>org.apache.geronimo.framework/geronimo-gbean- 
> deployer-bootstrap/${geronimoVersion}/car</gbeanDeployerBootstrap>
>
> <gbeanDeployer>org.apache.geronimo.framework/geronimo-gbean-deployer/ 
> ${geronimoVersion}/car</gbeanDeployer>
>
> <j2eeDeployer>org.apache.geronimo.configs/j2ee-deployer/$ 
> {geronimoVersion}/car</j2eeDeployer>
>
> <clientDeployer>org.apache.geronimo.configs/client-deployer/$ 
> {geronimoVersion}/car</clientDeployer>
>
> <connectorDeployer>org.apache.geronimo.configs/connector-deployer/$ 
> {geronimoVersion}/car</connectorDeployer>
>
> <openejbDeployer>org.apache.geronimo.configs/openejb-deployer/$ 
> {geronimoVersion}/car</openejbDeployer>
>
> <openejbcorbaDeployer>org.apache.geronimo.configs/openejb-corba- 
> deployer/${geronimoVersion}/car</openejbcorbaDeployer>
>
> <axisDeployer>org.apache.geronimo.configs/axis-deployer/$ 
> {geronimoVersion}/car</axisDeployer>
>
> <cxfDeployer>org.apache.geronimo.configs/cxf-deployer/$ 
> {geronimoVersion}/car</cxfDeployer>
>
> <axis2Deployer>org.apache.geronimo.configs/axis2-deployer/$ 
> {geronimoVersion}/car</axis2Deployer>
>
> <tomcatDeployer>org.apache.geronimo.configs/tomcat6-deployer/$ 
> {geronimoVersion}/car</tomcatDeployer>
>
> <jetty6Deployer>org.apache.geronimo.configs/jetty6-deployer/$ 
> {geronimoVersion}/car</jetty6Deployer>
>
> <jasperDeployer>org.apache.geronimo.configs/jasper-deployer/$ 
> {geronimoVersion}/car</jasperDeployer>
>
> <jpaDeployer>org.apache.geronimo.configs/persistence-jpa10-deployer/$ 
> {geronimoVersion}/car</jpaDeployer>
>    </properties>
>
>
>    <dependencies>
>
> 	<dependency>
>            <groupId>org.apache.geronimo.framework</groupId>
>            <artifactId>geronimo-kernel</artifactId>
>            <version>${geronimoVersion}</version>
>            <type>jar</type>
>    	</dependency>
>
>        <dependency>
>            <groupId>org.apache.geronimo.framework</groupId>
>            <artifactId>geronimo-gbean-deployer</artifactId>
>            <version>${geronimoVersion}</version>
>            <type>car</type>
>            <scope>provided</scope>
>        </dependency>
>
>        <dependency>
>            <groupId>org.apache.geronimo.framework</groupId>
>            <artifactId>plugin</artifactId>
>            <version>${geronimoVersion}</version>
>            <type>car</type>
>            <scope>provided</scope>
>        </dependency>
>
>        <dependency>
>            <groupId>com.frontwavetech.eyelight.server</groupId>
>            <artifactId>eyelight-server-configuration</artifactId>
>            <version>${version}</version>
>        </dependency>
>
>     <dependency>
>         <groupId>com.frontwavetech.external</groupId>
>         <artifactId>frontwavetech-external-common-lang</artifactId>
>         <version>2.4</version>
>       </dependency>
>
>     <dependency>
>         <groupId>com.frontwavetech.external</groupId>
>         <artifactId>frontwavetech-external-common-collection</ 
> artifactId>
>         <version>3.2</version>
>       </dependency>
>
>       <dependency>
>         <groupId>com.frontwavetech.external</groupId>
>
> <artifactId>frontwavetech-external-common-configuration</artifactId>
>         <version>1.5</version>
>       </dependency>
>
>       <dependency>
>         <groupId>com.frontwavetech.eyelight</groupId>
>         <artifactId>eyelight-common-core</artifactId>
>         <version>1.0-SNAPSHOT</version>
>       </dependency>
>
>    <dependency>
>      <groupId>com.frontwavetech.eyelight.server</groupId>
>      <artifactId>eyelight-server-logging</artifactId>
>      <version>1.0-SNAPSHOT</version>
>    </dependency>
>
>    <dependency>
>  	<groupId>com.frontwavetech.eyelight.server</groupId>
>      	<artifactId>eyelight-server-logging-geronimo</artifactId>
>      	<version>1.0-SNAPSHOT</version>
>      	<type>car</type>
>    </dependency>
>
>    </dependencies>
>
>    <build>
>        <pluginManagement>
>            <plugins>
>
>                <plugin>
>                    <groupId>org.apache.geronimo.buildsupport</groupId>
>                    <artifactId>car-maven-plugin</artifactId>
>                    <version>${geronimoVersion}</version>
>                    <extensions>true</extensions>
>                    <configuration>
>                        <!-- where in plugin catalog this should go -->
>                        <category>eyelight-server-configuration</ 
> category>
>                    </configuration>
>                </plugin>
>
>            </plugins>
>        </pluginManagement>
>
>        <plugins>
>            <plugin>
>                <groupId>org.apache.geronimo.buildsupport</groupId>
>                <artifactId>car-maven-plugin</artifactId>
>                <configuration>
>                    <deploymentConfigs>
>                        <!-- gbean deployer is default.  For jee apps
> include all deployers your app needs, see properties -->
>
> <deploymentConfig>${gbeanDeployer}</deploymentConfig>
>
> <!--<deploymentConfig>${j2eeDeployer}</deploymentConfig>-->
>
> <!--<deploymentConfig>${jetty6Deployer}</deploymentConfig>-->
>
> <!--<deploymentConfig>${jasperDeployer}</deploymentConfig>-->
>
> <!--<deploymentConfig>${jpaDeployer}</deploymentConfig>-->
>                    </deploymentConfigs>
>                    <!-- Normally you can use the maven dependencies
> unaltered.  If you need to specify import scope
>                     you can list the dependencies here as you want  
> them in
> the plan.xml -->
>                    <useMavenDependencies>
>                        <value>true</value>
>                        <includeVersion>true</includeVersion>
>                    </useMavenDependencies>
>                    <!-- the instance sets up most of the optional
> geronimo-plugin.xml content -->
>                    <instance>
>                        <plugin-artifact>
>                            <copy-file relative-to="server"
> dest-dir="var/eyelight">eyelight-server.properties</copy-file>
>                        </plugin-artifact>
>                    </instance>
>                </configuration>
>            </plugin>
>        </plugins>
>    </build>
>
> </project>
>
> configuration plugin plan.xml
> <module xmlns="http://geronimo.apache.org/xml/ns/deployment-1.2">
>     <environment>
>           <moduleId>
> 	    <groupId>com.frontwavetech.eyelight.server</groupId>
> 	        <artifactId>eyelight-server-configuration-geronimo</ 
> artifactId>
> 		<version>1.0-SNAPSHOT</version>
> 		<type>car</type>
>           </moduleId>
>
> 	<dependencies>
>     <dependency>
>         <groupId>com.frontwavetech.external</groupId>
>         <artifactId>frontwavetech-external-common-lang</artifactId>
>         <version>2.4</version>
>       </dependency>
>
>     <dependency>
>         <groupId>com.frontwavetech.external</groupId>
>         <artifactId>frontwavetech-external-common-collection</ 
> artifactId>
>         <version>3.2</version>
>       </dependency>
>
>       <dependency>
>         <groupId>com.frontwavetech.external</groupId>
>
> <artifactId>frontwavetech-external-common-configuration</artifactId>
>         <version>1.5</version>
>       </dependency>
>
>       <dependency>
>         <groupId>com.frontwavetech.eyelight</groupId>
>         <artifactId>eyelight-common-core</artifactId>
>         <version>1.0-SNAPSHOT</version>
>       </dependency>
> 	</dependencies>
>
> 	<reverse-classloading/>
>
> 	<hidden-classes/>
>
> 	<non-overridable-classes/>
>
>    </environment>
> 	
>
>    <gbean name="eyelight/configurationService"
> class 
> = 
> "com 
> .frontwavetech 
> .eyelight.server.configuration.ConfigurationServiceGBean">
> 	<attribute
> name="configurationFileName">var/eyelight/eyelight- 
> server.properties</attribute>
>    	<reference name="loggingService">
> 		<name>eyelight/loggingService</name>
> 	</reference>
>    </gbean>
>
> </module>
>
>
> -- 
> View this message in context: http://www.nabble.com/How-a-gbean-in-one-plugin-reference-to-the-gbeans-in-other-plugin--tp24007150s134p24007150.html
> Sent from the Apache Geronimo - Dev mailing list archive at  
> Nabble.com.
>

Mime
View raw message