docs: public boolean populateSourceDir(String templateDir, String srcDir)
      {
          URL fromDirUrl = this.getTask().getApplication().getResourceURL(templateDir, null);
          if ("http".equalsIgnoreCase(fromDirUrl.getProtocol()))
          {
              String packageName = templateDir + "/main_tourgeek_user/org/jbundle/main/user/db";
              packageName = packageName.replace('/', '.');
              Bundle bundle = (Bundle)ClassServiceUtility.getClassService().getClassFinder(null).findBundle(null, null, packageName, null);
              if (bundle == null) {
                  Object resource = ClassServiceUtility.getClassService().getClassFinder(null).deployThisResource(packageName, null, true);
                  if (resource != null)
                      bundle = (Bundle)ClassServiceUtility.getClassService().getClassFinder(null).findBundle(resource, null, packageName, null);
              }
          
              if (bundle == null)
                  return false;   // Couldn't file files
              OsgiWebStartServlet.transferBundleFiles(bundle, templateDir, srcDir);
          }
          else if (!"file".equalsIgnoreCase(fromDirUrl.getProtocol()))
              return false;
          String fromDir = fromDirUrl.getFile();
          File fromDirFile = new File(fromDir);
          File srcDirFile = new File(srcDir);
          Map<String, Object> properties = new HashMap<String, Object>();
          properties.put("extension", "xml");
          properties.put("filter", ".*");   // Hack (filter is a bad name since it it used in many places)
          if (srcDirFile.exists())
          {
              long srcModified = srcDirFile.lastModified();
              long fromModified = fromDirFile.lastModified();
              if (srcModified > fromModified)
                  return true;    // It's already set up and current!
              // Delete the directory so I can replace it with new data
              properties.put("sourceDir", srcDir);
              properties.put("destDir", srcDir);
              properties.put("listenerClass", DeleteScanListener.class.getName());
              properties.put("deleteDir", DBConstants.TRUE);
              BaseProcess process = new ConvertCode(this.getTask(), null, properties);
              process.run();
              process.free();
          }
          properties.put("sourceDir", fromDir);
          properties.put("destDir", srcDir);
          properties.put("listenerClass", BaseScanListener.class.getName());
          BaseProcess process = new ConvertCode(this.getTask(), null, properties);
          process.run();
          process.free();
          return true;
      }