[jboss-cvs] jboss-seam/src/ioc/org/jboss/seam/ioc/microcontainer ...
Ales Justin
ales.justin at genera-lynx.com
Fri Mar 2 11:24:07 EST 2007
User: alesj
Date: 07/03/02 11:24:07
Modified: src/ioc/org/jboss/seam/ioc/microcontainer
ControllerBridgeComponent.java
Added: src/ioc/org/jboss/seam/ioc/microcontainer
ControllerBridgeComponentMBean.java
Log:
Bridge registry via MBean server.
Revision Changes Path
1.2 +13 -19 jboss-seam/src/ioc/org/jboss/seam/ioc/microcontainer/ControllerBridgeComponent.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ControllerBridgeComponent.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/ioc/org/jboss/seam/ioc/microcontainer/ControllerBridgeComponent.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- ControllerBridgeComponent.java 1 Mar 2007 15:06:48 -0000 1.1
+++ ControllerBridgeComponent.java 2 Mar 2007 16:24:07 -0000 1.2
@@ -22,11 +22,10 @@
package org.jboss.seam.ioc.microcontainer;
import java.io.Serializable;
-import javax.servlet.ServletContext;
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+import javax.management.ObjectName;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.dependency.spi.Controller;
-import org.jboss.kernel.plugins.dependency.AbstractKernelControllerContext;
import org.jboss.seam.Component;
import static org.jboss.seam.InterceptionType.NEVER;
import org.jboss.seam.ScopeType;
@@ -35,7 +34,6 @@
import org.jboss.seam.annotations.Install;
import org.jboss.seam.annotations.Intercept;
import org.jboss.seam.annotations.Scope;
-import org.jboss.seam.contexts.Lifecycle;
/**
* Notifies Seam components in current underlying Microcontainer Controller.
@@ -47,20 +45,16 @@
@Scope(ScopeType.APPLICATION)
@Intercept(NEVER)
@Install(false)
-public class ControllerBridgeComponent implements Serializable
+public class ControllerBridgeComponent implements ControllerBridgeComponentMBean, Serializable
{
/** The serialVersionUID */
private static final long serialVersionUID = 1L;
- public ServletContext getServletContext()
- {
- return Lifecycle.getServletContext();
- }
+ private ObjectName objectName;
- protected Controller getController()
+ protected ObjectName createObjectName(Component component) throws Exception
{
- // todo get underlying Controller from ServletContext
- return null;
+ return new ObjectName("jboss-seam:name=" + getClass().getSimpleName() + "." + component.getName());
}
@Create
@@ -68,9 +62,9 @@
{
try
{
- Controller controller = getController();
- AbstractBeanMetaData metaData = new AbstractBeanMetaData(getClass().getSimpleName(), getClass().getName());
- controller.install(new AbstractKernelControllerContext(null, metaData, this));
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ objectName = createObjectName(component);
+ server.registerMBean(this, objectName);
}
catch (Throwable t)
{
@@ -79,10 +73,10 @@
}
@Destroy
- public void destroy()
+ public void destroy() throws Exception
{
- Controller controller = getController();
- controller.uninstall(getClass().getSimpleName());
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ server.unregisterMBean(objectName);
}
}
1.1 date: 2007/03/02 16:24:07; author: alesj; state: Exp;jboss-seam/src/ioc/org/jboss/seam/ioc/microcontainer/ControllerBridgeComponentMBean.java
Index: ControllerBridgeComponentMBean.java
===================================================================
/*
* JBoss, Home of Professional Open Source
* Copyright 2006, JBoss Inc., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.seam.ioc.microcontainer;
public interface ControllerBridgeComponentMBean
{
void destroy() throws Exception;
}
More information about the jboss-cvs-commits
mailing list