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.
