[jboss-cvs] JBossAS SVN: r111792 - in trunk/server/src: main/java/org/jboss/deployment and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jul 20 09:01:48 EDT 2011
Author: jaikiran
Date: 2011-07-20 09:01:47 -0400 (Wed, 20 Jul 2011)
New Revision: 111792
Added:
trunk/server/src/main/java/org/jboss/deployment/ExplicitDeclaredStructure.java
Modified:
trunk/server/src/etc/conf/all/bootstrap/deployers.xml
trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java
Log:
JBAS-8786 Fix the issue where the jar file contents were filling up filesystem, during .war deployment
Modified: trunk/server/src/etc/conf/all/bootstrap/deployers.xml
===================================================================
--- trunk/server/src/etc/conf/all/bootstrap/deployers.xml 2011-07-20 12:16:20 UTC (rev 111791)
+++ trunk/server/src/etc/conf/all/bootstrap/deployers.xml 2011-07-20 13:01:47 UTC (rev 111792)
@@ -108,7 +108,7 @@
</bean>
<!-- A declared structure descriptor deployer -->
- <bean name="DeclaredStructure" class="org.jboss.deployers.vfs.plugins.structure.explicit.DeclaredStructure"/>
+ <bean name="DeclaredStructure" class="org.jboss.deployment.ExplicitDeclaredStructure"/>
<!-- JAR Structure -->
<bean name="JARStructure" class="org.jboss.deployers.vfs.plugins.structure.jar.JARStructure">
Added: trunk/server/src/main/java/org/jboss/deployment/ExplicitDeclaredStructure.java
===================================================================
--- trunk/server/src/main/java/org/jboss/deployment/ExplicitDeclaredStructure.java (rev 0)
+++ trunk/server/src/main/java/org/jboss/deployment/ExplicitDeclaredStructure.java 2011-07-20 13:01:47 UTC (rev 111792)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat, Inc., and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.deployment;
+
+import org.jboss.deployers.vfs.plugins.structure.explicit.DeclaredStructure;
+import org.jboss.vfs.VirtualFile;
+import org.jboss.vfs.util.automount.Automounter;
+import org.jboss.vfs.util.automount.MountOption;
+
+import java.io.IOException;
+
+/**
+ * This class is just here to fix a bug in {@link DeclaredStructure} where the {@link DeclaredStructure#performMount(org.jboss.vfs.VirtualFile)}
+ * does <i>not</i> explode the .war files.
+ * <p/>
+ * Once the {@link DeclaredStructure} is fixed, we will no longer require this {@link ExplicitDeclaredStructure}
+ * <p/>
+ *
+ * @see Related to https://issues.jboss.org/browse/JBAS-8786
+ * User: Jaikiran Pai
+ */
+public class ExplicitDeclaredStructure extends DeclaredStructure {
+
+ @Override
+ protected void performMount(VirtualFile file) throws IOException {
+ if (file.getName().endsWith(".war")) {
+ Automounter.mount(file, MountOption.EXPANDED, MountOption.COPY);
+ return;
+ }
+ Automounter.mount(file, MountOption.COPY);
+ }
+}
Modified: trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java
===================================================================
--- trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java 2011-07-20 12:16:20 UTC (rev 111791)
+++ trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java 2011-07-20 13:01:47 UTC (rev 111792)
@@ -391,11 +391,9 @@
if (unit instanceof VFSDeploymentUnit)
{
- URL expWarUrl;
-
VFSDeploymentUnit vfsUnit = (VFSDeploymentUnit)unit;
VirtualFile root = vfsUnit.getRoot();
- expWarUrl = getExplodedWarUrl(root);
+ final URL expandedWarURL = root.getPhysicalFile().toURI().toURL();
// Map
String warPathName = root.getPathName();
@@ -413,7 +411,7 @@
if (path.startsWith(warPathName))
{
path = path.substring(warPathName.length());
- URL pathURL = new URL(expWarUrl, path);
+ URL pathURL = new URL(expandedWarURL, path);
classpath.add(pathURL);
}
else
@@ -430,7 +428,7 @@
}
// Indicate that an expanded URL exists
- unit.addAttachment("org.jboss.web.expandedWarURL", expWarUrl, URL.class);
+ unit.addAttachment("org.jboss.web.expandedWarURL", expandedWarURL, URL.class);
// Resolve any ear relative alt-dd path to an expWarUrl/WEB-INF/alt-dd.xml file
String altDDPath = metaData.getAlternativeDD();
@@ -817,39 +815,6 @@
}
/**
- * This method is a hack to make sure the WAR is fully exploded. Currently this is only needed
- * for WARs that come through the DeclaredStructure deployer. This should be removed when the
- * DeclaredStructure deployer correctly support exploding WARs.
- */
- private URL getExplodedWarUrl(VirtualFile virtualFile) throws MalformedURLException, IOException {
- if(virtualFile.isDirectory())
- {
- VirtualFileVisitor visitor = new VirtualFileVisitor()
- {
- public void visit(VirtualFile virtualFile)
- {
- try
- {
- virtualFile.getPhysicalFile();
- }
- catch (IOException e)
- {
- throw new RuntimeException("Failed to force explosion of VirtualFile: " + virtualFile, e);
- }
- }
-
- public VisitorAttributes getAttributes()
- {
- return VisitorAttributes.RECURSE_LEAVES_ONLY;
- }
- };
- virtualFile.visit(visitor);
- return virtualFile.getPhysicalFile().toURI().toURL();
- }
- return virtualFile.toURL();
- }
-
- /**
*
* Similar to {@link ServiceDependencyMetaData} except that this allows to specify the "whenRequired" and
* "dependentState" {@link ControllerState ControllerState}
More information about the jboss-cvs-commits
mailing list