Changeset 2422


Ignore:
Timestamp:
11/06/09 17:32:16 (2 years ago)
Author:
mswertz
Message:

Probleem met resource kopieren!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • molgenis/3.3/src/org/molgenis/generators/server/MolgenisResourceCopyGen.java

    r2347 r2422  
    11package org.molgenis.generators.server; 
    22 
     3import java.io.BufferedReader; 
    34import java.io.File; 
    45import java.io.FileInputStream; 
    56import java.io.FileOutputStream; 
     7import java.io.FileWriter; 
    68import java.io.IOException; 
    79import java.io.InputStream; 
     10import java.io.InputStreamReader; 
    811import java.io.OutputStream; 
    912 
     13import java.io.StringReader; 
     14import java.net.URL; 
     15import java.nio.channels.Channel; 
     16import java.nio.channels.FileChannel; 
     17import java.nio.channels.ReadableByteChannel; 
     18import java.util.Enumeration; 
     19import java.util.jar.Attributes; 
     20import java.util.jar.JarEntry; 
     21import java.util.jar.JarFile; 
     22import java.util.zip.ZipEntry; 
    1023import org.molgenis.Molgenis; 
    1124import org.molgenis.MolgenisOptions; 
     
    1629public class MolgenisResourceCopyGen extends Generator 
    1730{ 
     31    public static final String RESOURCE_FOLDER = "org/molgenis/framework/ui/res/"; 
    1832        @Override 
    1933        public String getDescription() 
     
    2539        public void generate(Model model, MolgenisOptions options) throws Exception 
    2640        { 
    27                 // copy the images/scripts/css 
    28                 File source = new File(MolgenisOriginalStyle.class.getResource("res").getFile()); 
    29                 File target = new File(this.getWebserverPath(options) + "/generated-res"); 
     41            String jarPath = getClass().getResource("").getFile(); 
     42            jarPath = jarPath.split("!")[0].split("file:")[1]; 
     43             
     44            // copy the images/scripts/css 
     45            File source = new File(jarPath); 
     46            File target = new File(this.getWebserverPath(options) + "/generated-res"); 
    3047 
    31                 // deledeleteDirectory(target); 
    32                 copyDirectory(source, target); 
    33                 logger.info("generated " + target); 
     48            URL url = MolgenisOriginalStyle.class.getResource(""); 
     49            url.toString(); 
    3450 
    35                 // copy the libs etc 
    36                 // source = new File(new 
    37                 // File(MolgenisFactory.class.getResource("").getFile()).getParentFile().getParentFile() 
    38                 // .getParentFile() 
    39                 // + "/lib"); 
    40                 // // check folder lib 
    41                 // if (source.exists()) 
    42                 // { 
    43                 // target = new File(this.getWebserverPath(options) + "/WEB-INF/lib/"); 
    44                 // copyDirectory(source, target); 
    45                 // } 
     51            //check if the target exists otherwise it's created 
     52            if(!target.exists()) { 
     53                boolean succes = target.mkdirs(); 
     54                if(!succes) 
     55                    throw new Exception("can't create /generated-res directory!"); 
     56            } 
    4657 
    47                 logger.info("generated " + target); 
     58            JarFile jar = new JarFile(jarPath); 
     59            Enumeration entries = jar.entries(); 
     60            while(entries.hasMoreElements()) { 
     61                JarEntry file = (JarEntry) entries.nextElement(); 
     62                if(file.getName().contains(RESOURCE_FOLDER)) { 
     63                    if(!file.isDirectory()) { 
     64                        ZipEntry zipEntry = jar.getEntry(file.getName()); 
     65                        InputStream is = jar.getInputStream(zipEntry); 
     66                        String outFilePath = file.getName().replace(RESOURCE_FOLDER, target.getPath() + File.separator); 
     67                        System.out.println(outFilePath); 
     68 
     69                        File dst = new File(outFilePath); 
     70                        dst.mkdirs(); 
     71                        if(dst.exists()) { 
     72                            dst.delete(); 
     73                        } 
     74                        dst.createNewFile(); 
     75                        copyFile(outFilePath, is, dst); 
     76                    } 
     77                } 
     78            } 
     79            logger.info("generated " + target); 
     80        } 
     81 
     82        public void copyFile(String srcPath, InputStream in, File dst) throws IOException { 
     83                OutputStream out = new FileOutputStream(dst); 
     84 
     85                // Transfer bytes from in to out 
     86                byte[] buf = new byte[1024]; 
     87                int len; 
     88                while ((len = in.read(buf)) > 0) 
     89                { 
     90                        out.write(buf, 0, len); 
     91                } 
     92                in.close(); 
     93                out.close(); 
     94                logger.debug("copied " + srcPath + " to " + dst); 
    4895        } 
    4996 
     
    89136        public void copyFile(File src, File dst) throws IOException 
    90137        { 
     138 
     139 
    91140                if (!src.getAbsolutePath().contains(".svn") && !dst.exists()) 
    92141                { 
Note: See TracChangeset for help on using the changeset viewer.