Package org.jboss.as.server.deployment
Class DeploymentOverlayDeploymentUnitProcessor
java.lang.Object
org.jboss.as.server.deployment.DeploymentOverlayDeploymentUnitProcessor
- All Implemented Interfaces:
DeploymentUnitProcessor
- Direct Known Subclasses:
DeferredDeploymentOverlayDeploymentUnitProcessor
public class DeploymentOverlayDeploymentUnitProcessor
extends Object
implements DeploymentUnitProcessor
Deployment unit processor that adds content overrides to the VFS filesystem.
This is a two phase process. First any overlays that can be easily resolved are mounted, however we may not be able
to mount all overlays because they may depend on VFS mounts that are set up by later structure processors (e.g. if
there is an overlay for ear/lib/mylib.jar/com/acme/MyClass.class it can't be mounted until the ear structure processor
has created the mount). These resource roots are identified and deferred to be processed at the end of the structure
phase.
Note that we can't just process everything at the end, as we may need to replace the archives that are mounted by
these later processors
- Author:
- Stuart Douglas
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final AttachmentKey<Map<String,byte[]>> protected static final AttachmentKey<AttachmentList<Closeable>> -
Constructor Summary
ConstructorsConstructorDescriptionDeploymentOverlayDeploymentUnitProcessor(ContentRepository contentRepository) -
Method Summary
Modifier and TypeMethodDescriptionprotected static voidprotected static voidprotected static voidcopyFile(InputStream in, File dest) voiddeploy(DeploymentPhaseContext phaseContext) Perform a single step in processing the deployment phase.getDeferredAttachment(DeploymentUnit deploymentUnit) protected Map<String,MountedDeploymentOverlay> getMountsAttachment(DeploymentUnit deploymentUnit) getOverlays(DeploymentUnit deploymentUnit) protected voidhandleEntryWithFileParent(Map<String, byte[]> deferred, Map.Entry<String, byte[]> entry, String path, org.jboss.vfs.VirtualFile parent) protected voidhandleExplodedEntryWithDirParent(DeploymentUnit deploymentUnit, org.jboss.vfs.VirtualFile content, org.jboss.vfs.VirtualFile mountPoint, Map<String, MountedDeploymentOverlay> mounts, String overLayPath) voidundeploy(DeploymentUnit context) Undo the deployment processing.
-
Field Details
-
MOUNTED_FILES
-
DEFERRED_OVERLAYS
-
-
Constructor Details
-
DeploymentOverlayDeploymentUnitProcessor
-
-
Method Details
-
deploy
Description copied from interface:DeploymentUnitProcessorPerform a single step in processing the deployment phase. The resulting state after executing this method should be that either the method completes normally and all changes are made, or an exception is thrown and all changes made in this method are reverted such that the original pre-invocation state is restored.Data stored on the phase context only exists until the end of the phase. The deployment unit context which is persistent is available via
context.getDeploymentUnitContext().- Specified by:
deployin interfaceDeploymentUnitProcessor- Parameters:
phaseContext- the deployment unit context- Throws:
DeploymentUnitProcessingException- if an error occurs during processing
-
handleEntryWithFileParent
-
handleExplodedEntryWithDirParent
protected void handleExplodedEntryWithDirParent(DeploymentUnit deploymentUnit, org.jboss.vfs.VirtualFile content, org.jboss.vfs.VirtualFile mountPoint, Map<String, MountedDeploymentOverlay> mounts, String overLayPath) throws IOException- Throws:
IOException
-
getDeferredAttachment
-
getMountsAttachment
-
getOverlays
-
undeploy
Description copied from interface:DeploymentUnitProcessorUndo the deployment processing. This method should undo any action taken bydeploy(); however, if thedeploy()method added services, they need not be removed here (they will automatically be removed).This method should avoid throwing exceptions; any exceptions thrown are logged and ignored. Implementations of this method cannot assume that the deployment process has (or has not) proceeded beyond the current processor, nor can they assume that the
undeploy()method will be called from the same thread as thedeploy()method.- Specified by:
undeployin interfaceDeploymentUnitProcessor- Parameters:
context- the deployment unit context
-
copyFile
- Throws:
IOException
-
copyFile
- Throws:
IOException
-
close
-