Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.jcouchdb.util;
  
  import java.io.File;
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
 
 
 public class JarBasedCouchDBUpdater
 {
     private static Logger log = LoggerFactory.getLogger(JarBasedCouchDBUpdater.class);
     
     private static final String FILE_SEPARATOR = System.getProperty("file.separator");
 
     private String pathInsideJar;
 
     private Pattern pattern;
     
     private File jarFile;
     
     public void setJarFile(File jarFile)
     {
         this. = jarFile;
     }
 
     public void setPathInsideJar(String pathInsideJar)
     {
         this. = pathInsideJar;
     }
 
     public void setJarFilePattern(String pattern)
     {
         this. = Pattern.compile(pattern);
     }
 
     @Override
     protected List<DesignDocumentreadDesignDocuments() throws IOException
     {
         File file = findJarFileOrSourceDirectory();
         if (file.isDirectory())
         {
             // delegate reading to normal couchdb updater
             CouchDBUpdater couchDBUpdater = new CouchDBUpdater();
             couchDBUpdater.setCreateDatabase();
             couchDBUpdater.setDatabase();
             couchDBUpdater.setDesignDocumentDir(file);
             return couchDBUpdater.readDesignDocuments();
         }
 
         JarFile jarFile = new JarFile(file);
 
         Map<StringDesignDocumentdesignDocuments = new HashMap<StringDesignDocument>();
         for (Enumeration<JarEntrye = jarFile.entries(); e.hasMoreElements(); )
         {
             JarEntry entry = e.nextElement();
 
             String name = entry.getName();
             boolean isMapFunction = name.endsWith();
             boolean isReduceFunction = name.endsWith();
             if (isMapFunction || isReduceFunction)
             {
 
                 if (name.startsWith())
                 {
                     .debug("found map or reduce function: {}"name);
                     
                     String content = IOUtils.toString(jarFile.getInputStream(entry));
                     createViewFor(name.substring(.length()), contentdesignDocuments"/");
                 }
             }
         }
 
         return new ArrayList<DesignDocument>(designDocuments.values());
     }
 
     {
         if ( != null)
         {
             return ;
         }
         
         String classpath = System.getProperty("java.class.path");
         
         String[] paths = classpath.split("\\" + System.getProperty("path.separator"));
         for (String path : paths)
         {
             if (.matcher(path).matches())
            {
                .debug("'{}' matches {}, returning it as jar to generate from"path);
                return new File(path);
            }
        }
        for (String path : paths)
        {
            if (!path.endsWith(".jar"))
            {
                File baseDir = new File(path);
                if (baseDir.isDirectory())
                {
                    String file = ;
                    if (file.startsWith())
                    {
                        file = file.substring(1);
                    }
                    File dir = new File(baseDirfile);
                    .debug("{} exists as sub directory of class path entry {}, using it to generate from"dirbaseDir);
                    if (dir.exists() && dir.isDirectory())
                    {
                        return dir;
                    }
                }
            }
        }
        
        throw new IllegalStateException("Could not find jar or source dir in classpath " + classpath);
    }
New to GrepCode? Check out our FAQ X