[Design of POJO Server] - Re: migrating TransactionManager and Invokers to POJO
by jhalliday
> Either use the @JMX annotation or the MBeanExporter, don't do both.
ok, so I'll go for
| <deployment xmlns="urn:jboss:bean-deployer:2.0">
| <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jta.TransactionManagerService">
| <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss:service=TransactionManager", exposedInterface=com.arjuna.ats.jbossatx.jta.TransactionManagerServiceMBean.class, registerDirectly=true)</annotation>
|
| <property name="transactionTimeout">300</property>
| <property name="objectStoreDir">${jboss.server.data.dir}/tx-object-store</property>
|
| </bean>
| </deployment>
|
> You don't have two objects, you have two attempts at MBeanRegistration.
I still have two calls to my bean's constructor. That means I have two object instances.
2008-03-31 15:00:47,849 DEBUG [org.jboss.deployers.structure.spi.helpers.AbstractDeploymentContext] (main) Added component TransactionManager to vfsfile:/home/jhalli/IdeaProjects/jboss/jbossas_trunk/build/output/jboss-5.0.0.CR1/server/default/deploy/transaction-beans.xml
| 2008-03-31 15:00:47,926 INFO 2008-03-31 15:00:47,927 ERROR [STDERR] (main) java.lang.Exception: Stack trace
| 2008-03-31 15:00:47,927 ERROR [STDERR] (main) at java.lang.Thread.dumpStack(Thread.java:1158)
| 2008-03-31 15:00:47,927 ERROR [STDERR] (main) at com.arjuna.ats.jbossatx.jta.TransactionManagerService.<init>(TransactionManagerService.java:114)
| 2008-03-31 15:00:47,927 ERROR [STDERR] (main) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
| 2008-03-31 15:00:47,927 ERROR [STDERR] (main) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
| 2008-03-31 15:00:47,927 ERROR [STDERR] (main) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
| 2008-03-31 15:00:47,927 ERROR [STDERR] (main) at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
| 2008-03-31 15:00:47,927 ERROR [STDERR] (main) at org.jboss.reflect.plugins.introspection.ReflectionUtils.newInstance(ReflectionUtils.java:137)
| 2008-03-31 15:00:47,927 ERROR [STDERR] (main) at org.jboss.reflect.plugins.introspection.ReflectConstructorInfoImpl.newInstance(ReflectConstructorInfoImpl.java:106)
| 2008-03-31 15:00:47,927 ERROR [STDERR] (main) at org.jboss.joinpoint.plugins.BasicConstructorJoinPoint.dispatch(BasicConstructorJoinPoint.java:80)
| 2008-03-31 15:00:47,927 ERROR [STDERR] (main) at org.jboss.aop.microcontainer.integration.AOPConstructorJoinpoint.createTarget(AOPConstructorJoinpoint.java:200)
| 2008-03-31 15:00:47,927 ERROR [STDERR] (main) at org.jboss.aop.microcontainer.integration.AOPConstructorJoinpoint.dispatch(AOPConstructorJoinpoint.java:80)
| 2008-03-31 15:00:47,927 ERROR [STDERR] (main) at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:240)
| 2008-03-31 15:00:47,927 ERROR [STDERR] (main) at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:45)
| 2008-03-31 15:00:47,927 ERROR [STDERR] (main) at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:108)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:69)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.kernel.plugins.dependency.InstantiateAction.installActionInternal(InstantiateAction.java:54)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:327)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1324)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:734)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:862)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:784)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:574)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:398)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:88)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:46)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:174)
| 2008-03-31 15:00:47,928 ERROR [STDERR] (main) at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:946)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:967)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:887)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:327)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1324)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:734)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:862)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:784)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:622)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:411)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:579)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:541)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:259)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:137)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:409)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.Main.boot(Main.java:209)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at org.jboss.Main$1.run(Main.java:544)
| 2008-03-31 15:00:47,929 ERROR [STDERR] (main) at java.lang.Thread.run(Thread.java:595)
| ...
| 2008-03-31 15:00:48,121 ERROR [STDERR] (main) java.lang.Exception: Stack trace
| 2008-03-31 15:00:48,121 ERROR [STDERR] (main) at java.lang.Thread.dumpStack(Thread.java:1158)
| 2008-03-31 15:00:48,121 ERROR [STDERR] (main) at com.arjuna.ats.jbossatx.jta.TransactionManagerService.<init>(TransactionManagerService.java:114)
| 2008-03-31 15:00:48,121 ERROR [STDERR] (main) at com.arjuna.ats.jbossatx.jta.AOPContainerProxy$0.<init>(AOPContainerProxy$0.java)
| 2008-03-31 15:00:48,121 ERROR [STDERR] (main) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
| 2008-03-31 15:00:48,122 ERROR [STDERR] (main) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
| 2008-03-31 15:00:48,122 ERROR [STDERR] (main) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
| 2008-03-31 15:00:48,122 ERROR [STDERR] (main) at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
| 2008-03-31 15:00:48,122 ERROR [STDERR] (main) at java.lang.Class.newInstance0(Class.java:350)
| 2008-03-31 15:00:48,122 ERROR [STDERR] (main) at java.lang.Class.newInstance(Class.java:303)
| 2008-03-31 15:00:48,122 ERROR [STDERR] (main) at org.jboss.aop.proxy.container.GeneratedAOPProxyFactory.instantiateAndConfigureProxy(GeneratedAOPProxyFactory.java:145)
| 2008-03-31 15:00:48,122 ERROR [STDERR] (main) at org.jboss.aop.proxy.container.GeneratedAOPProxyFactory.getProxy(GeneratedAOPProxyFactory.java:120)
| 2008-03-31 15:00:48,122 ERROR [STDERR] (main) at org.jboss.aop.proxy.container.GeneratedAOPProxyFactory.createAdvisedProxy(GeneratedAOPProxyFactory.java:85)
| 2008-03-31 15:00:48,122 ERROR [STDERR] (main) at org.jboss.aop.microcontainer.integration.AOPConstructorJoinpoint.dispatch(AOPConstructorJoinpoint.java:87)
| 2008-03-31 15:00:48,122 ERROR [STDERR] (main) at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:240)
| 2008-03-31 15:00:48,122 ERROR [STDERR] (main) at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:45)
| 2008-03-31 15:00:48,122 ERROR [STDERR] (main) at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:108)
| 2008-03-31 15:00:48,122 ERROR [STDERR] (main) at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:69)
| 2008-03-31 15:00:48,122 ERROR [STDERR] (main) at org.jboss.kernel.plugins.dependency.InstantiateAction.installActionInternal(InstantiateAction.java:54)
| 2008-03-31 15:00:48,123 ERROR [STDERR] (main) at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54)
| 2008-03-31 15:00:48,123 ERROR [STDERR] (main) at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42)
| 2008-03-31 15:00:48,123 ERROR [STDERR] (main) at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
| 2008-03-31 15:00:48,123 ERROR [STDERR] (main) at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
| 2008-03-31 15:00:48,123 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
| 2008-03-31 15:00:48,123 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:327)
| 2008-03-31 15:00:48,123 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1324)
| 2008-03-31 15:00:48,123 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:734)
| 2008-03-31 15:00:48,123 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:862)
| 2008-03-31 15:00:48,123 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:784)
| 2008-03-31 15:00:48,123 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:574)
| 2008-03-31 15:00:48,123 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:398)
| 2008-03-31 15:00:48,123 ERROR [STDERR] (main) at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:88)
| 2008-03-31 15:00:48,123 ERROR [STDERR] (main) at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:46)
| 2008-03-31 15:00:48,124 ERROR [STDERR] (main) at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
| 2008-03-31 15:00:48,124 ERROR [STDERR] (main) at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
| 2008-03-31 15:00:48,124 ERROR [STDERR] (main) at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:174)
| 2008-03-31 15:00:48,124 ERROR [STDERR] (main) at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:946)
| 2008-03-31 15:00:48,124 ERROR [STDERR] (main) at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:967)
| 2008-03-31 15:00:48,124 ERROR [STDERR] (main) at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:887)
| 2008-03-31 15:00:48,124 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:327)
| 2008-03-31 15:00:48,124 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1324)
| 2008-03-31 15:00:48,124 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:734)
| 2008-03-31 15:00:48,124 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:862)
| 2008-03-31 15:00:48,124 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:784)
| 2008-03-31 15:00:48,124 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:622)
| 2008-03-31 15:00:48,124 ERROR [STDERR] (main) at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:411)
| 2008-03-31 15:00:48,125 ERROR [STDERR] (main) at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:579)
| 2008-03-31 15:00:48,125 ERROR [STDERR] (main) at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:541)
| 2008-03-31 15:00:48,125 ERROR [STDERR] (main) at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:259)
| 2008-03-31 15:00:48,125 ERROR [STDERR] (main) at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:137)
| 2008-03-31 15:00:48,125 ERROR [STDERR] (main) at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:409)
| 2008-03-31 15:00:48,125 ERROR [STDERR] (main) at org.jboss.Main.boot(Main.java:209)
| 2008-03-31 15:00:48,125 ERROR [STDERR] (main) at org.jboss.Main$1.run(Main.java:544)
| 2008-03-31 15:00:48,125 ERROR [STDERR] (main) at java.lang.Thread.run(Thread.java:595)
If the startup ordering problem can be resolved I don't really care how many instances are created. But right now I need to do setup in the constructor because it's the only way I can ensure it happens before things that depend on it are started.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4140147#4140147
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4140147
16 years, 1 month
[Design of POJO Server] - Re: migrating TransactionManager and Invokers to POJO
by adrian@jboss.org
"jhalliday" wrote :
| I also have problems because some things are not happening in the right order. Before either create or start is called on the transaction manager bean I see something that depends on it being started. Huh? This does not follow my understanding of the lifecycle, which is that dependent objects should not move into a state until everything they depend on has achieved at least an equivalently advanced state. Does the required state need to be specified explicitly on the CachedConnectionManager? Or perhaps this behaviour is something to do with the CCM being an mbean whilst the TM is a bean?
|
| 14:22:54,750 ERROR [AbstractKernelController] Error installing to Start: name=jboss.jca:service=CachedConnectionManager state=Create mode=Manual requiredState=Installed
| | java.lang.ExceptionInInitializerError
| | at org.jboss.resource.connectionmanager.CachedConnectionManager.startService(CachedConnectionManager.java:191)
| | ...
| | Caused by: java.lang.RuntimeException: Unable to locate the transaction manager
| | at org.jboss.tm.TransactionManagerLocator.locate(TransactionManagerLocator.java:105)
| | ...
| |
What does your implementation look like?
If you register it as an MBean you effectively get a duplicate lifecycle,
once from the registeration in the ServiceController and once from the
registration as a POJO.
The ServiceMBeanSupport works around this by only allowing create() to propogate
to createService() when it is not already done.
Stupid I know, but nobody has gotten around to fixing the
@JMX support to link the ServiceController lifecycle to the POJO one.
i.e. it shouldn't move to the create() state in the old JMX kernel until it moves
to the create() state in the MC (and then it should be a no-op in JMX).
i.e. The serviceController.start() in the code below shouldn't exist. Instead
the create/start/stop/destroy moves in the ServiceController should be
driven off the POJO lifecycle.
http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbossas/trunk/system-jmx/src/m...
| server.registerMBean(mbean, objectName);
| try
| {
| serviceController.start(objectName);
| }
| catch (Exception e)
| {
| try
| {
| server.unregisterMBean(objectName);
| }
| catch (Exception t)
| {
| log.debug("Error unregistering mbean", t);
| }
| throw e;
| }
| log.debug("Registered MBean " + objectName);
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4140144#4140144
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4140144
16 years, 1 month
[Design of POJO Server] - Re: migrating TransactionManager and Invokers to POJO
by adrian@jboss.org
"jhalliday" wrote :
| <?xml version="1.0" encoding="UTF-8"?>
| | <deployment xmlns="urn:jboss:bean-deployer:2.0">
| |
| | <bean name="MBeanExporter" class="org.jboss.system.microcontainer.jmx.ServiceControllerLifecycleCallback">
| | <property name="serviceController"><inject bean="JMXKernel" property="serviceController"/></property>
| | </bean>
| | <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jta.TransactionManagerService">
| | <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss:service=TransactionManager", exposedInterface=com.arjuna.ats.jbossatx.jta.TransactionManagerServiceMBean.class, registerDirectly=true)</annotation>
| |
| | <property name="transactionTimeout">300</property>
| | <property name="objectStoreDir">${jboss.server.data.dir}/tx-object-store</property>
| |
| | <install bean="MBeanExporter" method="install">
| | <parameter><inject fromContext="context"/></parameter>
| | </install>
| | <uninstall bean="MBeanExporter" method="uninstall">
| | <parameter><inject fromContext="context"/></parameter>
| | </uninstall>
| | </bean>
| |
| | </deployment>
| |
|
| So now I get two copies of the transaction manager bean instantiated. Huh? I want one instance, not two. Where the heck did the other one come from? I guess perhaps I've not expressed the desired config properly? I want one object behaving as both a bean and an mbean, not two separeate objects. Is there some other way of achieving that?
|
Either use @JMX attribute or the MBeanExporter, don't do both.
You don't have two objects, you have two attempts at MBeanRegistration.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4140140#4140140
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4140140
16 years, 1 month
[Design of JBoss Build System] - Re: Move dependency management back into app server svn stru
by adrian@jboss.org
I really don't see what the disconnect is here or why it is so hard to understand.
There's an integration project called JBossAS that is used to aggregate
other components. One of those components is EJB3 which isn't an integration project
and therefore shouldn't be making assumptions about what JBossAS will actually use.
You only have to go through a few simple use cases to see it doesn't work.
1) Suppose JBossAS wants to integrate the latest version of the TM but EJB3 doesn't
want to do that. Similarly EJB3 wants to use the latest snapshot of security, but
JBossAS doesn't because its not ready.
How do you define a component-matrix that would satisfy both?
2) Suppose JBossAS/Component Matrix is at 5.0.0.CR1 and wants to update
the security project. It can't change the 5.0.0.CR1 release so it has to do
a new release of Component Matrix (5.0.0.CR2). JBossAS trunk then
changes its parent to 5.0.0.CR2. But EJB3 is still on 5.0.0.CR1
Defeating the whole point.
Of course you could use snapshots, but then why have version control at all
if the only way to move things forward is ignore it?
3) Pauls point. You can't synchronously update a component and do the work
the integrate it in one commit. Of course you can play around with local builds
in your local maven repository, but
* that doesn't really test it works with the real build
* there's a gap between the two commits
* two people can't work on it at the same time - how do you create a branch?
4) Longer term EJB3 wants to go its own way anyway so shared dependencies
aren't even the correct solution.
5) The correct way to integrate things is via interfaces NOT implementations.
In my view EJB3 is just being lazy (can't be bothered creating a version
of EJB3 that isn't so brittle to thirdparty implementation details and versions)
and forcing JBossAS to jump through hoops because of that.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4140138#4140138
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4140138
16 years, 1 month