[Design of JBoss Build System] - Re: Strange dependency issue
by adrian@jboss.org
"pgier" wrote :
| I haven't heard anything about an option to exclude all transitive dependencies though. Is this something that you would really want? Then you would always have to update your transitive deps when any of the direct deps changed versions. It seems like this would have similar maintenance issues, just at a different time.
|
It's most important when transitive depenencies disagree with
what the local project defines.
But I personally don't like the way we end with unknown dependencies.
It's not an issue for the current project directly, but more for those
further down the line who have conflicts.
I've even seen this in the MC project where the projects share
a common definition of dependencies and are developed together.
For one project it looks consistent, in another because of the addition
of an extra dependency, it is not.
mvn dependency:analyze doesn't show everything, so you don't know
whether it is analyzing them correctly, the eclipse plugin gives
a better indication of what the totality of dependencies are.
Maybe being able to a dependency:analyze at the assembly level
(which you can't do now) so you create a consistent view across
the subproject dependencies in one place would be an alternate solution to the problem?
Certainly being able to define the excludes once in microcontainer/build/pom.xml
would be less verbose :-)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4107798#4107798
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4107798
18 years, 4 months
[Design of JCA on JBoss] - Mbeans defined in a datasource descriptor should be started
by mmoyses
Following the wiki (http://wiki.jboss.org/wiki/Wiki.jsp?page=EncryptingDataSourcePasswords) about encrypting datasource passwords may lead to an error starting services that depend on the datasource:
| 2007-11-26 13:52:21,854 DEBUG [org.jboss.resource.security.JaasSecurityDomainIdentityLoginModule] Failed to decode password
| javax.management.MBeanException
| at org.jboss.mx.interceptor.ReflectedDispatcher.handleInvocationExceptions(ReflectedDispatcher.java:180)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:163)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.resource.security.JaasSecurityDomainIdentityLoginModule$DecodeAction.run(JaasSecurityDomainIdentityLoginModule.java:202)
| at java.security.AccessController.doPrivileged(Native Method)
| at org.jboss.resource.security.JaasSecurityDomainIdentityLoginModule$DecodeAction.decode(JaasSecurityDomainIdentityLoginModule.java:215)
| at org.jboss.resource.security.JaasSecurityDomainIdentityLoginModule.commit(JaasSecurityDomainIdentityLoginModule.java:144)
| 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:585)
| at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
| at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
| at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
| at java.security.AccessController.doPrivileged(Native Method)
| at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
| at javax.security.auth.login.LoginContext.login(LoginContext.java:580)
| at org.jboss.security.plugins.JaasSecurityManager.defaultLogin(JaasSecurityManager.java:603)
| at org.jboss.security.plugins.JaasSecurityManager.authenticate(JaasSecurityManager.java:537)
| at org.jboss.security.plugins.JaasSecurityManager.isValid(JaasSecurityManager.java:344)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.getSubject(BaseConnectionManager2.java:588)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:395)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
| at org.jboss.ejb.plugins.cmp.jdbc.SQLUtil.tableExists(SQLUtil.java:1017)
| at org.jboss.ejb.plugins.keygenerator.hilo.HiLoKeyGeneratorFactory.createTableIfNotExists(HiLoKeyGeneratorFactory.java:366)
| at org.jboss.ejb.plugins.keygenerator.hilo.HiLoKeyGeneratorFactory.initSequence(HiLoKeyGeneratorFactory.java:307)
| at org.jboss.ejb.plugins.keygenerator.hilo.HiLoKeyGeneratorFactory.startService(HiLoKeyGeneratorFactory.java:281)
| at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
| at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
| at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
| at $Proxy0.start(Unknown Source)
| at org.jboss.system.ServiceController.start(ServiceController.java:417)
| at org.jboss.system.ServiceController.start(ServiceController.java:435)
| at org.jboss.system.ServiceController.start(ServiceController.java:435)
| at org.jboss.system.ServiceController.start(ServiceController.java:435)
| at org.jboss.system.ServiceController.start(ServiceController.java:435)
| at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| at $Proxy4.start(Unknown Source)
| at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302)
| 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:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| at $Proxy42.start(Unknown Source)
| at org.jboss.deployment.XSLSubDeployer.start(XSLSubDeployer.java:197)
| at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
| at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
| at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
| at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| at $Proxy9.deploy(Unknown Source)
| at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
| at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
| at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
| at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:336)
| at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
| at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
| at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
| at $Proxy0.start(Unknown Source)
| at org.jboss.system.ServiceController.start(ServiceController.java:417)
| at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| at $Proxy4.start(Unknown Source)
| at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302)
| at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
| at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
| at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
| at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)
| 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:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| at $Proxy5.deploy(Unknown Source)
| at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
| at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
| at org.jboss.Main.boot(Main.java:200)
| at org.jboss.Main$1.run(Main.java:508)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: java.security.InvalidAlgorithmParameterException: Parameters missing
| at com.sun.crypto.provider.SunJCE_af.a(DashoA12275)
| at com.sun.crypto.provider.PBEWithMD5AndDESCipher.engineInit(DashoA12275)
| at javax.crypto.Cipher.a(DashoA12275)
| at javax.crypto.Cipher.a(DashoA12275)
| at javax.crypto.Cipher.init(DashoA12275)
| at javax.crypto.Cipher.init(DashoA12275)
| at org.jboss.security.plugins.JaasSecurityDomain.decode(JaasSecurityDomain.java:325)
| at org.jboss.security.plugins.JaasSecurityDomain.decode64(JaasSecurityDomain.java:351)
| 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:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| ... 139 more
|
This error occurs because the mbean was not yet started, so the attributes were not initialized.
The ServiceController does not record that the datasource depends on this mbean when it probably should.
A workaround is to create the mbean as a separate service and name it so that it is deployed before the datasource.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4107797#4107797
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4107797
18 years, 4 months
[Design of JBoss Remoting, Unified Invokers] - Interceptor Negotiation
by david.lloyd@jboss.com
A long while back, Tom Elrod proposed a mechanism by which an interceptor stack can be configured for a connection. Someone at a later time suggested that the mechanism should be based on some sort of negotiation. So I've taken these ideas and implemented such a mechanism.
The interceptor stack is negotiated on a per-service basis. The service specifies a list of interceptors at deployment (see org.jboss.cx.remoting.ServiceDeploymentSpec). Each entry in the interceptor list specifies the interceptor name, and a slot number (which is any non-negative integer value). Only one interceptor is allowed per slot. Additionally, each interceptor can be designated as "required", "optional", or "private".
A "required" interceptor means that any client connecting to the service must also support this interceptor. An "optional" interceptor means that the client may opt to enable this interceptor, or it may decline. A "private" interceptor is only set up on the service side.
On the client side, an optional policy callback may be implemented that returns a boolean, which determines whether the client accepts the named interceptor type. If a client doesn't have support for a given interceptor type, a negative reply is assumed.
Once negotiation is complete, the interceptors are added in order by slot number.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4107769#4107769
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4107769
18 years, 4 months
[Design of JBoss Remoting, Unified Invokers] - Contexts, Sessions and Services
by david.lloyd@jboss.com
Contexts have been refactored to be generic. The type signature is "Context<I, O>" where I is the request ("input") type and O is the reply ("output") type. Unfortunately both request and reply start with "R". :-)
Anyway, Request and Reply are both generic now as well. This means that no casting is needed to get the message body from either of these types.
In order to facilitate this change, I've abolished the notion of ListenerMappers where every request has an identifier and a body. Instead, each request just consists of a body, and the user can easily build that functionality on if they so desire. This also helps simplify the overall API, and make it more familiar to users of the Remoting 2 API.
I've also formalized the notion of a "service", which basically means a named RequestListener that is deployed on an Endpoint. A service is specified by creating a org.jboss.cx.remoting.ServiceLocator, which specifies the name of the service, and the request and reply types, as well as a few other parameters.
Providing a ServiceLocator to Session.openService() returns a ContextSource which can be used to open channels to the service (Context instances).
A ServiceLocator may also be used directly on an Endpoint to access dynamically discovered services - though the mechanism to actually perform the discovery is an M2 task.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4107757#4107757
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4107757
18 years, 4 months