ee/src/main/java/org/jboss/as/ee/structure/EarStructureProcessor.java
private ResourceRoot createResourceRoot(final DeploymentUnit deploymentUnit, final VirtualFile file, final boolean markAsSubDeployment, final boolean explodeDuringMount) throws IOException {
        final boolean war = file.getName().toLowerCase(Locale.ENGLISH).endsWith(WAR_EXTENSION);
        final Closeable closable = file.isFile() ? mount(file, explodeDuringMount) : exportExplodedWar(war, file, deploymentUnit);
        final MountHandle mountHandle = new MountHandle(closable);
        final ResourceRoot resourceRoot = new ResourceRoot(file, mountHandle);
        deploymentUnit.addToAttachmentList(Attachments.RESOURCE_ROOTS, resourceRoot);
        if (markAsSubDeployment) {
            SubDeploymentMarker.mark(resourceRoot);
        }
        if (war) {
            resourceRoot.putAttachment(Attachments.INDEX_RESOURCE_ROOT, false);
            SubExplodedDeploymentMarker.mark(resourceRoot);
        }
        return resourceRoot;
    }
private ResourceRoot createResourceRoot(final DeploymentUnit deploymentUnit, final VirtualFile file, final boolean markAsSubDeployment, final boolean explodeDuringMount) throws IOException {
        final boolean war = file.getName().toLowerCase(Locale.ENGLISH).endsWith(WAR_EXTENSION);
        final Closeable closable = file.isFile() ? mount(file, explodeDuringMount) : exportExplodedWar(war, file, deploymentUnit);
        final MountHandle mountHandle = new MountHandle(closable);
        final ResourceRoot resourceRoot = new ResourceRoot(file, mountHandle);
        deploymentUnit.addToAttachmentList(Attachments.RESOURCE_ROOTS, resourceRoot);
        if (markAsSubDeployment) {
            SubDeploymentMarker.mark(resourceRoot);
        }
        if (war) {
            resourceRoot.putAttachment(Attachments.INDEX_RESOURCE_ROOT, false);
            SubExplodedDeploymentMarker.mark(resourceRoot);
        }
        return resourceRoot;
    }
private ResourceRoot createResourceRoot ( final DeploymentUnit deploymentUnit , final VirtualFile file , final boolean markAsSubDeployment , final boolean explodeDuringMount ) throws IOException { final boolean war = file . getName ( ) . toLowerCase ( Locale . ENGLISH ) . endsWith ( WAR_EXTENSION ) ; final Closeable closable = file . isFile ( ) ? mount ( file , explodeDuringMount ) : exportExplodedWar ( war , file , deploymentUnit ) ; final MountHandle mountHandle = new MountHandle ( closable ) ; final ResourceRoot resourceRoot = new ResourceRoot ( file , mountHandle ) ; deploymentUnit . addToAttachmentList ( Attachments . RESOURCE_ROOTS , resourceRoot ) ; if ( markAsSubDeployment ) { SubDeploymentMarker . mark ( resourceRoot ) ; } if ( war ) { resourceRoot . putAttachment ( Attachments . INDEX_RESOURCE_ROOT , false ) ; SubExplodedDeploymentMarker . mark ( resourceRoot ) ; } return resourceRoot ; }
Creates a {@link ResourceRoot} for the passed {@link VirtualFile file} and adds it to the list of {@link ResourceRoot}s
in the {@link DeploymentUnit deploymentUnit}

@param deploymentUnit      The deployment unit
@param file                The file for which the resource root will be created
@param markAsSubDeployment If this is true, then the {@link ResourceRoot} that is created will be marked as a subdeployment
through a call to {@link SubDeploymentMarker#mark(org.jboss.as.server.deployment.module.ResourceRoot)}
@param explodeDuringMount  If this is true then the {@link VirtualFile file} will be exploded during mount,
while creating the {@link ResourceRoot}
@return Returns the created {@link ResourceRoot}
@throws IOException
Creates a { @link ResourceRoot } for the passed { @link VirtualFile file } and adds it to the list of { @link ResourceRoot } s in the { @link DeploymentUnit deploymentUnit }