Package org.glassfish.resources.deployer
Class CustomResourceDeployer
- java.lang.Object
-
- org.glassfish.resources.deployer.CustomResourceDeployer
-
- All Implemented Interfaces:
ResourceDeployer
@Service @Singleton public class CustomResourceDeployer extends Object implements ResourceDeployer
Handles custom resource events in the server instance. The custom resource events from the admin instance are propagated to this object. The methods can potentially be called concurrently, therefore implementation need to be synchronized. Note: Since a notification is not sent to the user of the custom resources upon undeploy, it is possible that there would be stale objects not being garbage collected. Future versions should take care of this problem.- Since:
- JDK1.4
- Author:
- Nazrul Islam
-
-
Constructor Summary
Constructors Constructor Description CustomResourceDeployer()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancanDeploy(boolean postApplicationDeployment, Collection<Resource> allResources, Resource resource)A deployer can indicate whether a particular resource can be deployed before application deployment Used in case of application-scoped-resources eg: Embedded RAR resources are created after application (that has embedded .rar) deployment.voiddeployResource(Object resource)Deploy the resource into the server's runtime naming contextvoiddeployResource(Object resource, String applicationName, String moduleName)Deploy the resource into the server's runtime naming context This API is used in cases where the "config" bean is not yet persisted in domain.xml and is part of the "config" transaction.voiddisableResource(Object resource)Disable the resource in the server's runtime naming contextvoidenableResource(Object resource)Enable the resource in the server's runtime naming contextClass[]getProxyClassesForDynamicReconfiguration()List of classes which need to be proxied for dynamic-reconfigurationbooleanhandles(Object resource)Indicates whether a particular resource deployer can handle the resource in questionvoidinstallCustomResource(CustomResource customRes, ResourceInfo resourceInfo)Installs the given custom resource.voidredeployResource(Object resource)Redeploy the resource into the server's runtime naming contextbooleansupportsDynamicReconfiguration()Indicates whether the resource deployer can handle transparent-dynamic-reconfiguration of resourcestatic JavaEEResourcetoCustomJavaEEResource(CustomResource rbean, ResourceInfo resourceInfo)Returns a new instance of j2ee custom resource from the given config bean.voidundeployResource(Object resource)Undeploy the resource from the server's runtime naming contextvoidundeployResource(Object resource, String applicationName, String moduleName)Undeploy the resource from the server's runtime naming contextvoidvalidatePreservedResource(Application oldApp, Application newApp, Resource resource, Resources allResources)
-
-
-
Method Detail
-
deployResource
public void deployResource(Object resource, String applicationName, String moduleName) throws Exception
Deploy the resource into the server's runtime naming context This API is used in cases where the "config" bean is not yet persisted in domain.xml and is part of the "config" transaction.- Specified by:
deployResourcein interfaceResourceDeployer- Parameters:
resource- a resource object (eg. JmsResource)applicationName- application-namemoduleName- module-name- Throws:
Exception- thrown if fail
-
deployResource
public void deployResource(Object resource) throws Exception
Deploy the resource into the server's runtime naming context- Specified by:
deployResourcein interfaceResourceDeployer- Parameters:
resource- a resource object (eg. JmsResource)- Throws:
Exception- thrown if fail
-
undeployResource
public void undeployResource(Object resource, String applicationName, String moduleName) throws Exception
Undeploy the resource from the server's runtime naming context- Specified by:
undeployResourcein interfaceResourceDeployer- Parameters:
resource- a resource object (eg. JmsResource)applicationName- application-namemoduleName- module-name- Throws:
Exception- thrown if fail
-
undeployResource
public void undeployResource(Object resource) throws Exception
Undeploy the resource from the server's runtime naming context- Specified by:
undeployResourcein interfaceResourceDeployer- Parameters:
resource- a resource object (eg. JmsResource)- Throws:
Exception- thrown if fail
-
handles
public boolean handles(Object resource)
Indicates whether a particular resource deployer can handle the resource in question- Specified by:
handlesin interfaceResourceDeployer- Parameters:
resource- resource that need to be handled- Returns:
- boolean
-
supportsDynamicReconfiguration
public boolean supportsDynamicReconfiguration()
Description copied from interface:ResourceDeployerIndicates whether the resource deployer can handle transparent-dynamic-reconfiguration of resource- Specified by:
supportsDynamicReconfigurationin interfaceResourceDeployer- Returns:
- boolean indicating whether transparent-dynamic-reconfiguration is supported.
-
getProxyClassesForDynamicReconfiguration
public Class[] getProxyClassesForDynamicReconfiguration()
Description copied from interface:ResourceDeployerList of classes which need to be proxied for dynamic-reconfiguration- Specified by:
getProxyClassesForDynamicReconfigurationin interfaceResourceDeployer- Returns:
- list of classes
-
redeployResource
public void redeployResource(Object resource) throws Exception
Redeploy the resource into the server's runtime naming context- Specified by:
redeployResourcein interfaceResourceDeployer- Parameters:
resource- a resource object- Throws:
Exception- thrown if fail
-
enableResource
public void enableResource(Object resource) throws Exception
Enable the resource in the server's runtime naming context- Specified by:
enableResourcein interfaceResourceDeployer- Parameters:
resource- a resource object (eg. JmsResource)- Throws:
Exception- thrown if fail
-
disableResource
public void disableResource(Object resource) throws Exception
Disable the resource in the server's runtime naming context- Specified by:
disableResourcein interfaceResourceDeployer- Parameters:
resource- a resource object (eg. JmsResource)- Throws:
Exception- thrown if fail
-
installCustomResource
public void installCustomResource(CustomResource customRes, ResourceInfo resourceInfo)
Installs the given custom resource. It publishes the resource as a javax.naming.Reference with the naming manager (jndi). This method gets called during server initialization and custom resource deployer to handle custom resource events.- Parameters:
customRes- custom resourceresourceInfo-
-
toCustomJavaEEResource
public static JavaEEResource toCustomJavaEEResource(CustomResource rbean, ResourceInfo resourceInfo)
Returns a new instance of j2ee custom resource from the given config bean. This method gets called from the custom resource deployer to convert custom-resource config bean into custom j2ee resource.- Parameters:
rbean- custom-resource config beanresourceInfo- the definition of the resources to create- Returns:
- new instance of j2ee custom resource
-
canDeploy
public boolean canDeploy(boolean postApplicationDeployment, Collection<Resource> allResources, Resource resource)A deployer can indicate whether a particular resource can be deployed before application deployment Used in case of application-scoped-resources eg: Embedded RAR resources are created after application (that has embedded .rar) deployment.- Specified by:
canDeployin interfaceResourceDeployer- Parameters:
postApplicationDeployment- post-application-deploymentallResources- resources collection in which the resource being validated is present.resource- resource to be validated- Returns:
- boolean
-
validatePreservedResource
public void validatePreservedResource(Application oldApp, Application newApp, Resource resource, Resources allResources) throws ResourceConflictException
- Specified by:
validatePreservedResourcein interfaceResourceDeployer- Throws:
ResourceConflictException
-
-