-
1. Re: Modularising the appserver bootstrap
adrian.brock Sep 15, 2008 9:58 AM (in response to adrian.brock)"adrian@jboss.org" wrote:
The fix would to refactor the VFSClassLoaderScopingPolicy
such that the deployment logic is in the deployers which just invoke the
registerClassLoader()
i.e. remove its dependency on the deployment layer
Additionally, I think the logic in this code is a bit dated?
With the new classloader, it is not just wars that can have their own isolated classloaders.
Any subdeployment with its own classloading metadata can create a sub-module
in its own classloader domain.
And even wars don't necessarily have an isolated classloader, this is just a default rule,
i.e. we add a classloading metadata to all wars that don't have an explicit one
to put them in their own classloader domain. -
2. Re: Modularising the appserver bootstrap
adrian.brock Sep 15, 2008 10:03 AM (in response to adrian.brock)I think there's also a dependency with the AspectManager bean expecting
ServiceMBeanSupport to be available.
But JMX deployment should come after AOP.
The eventual idea is to make JMX optional. -
3. Re: Modularising the appserver bootstrap
kabirkhan Sep 15, 2008 12:46 PM (in response to adrian.brock)I'll look into this ASAP, should probably be able to fix tomorrow
https://jira.jboss.org/jira/browse/JBAOP-644
https://jira.jboss.org/jira/browse/JBAOP-645 -
4. Re: Modularising the appserver bootstrap
adrian.brock Sep 15, 2008 12:52 PM (in response to adrian.brock)Well don't forget that trunk is currently under a freeze. ;-)
-
5. Re: Modularising the appserver bootstrap
kabirkhan Sep 15, 2008 12:54 PM (in response to adrian.brock)Ah yes, thanks for reminding me :-)
-
6. Re: Modularising the appserver bootstrap
kabirkhan Sep 16, 2008 11:36 AM (in response to adrian.brock)"adrian@jboss.org" wrote:
I think there's also a dependency with the AspectManager bean expecting
ServiceMBeanSupport to be available.
But JMX deployment should come after AOP.
The eventual idea is to make JMX optional.
I am putting the original AspectManagerService code in a delegate and wrapping that in a POJO (MC/AS5) and in a class extending ServiceMBeanSupport (AS4). However, the original code contains a few methods to do with JMX from ServiceMBeanSupport such as sending out JMX notifications, getting the ObjectName of the service, getting the MBeanServer etc. Can all that stuff be left out for the MC/AS5 version? I am not really clear on how the MC beans eventually get mapped onto JMX in AS5. -
7. Re: Modularising the appserver bootstrap
kabirkhan Sep 16, 2008 12:47 PM (in response to adrian.brock)These are some of the ServiceMBean-/JBossNotificationBroadcasterSupport methods.
public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException public DeploymentInfo getDeploymentInfo() throws JMException public MBeanNotificationInfo[] getNotificationInfo() public MBeanServer getServer() public ObjectName getServiceName() public int getState() public String getStateString() public void jbossInternalLifecycle(String method) throws Exception public void postDeregister() public void preDeregister() throws Exception public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
The only ones I seem to be using are these:public void sendNotification(Notification notification) public long nextNotificationSequenceNumber() public void postRegister(Boolean registrationDone)
From the previous code it seems that things like postRegister() will get called for an MC bean in AS. But how to implement the following for an MC bean?public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException public DeploymentInfo getDeploymentInfo() throws JMException public MBeanNotificationInfo[] getNotificationInfo() public MBeanServer getServer() public ObjectName getServiceName() public int getState() public String getStateString() public void jbossInternalLifecycle(String method) throws Exception
Are they required at all? -
8. Re: Modularising the appserver bootstrap
kabirkhan Sep 17, 2008 9:36 AM (in response to adrian.brock)I've looked into it properly and reminded myself how this works :-) if running in AS5, I use an MC bean, which should not care about any of the extra JMX stuff. Since we want the AspectManager to be available in JMX (mainly for the testsuite) and the @JMX stuff is not available, I register a JMX MBean in JMX, and that will bother with all the extra JMX things.
-
9. Re: Modularising the appserver bootstrap
wolfc Sep 18, 2008 3:21 AM (in response to adrian.brock)The removal of the aspect deployers from a separate component is not acceptable from EJB3 embedded perspective. Embedded should have any dependency on JBoss AS or its release cycle.
Either the deployers should be put back into the CR (!) / GA release, or a new component has to be formed which allows usage by EJB3 Embedded, JBoss Embedded and possibly Web Platform (or any other). -
10. Re: Modularising the appserver bootstrap
kabirkhan Sep 18, 2008 8:43 AM (in response to adrian.brock)I see your point. Let's see what Adrian says, since it was he who originally asked me to move classpool and deployers into the AS codebase.
Reverting this would mean moving some classes back out of AS into AOP or duplicating them in AOP. Having a separate component effectively just means the same as that, with yet another dependency to manage.
The classes in question are:
org.jboss.aop.asintegration.jboss5.AspectDeployer
org.jboss.aop.asintegration.jboss5.VFSClassLoaderDomainRegistry
org.jboss.aop.asintegration.jboss5.ScopedVFSClassLoaderDomain
org.jboss.aop.asintegration.jboss5.VFSClassLoaderScopingPolicy -
11. Re: Modularising the appserver bootstrap
adrian.brock Sep 23, 2008 9:20 AM (in response to adrian.brock)"kabir.khan@jboss.com" wrote:
I see your point. Let's see what Adrian says, since it was he who originally asked me to move classpool and deployers into the AS codebase.
Reverting this would mean moving some classes back out of AS into AOP or duplicating them in AOP. Having a separate component effectively just means the same as that, with yet another dependency to manage.
The classes in question are:
org.jboss.aop.asintegration.jboss5.AspectDeployer
org.jboss.aop.asintegration.jboss5.VFSClassLoaderDomainRegistry
org.jboss.aop.asintegration.jboss5.ScopedVFSClassLoaderDomain
org.jboss.aop.asintegration.jboss5.VFSClassLoaderScopingPolicy
So are these JBoss specific or not?
If this is appserver integration then it belongs in the appserver.
If this is some other integration, e.g. deployers-aop
then I wouldn't have a problem with them living at that level as a separate project.
As long as you are not creating a circular dependency (either really or in the
release process).
That doesn't mean the appserver has to use those specifc classes.
Ideally, these classes should be very thin anyway. i.e. the implementation
is in the aop project using agnostic policy metadata,
but the specific population of the policy choices is in the deployers.
I think you already fixed some of this already with the latest changes to
remove the deployment api dependency from the class pool. -
12. Re: Modularising the appserver bootstrap
kabirkhan Sep 23, 2008 9:30 AM (in response to adrian.brock)"adrian@jboss.org" wrote:
So are these JBoss specific or not?
They have dependencies on:
jboss-cl
jboss-deployers
jboss-vfs
So, I think the answer is "no" :-) AspectDeployer will be retired in AS when I switch to the MC based aop deployers (hopefully later this week)."adrian@jboss.org" wrote:
I think you already fixed some of this already with the latest changes to
remove the deployment api dependency from the class pool.
Yes, second step is to get rid of the ServiceMBeanSupport dependency. I have that ready locally, but I need to do another aop release before I can add that. -
13. Re: Modularising the appserver bootstrap
kabirkhan Sep 25, 2008 9:30 AM (in response to adrian.brock)I will have a play and try to break up the asintegration module into
*asintegration-core - agnostic about the environment
*asintegration-jmx - The JMX service mbean wrapper, and the current JBoss 4 classpools etc.
*asintegration-mc - The MC service bean wrapper, and the current JBoss5 classpools etc.
Once this takes shape, I will probably also move the RepositoryClassLoader and VFSClassLoader based classpools and policies out into separate modules.
I will put in an AspectDeployer for use in JBoss embedded back as requested by Carlo, but for JBoss 5 leave the "real" deployers in AS.