Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2005 Jeff Genender.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package org.codehaus.mojo.jboss;
 
 
 import java.io.File;
 
Hard deploys the file by copying it to the $JBOSS_HOME/server/[serverName]/deploy directory.

Author(s):
Jeff Genender
Goal:
harddeploy
 
 public class HardDeployMojo extends AbstractJBossMojo {

    
The name of the file or directory to deploy or undeploy.

Parameter:
expression="${project.build.directory}/${project.build.finalName}.${project.packaging}"
Required:
 
     protected String fileName;

    
An optional name of a subdirectory on the deploy directory to be used

Parameter:
 
     protected String deploySubDir;

    
A boolean indicating if the artifact should be unpacked when deployed

Parameter:
 
     protected boolean unpack;
 
     public void execute() throws MojoExecutionException {
 
         checkConfig();
         try{
 
             //Fix the ejb packaging to a jar
             String fixedFile = null;
             if (.toLowerCase().endsWith("ejb")){
                 fixedFile = .substring(0, .length() - 3) + "jar";
             } else {
                 fixedFile = ;
             }
 
             String deployDir =  == null ? "/deploy/" : ("/deploy/" +  + "/");
             File src = new File(fixedFile);
             File dst = new File( + "/server/" +  + deployDir + src.getName());
 
             getLog().info(( ? "Unpacking " : "Copying ") + src.getAbsolutePath() + " to " + dst.getAbsolutePath());
             copy(srcdst);
         } catch (Exception e){
             throw new MojoExecutionException"Mojo error occurred: " + e.getMessage(), e );
         }
 
     }
 
     private void copy(File srcDirFile dstDirthrows IOException {
         if (srcDir.isDirectory()) {
             if (!dstDir.exists()) {
                 dstDir.mkdir();
             }
 
             String[] children = srcDir.list();
             for (int i = 0; i < children.lengthi++) {
                 copy(new File(srcDirchildren[i]), new File(dstDirchildren[i]));
             }
         } else {
             copyFile(srcDirdstDir);
         }
     }
 
    private void copyFile(File srcFile dstthrows IOException {
        if () {
		unpack(srcdst);
        } else {
	        InputStream in = new FileInputStream(src);
        	OutputStream out = new FileOutputStream(dst);
        	streamcopy(inout);
		in.close();
		out.close();
	}
    }
    private void streamcopy(InputStream inOutputStream outthrows IOException {
        // Transfer bytes from in to out
        byte[] buf = new byte[1024];
        int len;
        while ((len = in.read(buf)) > 0) {
            out.write(buf, 0, len);
        }
    }
    void unpack(File zipFileFile targetDirthrows IOException {
	FileInputStream in = new FileInputStream(zipFile);
	ZipInputStream zipIn = new ZipInputStream(in);
	File dir = targetDir.getCanonicalFile();
	dir.mkdirs();
	ZipEntry entry;
	for (; (entry = zipIn.getNextEntry()) != null;) {
		if (entry.isDirectory()) {
			continue;
		}
		String file = targetDir + "/" + entry.getName();
		streamcopy(zipInout);
		out.close();
	}
	zipIn.close();
    }
New to GrepCode? Check out our FAQ X