[jboss-cvs] JBossAS SVN: r70039 - in trunk: server/src/main/org/jboss/ejb/deployers and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Feb 22 09:51:03 EST 2008
Author: thomas.diesler at jboss.com
Date: 2008-02-22 09:51:03 -0500 (Fri, 22 Feb 2008)
New Revision: 70039
Removed:
trunk/system-jmx/src/main/org/jboss/system/deployers/MultipleServicesDeployer.java
trunk/system-jmx/src/main/org/jboss/system/deployers/ServiceMetaDataSet.java
Modified:
trunk/server/src/etc/conf/default/bootstrap-beans.xml
trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java
trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployer.java
Log:
Use named ServiceMetaData attachments
Modified: trunk/server/src/etc/conf/default/bootstrap-beans.xml
===================================================================
--- trunk/server/src/etc/conf/default/bootstrap-beans.xml 2008-02-22 13:57:17 UTC (rev 70038)
+++ trunk/server/src/etc/conf/default/bootstrap-beans.xml 2008-02-22 14:51:03 UTC (rev 70039)
@@ -273,9 +273,6 @@
<constructor><parameter><inject bean="JMXKernel" property="serviceController"/></parameter></constructor>
<property name="type">sar</property>
</bean>
- <bean name="MultipleServicesDeployer" class="org.jboss.system.deployers.MultipleServicesDeployer">
- <property name="serviceDeployer"><inject bean="ServiceDeployer"/></property>
- </bean>
<!-- UnifiedClassLoader -->
<!--bean name="ServiceClassLoaderDeployer" class="org.jboss.system.deployers.ServiceClassLoaderDeployer">
Modified: trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java 2008-02-22 13:57:17 UTC (rev 70038)
+++ trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java 2008-02-22 14:51:03 UTC (rev 70039)
@@ -304,7 +304,8 @@
}
ejbModule.setDependencies(dependencies);
- unit.addAttachment(ServiceMetaData.class, ejbModule);
+ unit.addAttachment("EjbServiceMetaData", ejbModule, ServiceMetaData.class);
+
// Pass the ejb callByValue setting
if (callByValue)
unit.addAttachment("EJB.callByValue", Boolean.TRUE, Boolean.class);
Modified: trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployer.java 2008-02-22 13:57:17 UTC (rev 70038)
+++ trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployer.java 2008-02-22 14:51:03 UTC (rev 70039)
@@ -47,7 +47,6 @@
import org.jboss.metadata.web.jboss.JBossWebMetaData;
import org.jboss.metadata.web.spec.WebMetaData;
import org.jboss.mx.util.MBeanServerLocator;
-import org.jboss.system.deployers.ServiceMetaDataSet;
import org.jboss.system.metadata.ServiceConstructorMetaData;
import org.jboss.system.metadata.ServiceDependencyMetaData;
import org.jboss.system.metadata.ServiceMetaData;
@@ -95,7 +94,7 @@
/** A flag indicating if war archives should be unpacked */
protected boolean unpackWars = true;
/** A flag indicating if local dirs with WEB-INF/web.xml should be treated as wars
- */
+ */
protected boolean acceptNonWarDirs = false;
/** If true, ejb-links that don't resolve don't cause an error (fallback to jndi-name) */
@@ -106,7 +105,7 @@
/** The request attribute name under which the JAAS Subject is store */
private String subjectAttributeName = null;
/** Legacy support for MBeanServer */
- private MBeanServer server;
+ private MBeanServer server;
private MainDeployerStructure mainDeployer;
/**
@@ -116,7 +115,6 @@
{
super(JBossWebMetaData.class);
setOutput(ServiceMetaData.class);
- setOutput(ServiceMetaDataSet.class);
setOutput(WarDeployment.class);
}
@@ -174,12 +172,13 @@
{
return acceptNonWarDirs;
}
+
/**
* Set the flag indicating if local dirs with WEB-INF/web.xml should be
* treated as wars
* @param flag - true if local dirs with WEB-INF/web.xml should be treated as wars
* @jmx.managed-attribute
- */
+ */
public void setAcceptNonWarDirs(boolean flag)
{
this.acceptNonWarDirs = flag;
@@ -218,6 +217,7 @@
{
return defaultSecurityDomain;
}
+
/** Set the default security domain implementation to use if a war
* does not declare a security-domain.
*
@@ -232,27 +232,29 @@
/** Get the session attribute number under which the caller Subject is stored
* @jmx:managed-attribute
- */
+ */
public String getSubjectAttributeName()
{
return subjectAttributeName;
}
+
/** Set the session attribute number under which the caller Subject is stored
* @jmx:managed-attribute
- */
+ */
public void setSubjectAttributeName(String subjectAttributeName)
{
this.subjectAttributeName = subjectAttributeName;
- }
+ }
public void start() throws Exception
{
// TODO: remove dependency on jmx
this.server = MBeanServerLocator.locateJBoss();
}
+
public void stop() throws Exception
{
-
+
}
/**
@@ -266,8 +268,7 @@
* @return the AbstractWarDeployment for the input WebMetaData
* @throws Exception - thrown on any failure
*/
- public abstract AbstractWarDeployment getDeployment(VFSDeploymentUnit unit, JBossWebMetaData metaData)
- throws Exception;
+ public abstract AbstractWarDeployment getDeployment(VFSDeploymentUnit unit, JBossWebMetaData metaData) throws Exception;
/**
* Deploy a web app based on the WebMetaData. This calls
@@ -291,17 +292,17 @@
// Merge any settings from the ear level
JBossAppMetaData earMetaData = AttachmentLocator.search(unit, JBossAppMetaData.class);
- if( earMetaData != null )
+ if (earMetaData != null)
{
String path = unit.getRelativePath();
ModuleMetaData webModule = earMetaData.getModule(path);
- if( webModule != null )
+ if (webModule != null)
{
// Check for a context-root setting
String contextRoot = metaData.getContextRoot();
- if( contextRoot == null )
+ if (contextRoot == null)
{
- WebModuleMetaData wmodule = (WebModuleMetaData) webModule.getValue();
+ WebModuleMetaData wmodule = (WebModuleMetaData)webModule.getValue();
contextRoot = wmodule.getContextRoot();
metaData.setContextRoot(contextRoot);
}
@@ -311,7 +312,7 @@
}
// Merge security domain/roles
- if( metaData.getSecurityDomain() == null && earMetaData.getSecurityDomain() != null)
+ if (metaData.getSecurityDomain() == null && earMetaData.getSecurityDomain() != null)
metaData.setSecurityDomain(earMetaData.getSecurityDomain());
// TODO
metaData.mergeSecurityRoles(earMetaData.getSecurityRoles());
@@ -325,13 +326,13 @@
* the root url.
*/
String warName = unit.getName();
-
+
/**
* Ignore the jacc policy service bean
*/
- if(warName.startsWith("jboss:") && warName.contains("id="))
+ if (warName.startsWith("jboss:") && warName.contains("id="))
return;
-
+
URL expWarUrl = unit.getRoot().toURL();
if (warName.endsWith("/") == false
// Hack for jar urls being exposed
@@ -341,8 +342,7 @@
{
if (warName.endsWith("!/"))
warName = warName.substring(4, warName.length() - 2);
- else
- warName = warName.substring(4, warName.length());
+ else warName = warName.substring(4, warName.length());
}
URL warURL = new URL(warName);
ServerConfig config = ServerConfigLocator.locate();
@@ -353,7 +353,7 @@
int dotWar = prefix.lastIndexOf(".war");
if (dotWar > 0)
prefix = prefix.substring(0, dotWar);
-
+
File expWarFile = File.createTempFile(prefix, "-exp.war", config.getServerTempDeployDir());
expWarFile.delete();
if (expWarFile.mkdir() == false)
@@ -374,13 +374,13 @@
// Map
VirtualFile warVF = unit.getRoot();
String warPathName = warVF.getPathName();
- if( warPathName.endsWith("/") == false )
+ if (warPathName.endsWith("/") == false)
warPathName += "/";
List<VirtualFile> classpathVFs = unit.getClassPath();
- if( classpathVFs != null )
+ if (classpathVFs != null)
{
ArrayList<URL> classpath = new ArrayList<URL>();
- for(VirtualFile vf : classpathVFs)
+ for (VirtualFile vf : classpathVFs)
{
try
{
@@ -389,9 +389,9 @@
URL pathURL = new URL(expWarUrl, path);
classpath.add(pathURL);
}
- catch(Exception e)
+ catch (Exception e)
{
- log.debug("Ignoring path element: "+vf, e);
+ log.debug("Ignoring path element: " + vf, e);
}
}
unit.addAttachment("org.jboss.web.expandedWarClasspath", classpath);
@@ -403,11 +403,11 @@
// Resolve any ear relative alt-dd path to an expWarUrl/WEB-INF/alt-dd.xml file
String altDDPath = metaData.getAlternativeDD();
- if( altDDPath != null )
+ if (altDDPath != null)
{
// First see if this is already a war local dd
VirtualFile altDD = unit.getMetaDataFile(altDDPath);
- if( altDD == null )
+ if (altDD == null)
{
// Pass absolute paths through
File file = new File(altDDPath);
@@ -415,14 +415,14 @@
{
// Should be an relative to the top deployment
VFSDeploymentUnit topUnit = unit.getTopLevel();
- if( topUnit == unit )
- throw new DeploymentException("Unable to resolve "+altDDPath+" as WEB-INF path");
+ if (topUnit == unit)
+ throw new DeploymentException("Unable to resolve " + altDDPath + " as WEB-INF path");
altDD = topUnit.getFile(altDDPath);
- if( altDD == null )
- throw new DeploymentException("Unable to resolve "+altDDPath+" as a deployment path");
+ if (altDD == null)
+ throw new DeploymentException("Unable to resolve " + altDDPath + " as a deployment path");
File webInf = new File(expWarUrl.toURI());
- File altDDFile = new File(webInf, "WEB-INF/"+altDD.getName());
- log.debug("Copying the altDD to: "+altDDFile);
+ File altDDFile = new File(webInf, "WEB-INF/" + altDD.getName());
+ log.debug("Copying the altDD to: " + altDDFile);
Files.copy(altDD.toURL(), altDDFile);
metaData.setAlternativeDD(altDDFile.getAbsolutePath());
}
@@ -430,10 +430,10 @@
}
ClassLoadingMetaData classLoading = metaData.getClassLoading();
- if(classLoading == null)
+ if (classLoading == null)
classLoading = new ClassLoadingMetaData();
// pass in the java2ClassLoadingCompliance if it was not set at the war level
- if(classLoading.wasJava2ClassLoadingComplianceSet() == false)
+ if (classLoading.wasJava2ClassLoadingComplianceSet() == false)
classLoading.setJava2ClassLoadingCompliance(this.java2ClassLoadingCompliance);
metaData.setClassLoading(classLoading);
@@ -462,27 +462,28 @@
{
// Delete any expanded war
URL warURL = unit.getAttachment("org.jboss.web.expandedWarURL", URL.class);
- if( warURL != null )
+ if (warURL != null)
{
File war = new File(warURL.toURI());
Files.delete(war);
}
}
- catch(Exception e)
+ catch (Exception e)
{
log.debug("Failed to remove expanded war", e);
}
/* Clear class loader refs
- metaData.setContextLoader(null);
- metaData.setResourceClassLoader(null);
- metaData.setENCLoader(null);
- */
+ metaData.setContextLoader(null);
+ metaData.setResourceClassLoader(null);
+ metaData.setENCLoader(null);
+ */
}
- public void addDeployedApp(String warURL, WebApplication webApp)
+ public void addDeployedApp(String warURL, WebApplication webApp)
{
deploymentMap.put(warURL, webApp);
}
+
/** Get the WebApplication object for a deployed war.
@param warUrl the war url string as originally passed to deploy().
@return The WebApplication created during the deploy step if the
@@ -490,12 +491,13 @@
*/
public WebApplication getDeployedApp(String warUrl)
{
- WebApplication appInfo = (WebApplication) deploymentMap.get(warUrl);
+ WebApplication appInfo = (WebApplication)deploymentMap.get(warUrl);
return appInfo;
}
+
public WebApplication removeDeployedApp(String warURL)
{
- WebApplication appInfo = (WebApplication) deploymentMap.remove(warURL);
+ WebApplication appInfo = (WebApplication)deploymentMap.remove(warURL);
return appInfo;
}
@@ -520,72 +522,71 @@
Class returnType = urls.getClass();
Class[] parameterTypes = {};
Method getURLs = cl.getClass().getMethod("getURLs", parameterTypes);
- if( returnType.isAssignableFrom(getURLs.getReturnType()) )
+ if (returnType.isAssignableFrom(getURLs.getReturnType()))
{
Object[] args = {};
- urls = (URL[]) getURLs.invoke(cl, args);
+ urls = (URL[])getURLs.invoke(cl, args);
}
- if( urls == null || urls.length == 0 )
+ if (urls == null || urls.length == 0)
{
getURLs = cl.getClass().getMethod("getAllURLs", parameterTypes);
- if( returnType.isAssignableFrom(getURLs.getReturnType()) )
+ if (returnType.isAssignableFrom(getURLs.getReturnType()))
{
Object[] args = {};
- urls = (URL[]) getURLs.invoke(cl, args);
+ urls = (URL[])getURLs.invoke(cl, args);
}
}
}
- catch(Exception ignore)
+ catch (Exception ignore)
{
}
return urls;
}
-
+
/** This method creates a context-root string from either the
- WEB-INF/jboss-web.xml context-root element is one exists, or the
- filename portion of the warURL. It is called if the deployment
- webContext value is null which indicates a standalone war deployment.
- A war name of ROOT.war is handled as a special case of a war that
- should be installed as the default web context.
- @param ctxPath - war level context-root
- @param warName -
- */
- protected String buildWebContext(String ctxPath, String warName,
- JBossWebMetaData metaData, VFSDeploymentUnit unit)
+ WEB-INF/jboss-web.xml context-root element is one exists, or the
+ filename portion of the warURL. It is called if the deployment
+ webContext value is null which indicates a standalone war deployment.
+ A war name of ROOT.war is handled as a special case of a war that
+ should be installed as the default web context.
+ @param ctxPath - war level context-root
+ @param warName -
+ */
+ protected String buildWebContext(String ctxPath, String warName, JBossWebMetaData metaData, VFSDeploymentUnit unit)
{
// Build a war root context from the war name if one was not specified
String webContext = ctxPath;
// Build the context from the deployment name
- if( webContext == null )
+ if (webContext == null)
{
// Build the context from the war name, strip the .war suffix
webContext = warName;
webContext = webContext.replace('\\', '/');
- if( webContext.endsWith("/") )
- webContext = webContext.substring(0, webContext.length()-1);
+ if (webContext.endsWith("/"))
+ webContext = webContext.substring(0, webContext.length() - 1);
int prefix = webContext.lastIndexOf('/');
- if( prefix > 0 )
- webContext = webContext.substring(prefix+1);
+ if (prefix > 0)
+ webContext = webContext.substring(prefix + 1);
int suffix = webContext.lastIndexOf(".war");
- if( suffix > 0 )
+ if (suffix > 0)
webContext = webContext.substring(0, suffix);
- // Strip any '<int-value>.' prefix
- int index = 0;
- for(; index < webContext.length(); index ++)
- {
- char c = webContext.charAt(index);
- if( Character.isDigit(c) == false && c != '.' )
- break;
- }
- webContext = webContext.substring(index);
+ // Strip any '<int-value>.' prefix
+ int index = 0;
+ for (; index < webContext.length(); index++)
+ {
+ char c = webContext.charAt(index);
+ if (Character.isDigit(c) == false && c != '.')
+ break;
+ }
+ webContext = webContext.substring(index);
}
// Servlet containers are anal about the web context starting with '/'
- if( webContext.length() > 0 && webContext.charAt(0) != '/' )
+ if (webContext.length() > 0 && webContext.charAt(0) != '/')
webContext = "/" + webContext;
// And also the default root context must be an empty string, not '/'
- else if( webContext.equals("/") )
+ else if (webContext.equals("/"))
webContext = "";
return webContext;
}
@@ -622,9 +623,9 @@
{
String ctxPath = metaData.getContextRoot();
// The ctx path value cannot be empty in the object name
- if( ctxPath == null || ctxPath.length() == 0 )
+ if (ctxPath == null || ctxPath.length() == 0)
ctxPath = "/";
- String objectName = "jboss.web.deployment:war="+ctxPath;
+ String objectName = "jboss.web.deployment:war=" + ctxPath;
return objectName;
}
@@ -639,9 +640,7 @@
* @param deployment - the web app deployment bean created by getDeployment
* @throws Exception
*/
- protected void deployWebModule(VFSDeploymentUnit unit, JBossWebMetaData metaData,
- AbstractWarDeployment deployment)
- throws Exception
+ protected void deployWebModule(VFSDeploymentUnit unit, JBossWebMetaData metaData, AbstractWarDeployment deployment) throws Exception
{
log.debug("deployWebModule: " + unit.getName());
try
@@ -653,11 +652,10 @@
webModule.setCode(WebModule.class.getName());
// WebModule(DeploymentUnit, AbstractWarDeployer, AbstractWarDeployment)
ServiceConstructorMetaData constructor = new ServiceConstructorMetaData();
- constructor.setSignature(new String[] { VFSDeploymentUnit.class.getName(),
- AbstractWarDeployer.class.getName(), AbstractWarDeployment.class.getName()});
- constructor.setParameters(new Object[] {unit, this, deployment});
+ constructor.setSignature(new String[] { VFSDeploymentUnit.class.getName(), AbstractWarDeployer.class.getName(), AbstractWarDeployment.class.getName() });
+ constructor.setParameters(new Object[] { unit, this, deployment });
webModule.setConstructor(constructor);
-
+
// Dependencies...Still have old jmx names here
Collection<String> depends = metaData.getDepends();
List<ServiceDependencyMetaData> dependencies = new ArrayList<ServiceDependencyMetaData>();
@@ -666,14 +664,14 @@
if (log.isTraceEnabled())
log.trace(name + " has dependencies: " + depends);
- for(String iDependOn : depends)
+ for (String iDependOn : depends)
{
ServiceDependencyMetaData sdmd = new ServiceDependencyMetaData();
sdmd.setIDependOn(iDependOn);
dependencies.add(sdmd);
}
}
- webModule.setDependencies(dependencies);
+ webModule.setDependencies(dependencies);
// Here's where a bit of magic happens. By attaching the ServiceMetaData
// to the deployment, we now make the deployment "relevant" to
@@ -681,24 +679,11 @@
// org.jboss.system.deployers.ServiceDeployer). Those deployers
// can now take over deploying the web module.
- // In case there already is a ServiceMetaData object attached, we use a set
- ServiceMetaData prevService = unit.getAttachment(ServiceMetaData.class);
- if (prevService != null)
- {
- ServiceMetaDataSet services = new ServiceMetaDataSet();
- services.add(prevService);
- services.add(webModule);
- unit.addAttachment(ServiceMetaDataSet.class, services);
- unit.removeAttachment(ServiceMetaData.class);
- }
- else
- {
- unit.addAttachment(ServiceMetaData.class, webModule);
- }
+ unit.addAttachment("WarServiceMetaData", webModule, ServiceMetaData.class);
}
catch (Exception e)
{
throw DeploymentException.rethrowAsDeploymentException("Error creating rar deployment " + unit.getName(), e);
- }
- }
+ }
+ }
}
Deleted: trunk/system-jmx/src/main/org/jboss/system/deployers/MultipleServicesDeployer.java
===================================================================
--- trunk/system-jmx/src/main/org/jboss/system/deployers/MultipleServicesDeployer.java 2008-02-22 13:57:17 UTC (rev 70038)
+++ trunk/system-jmx/src/main/org/jboss/system/deployers/MultipleServicesDeployer.java 2008-02-22 14:51:03 UTC (rev 70039)
@@ -1,90 +0,0 @@
-/*
- * 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.system.deployers;
-
-// $Id$
-
-import java.util.Iterator;
-
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.system.metadata.ServiceMetaData;
-
-/**
- * A deployer that iterates over a set of service deployments.
- *
- * @author Thomas.Diesler at jboss.com
- * @since 22-Feb-2008
- */
-public class MultipleServicesDeployer extends AbstractSimpleRealDeployer<ServiceMetaDataSet>
-{
- private ServiceDeployer serviceDeployer;
-
- public MultipleServicesDeployer()
- {
- super(ServiceMetaDataSet.class);
- }
-
- public void setServiceDeployer(ServiceDeployer serviceDeployer)
- {
- this.serviceDeployer = serviceDeployer;
- }
-
- @Override
- public void deploy(DeploymentUnit unit, ServiceMetaDataSet deployment) throws DeploymentException
- {
- Iterator<ServiceMetaData> it = deployment.iterator();
- while (it.hasNext())
- {
- ServiceMetaData service = it.next();
- unit.addAttachment(ServiceMetaData.class, service);
- try
- {
- serviceDeployer.deploy(unit, service);
- }
- finally
- {
- unit.removeAttachment(ServiceMetaData.class);
- }
- }
- }
-
- @Override
- public void undeploy(DeploymentUnit unit, ServiceMetaDataSet deployment)
- {
- Iterator<ServiceMetaData> it = deployment.iterator();
- while (it.hasNext())
- {
- ServiceMetaData service = it.next();
- unit.addAttachment(ServiceMetaData.class, service);
- try
- {
- serviceDeployer.undeploy(unit, service);
- }
- finally
- {
- unit.removeAttachment(ServiceMetaData.class);
- }
- }
- }
-}
Deleted: trunk/system-jmx/src/main/org/jboss/system/deployers/ServiceMetaDataSet.java
===================================================================
--- trunk/system-jmx/src/main/org/jboss/system/deployers/ServiceMetaDataSet.java 2008-02-22 13:57:17 UTC (rev 70038)
+++ trunk/system-jmx/src/main/org/jboss/system/deployers/ServiceMetaDataSet.java 2008-02-22 14:51:03 UTC (rev 70039)
@@ -1,38 +0,0 @@
-/*
- * 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.system.deployers;
-
-// $Id : $
-
-import java.util.HashSet;
-
-import org.jboss.system.metadata.ServiceMetaData;
-
-/**
- * A set of ServiceMetaData.
- *
- * @author Thomas.Diesler at jboss.com
- * @since 22-Feb-2008
- */
-public class ServiceMetaDataSet extends HashSet<ServiceMetaData>
-{
-}
More information about the jboss-cvs-commits
mailing list