You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "Russell E Glaue (Commented) (JIRA)" <ji...@apache.org> on 2012/02/20 23:41:34 UTC

[jira] [Commented] (GERONIMO-6175) Environment variable org.apache.geronimo.repository.boot.path not used, Repository path does not observe named instances

    [ https://issues.apache.org/jira/browse/GERONIMO-6175?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13212184#comment-13212184 ] 

Russell E Glaue commented on GERONIMO-6175:
-------------------------------------------

Converted to sub-task of GERONIMO-6270 - we'll use this jira to track discussion and any modifications to the repository location in regards to supporting multiple instances.

The first question is Why is the "org.apache.geronimo.repository.boot.path" property prepended with an "X" in the three files it is referenced? (Xorg.apache.geronimo.repository.boot.path)

                
> Environment variable org.apache.geronimo.repository.boot.path not used, Repository path does not observe named instances
> ------------------------------------------------------------------------------------------------------------------------
>
>                 Key: GERONIMO-6175
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-6175
>             Project: Geronimo
>          Issue Type: Sub-task
>      Security Level: public(Regular issues) 
>    Affects Versions: 3.0, 3.0-beta-1
>         Environment: Linux x86, Red Hat Enterprise Linux Server release 5.4 (Tikanga)
>            Reporter: Russell E Glaue
>            Priority: Minor
>              Labels: geronimo
>
> I only list this issue as minor, as the issue does not prevent running Geronimo, or more than one copy of Geronimo on a single server. However, this issue does prevent the proper utilization of multiple named server instances.
> Two issues:
> # On startup, Geronimo does not use the repository relative to the named server instance directory.
> # We are unable to set the repository with the property org.apache.geronimo.repository.boot.path to be relative to the named server instance directory.
> From what I could decipher, these are the (or some) of the primary classes defining the repository
> - framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/ConfigurationUtil.java
> - plugins/jaxws/geronimo-jaxws-sun-tools/src/main/java/org/apache/geronimo/jaxws/sun/tools/JAXWSToolsCLI.java
> - plugins/cxf/geronimo-cxf-tools/src/main/java/org/apache/geronimo/cxf/tools/JAXWSToolsCLI.java
> And the property "org.apache.geronimo.repository.boot.path" has a prepended "X" in each of the three files.
> This tells me it was specifically disabled, and probably for some big issue.
> {noformat:borderStyle=solid}
> # framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/ConfigurationUtil.java
> ...
>         Collection repositories = null;
>         ArtifactResolver artifactResolver = null;
>         if (enableBootRepo) {
>             String repository = System.getProperty("Xorg.apache.geronimo.repository.boot.path", "repository");
>             Maven2Repository bootRepository = new Maven2Repository(new File(getBootDirectory(), repository));
>             repositories = Collections.singleton(bootRepository);
>             artifactResolver = new DefaultArtifactResolver(new DefaultArtifactManager(), bootRepository);
>         } else {
>             // a bootstrap configuration can not have any dependencies
>             List dependencies = configurationData.getEnvironment().getDependencies();
>             if (!dependencies.isEmpty()) {
>                 configurationData.getEnvironment().setDependencies(Collections.EMPTY_SET);
>             }
>         }
> ...
> {noformat}
> To produce this issue, follow these steps:
> # Unpack the latest Geronimo javaee6 bundle as /opt/geronimo3
> # Create a Geronimo named instance directory as /opt/geronimo3/gserv1
> # Move the directories var, etc, and repository into /opt/geronimo3/gserv1
> # If patch GERONIMO-6275 in applied, start with this:
> -- env JAVA_HOME=/usr/jdk1.6.0 GERONIMO_SERVER=/opt/geronimo3/gserv1 /opt/geronimo3/bin/geronimo run
> # Or. without the patch, Use this start script
> {noformat:borderStyle=solid}
> #!/bin/bash
> GHOME=/opt/geronimo3
> GVIRT=gserv1
> # Must change to the server directory in order to work around ActiveMQ lock
> # file conflict issue reported in GERONIMO-5987.
> cd ${GHOME}/${GVIRT}
> # Uncomment for the Workaround of issues in GERONIMO-6174
> export GERONIMO_TMPDIR=${GHOME}/${GVIRT}/var/temp
> GERONIMO_OPTS="${GERONIMO_OPTS} -Dkaraf.home=${GHOME}/${GVIRT}"
> #
> # Attempt to specify the correct root path to the repository for this
> # named server instance
> GERONIMO_OPTS="${GERONIMO_OPTS} -Dorg.apache.geronimo.repository.boot.path=${GHOME}/${GVIRT}/repository"
> #
> GERONIMO_OPTS="${GERONIMO_OPTS} -Dorg.apache.geronimo.server.name=${GVIRT}"
> export GERONIMO_OPTS
> ${GHOME}/bin/geronimo run
> {noformat}
> When starting the Geronimo named server instance with the above start script the following error is experienced:
> {noformat:borderStyle=solid}
> [user@linux gserv1]# ./start.sh 
> Using GERONIMO_HOME:   /opt/geronimo3
> Using GERONIMO_TMPDIR: /opt/geronimo3/gserv1/var/temp
> Using JRE_HOME:        /usr/jdk1.6.0/jre
>                                                           
>      ______                       _                       
>     / ____/___  _________  ____  (_)____ ___  ____        
>    / / __ / _ \/ ___/ __ \/ __ \/ // __ `__ \/ __ \  
>   / /_/ //  __/ /  / /_/ / / / / // / / / / / /_/ /       
>   \____/ \___/_/   \____/_/ /_/_//_/ /_/ /_/\____/    
>   Apache Geronimo (3.0-SNAPSHOT)
> Hit '<tab>' for a list of available commands
> and '[cmd] --help' for help on a specific command.
> Hit '<ctrl-d>' or 'osgi:shutdown' to shutdown Geronimo.
> geronimo> 2011-09-26 15:01:25,752 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED state: abstractName="org.apache.geronimo.framework/j2ee-system/3.0-SNAPSHOT/car?ServiceModule=org.apache.geronimo.framework/j2ee-system/3.0-SNAPSHOT/car,j2eeType=Repository,name=Repository"
> java.lang.IllegalStateException: Maven2Repository must have a root that's a valid readable directory (not /opt/geronimo3/repository)
> 	at org.apache.geronimo.kernel.repository.AbstractRepository.<init>(AbstractRepository.java:51)
> 	at org.apache.geronimo.kernel.repository.Maven2Repository.<init>(Maven2Repository.java:32)
> 	at org.apache.geronimo.system.repository.Maven2Repository.<init>(Maven2Repository.java:36)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> 	at org.apache.xbean.recipe.ReflectionUtil$ConstructorFactory.create(ReflectionUtil.java:958)
> 	at org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:276)
> 	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96)
> 	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:958)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:271)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:105)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:555)
> 	at org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:110)
> 	at org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:145)
> 	at org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:119)
> 	at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:176)
> 	at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:45)
> 	at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:254)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:301)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:105)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:127)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:569)
> 	at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:386)
> 	at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:462)
> 	at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:216)
> 	at org.apache.geronimo.system.osgi.BootActivator.start(BootActivator.java:70)
> 	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
> 	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
> 	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
> 	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:389)
> 	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1131)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
> 	at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.internalStart(EquinoxLauncher.java:271)
> 	at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.start(EquinoxLauncher.java:241)
> 	at org.eclipse.osgi.launch.Equinox.start(Equinox.java:258)
> 	at org.apache.geronimo.main.FrameworkLauncher.launchOSGiFramework(FrameworkLauncher.java:185)
> 	at org.apache.geronimo.main.FrameworkLauncher.launch(FrameworkLauncher.java:166)
> 	at org.apache.geronimo.main.Bootstrapper.execute(Bootstrapper.java:47)
> 	at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
> 	at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:32)
> 2011-09-26 15:01:25,868 WARN  [FeaturesServiceImpl] Unable to add features repository mvn:org.apache.geronimo.features/openejb-feature/3.0-SNAPSHOT/xml/features at startup
> java.lang.RuntimeException: URL [mvn:org.apache.geronimo.features/openejb-feature/3.0-SNAPSHOT/xml/features] could not be resolved.
> 	at org.ops4j.pax.url.mvn.internal.Connection.getInputStream(Connection.java:195)
> 	at org.apache.karaf.features.internal.FeatureValidationUtil.validate(FeatureValidationUtil.java:49)
> 	at org.apache.karaf.features.internal.FeaturesServiceImpl.validateRepository(FeaturesServiceImpl.java:199)
> 	at org.apache.karaf.features.internal.FeaturesServiceImpl.internalAddRepository(FeaturesServiceImpl.java:210)
> 	at org.apache.karaf.features.internal.FeaturesServiceImpl.loadState(FeaturesServiceImpl.java:1074)
> 	at org.apache.karaf.features.internal.FeaturesServiceImpl.start(FeaturesServiceImpl.java:914)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:226)
> 	at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:824)
> 	at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:636)
> 	at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:724)
> 	at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)
> 	at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)
> 	at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:147)
> 	at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:640)
> 	at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:331)
> 	at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:227)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:662)
> 2011-09-26 15:01:28,335 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED state: abstractName="org.apache.geronimo.framework/j2ee-system/3.0-SNAPSHOT/car?ServiceModule=org.apache.geronimo.framework/j2ee-system/3.0-SNAPSHOT/car,j2eeType=Repository,name=Repository"
> java.lang.IllegalStateException: Maven2Repository must have a root that's a valid readable directory (not /opt/geronimo3/repository)
> 	at org.apache.geronimo.kernel.repository.AbstractRepository.<init>(AbstractRepository.java:51)
> 	at org.apache.geronimo.kernel.repository.Maven2Repository.<init>(Maven2Repository.java:32)
> 	at org.apache.geronimo.system.repository.Maven2Repository.<init>(Maven2Repository.java:36)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> 	at org.apache.xbean.recipe.ReflectionUtil$ConstructorFactory.create(ReflectionUtil.java:958)
> 	at org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:276)
> 	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96)
> 	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:958)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:271)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:105)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:127)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:569)
> 	at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:386)
> 	at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:462)
> 	at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:216)
> 	at org.apache.geronimo.system.osgi.BootActivator.start(BootActivator.java:70)
> 	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
> 	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
> 	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
> 	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:389)
> 	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1131)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
> 	at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.internalStart(EquinoxLauncher.java:271)
> 	at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.start(EquinoxLauncher.java:241)
> 	at org.eclipse.osgi.launch.Equinox.start(Equinox.java:258)
> 	at org.apache.geronimo.main.FrameworkLauncher.launchOSGiFramework(FrameworkLauncher.java:185)
> 	at org.apache.geronimo.main.FrameworkLauncher.launch(FrameworkLauncher.java:166)
> 	at org.apache.geronimo.main.Bootstrapper.execute(Bootstrapper.java:47)
> 	at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
> 	at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:32)
> Main not found
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira