Package org.platformlayer.service.solr.ops

Source Code of org.platformlayer.service.solr.ops.SolrInstall

package org.platformlayer.service.solr.ops;

import java.io.File;

import com.fathomdb.hash.Md5Hash;
import org.platformlayer.ops.Handler;
import org.platformlayer.ops.OpsException;
import org.platformlayer.ops.filesystem.DownloadFileByHash;
import org.platformlayer.ops.filesystem.ExpandArchive;
import org.platformlayer.ops.java.JavaVirtualMachine;
import org.platformlayer.ops.packages.PackageDependency;
import org.platformlayer.ops.supervisor.SupervisordInstall;
import org.platformlayer.ops.tree.OpsTreeBase;
import org.platformlayer.ops.users.PosixGroup;
import org.platformlayer.ops.users.PosixUser;

public class SolrInstall extends OpsTreeBase {

  @Handler
  public void handler() {
  }

  @Override
  protected void addChildren() throws OpsException {
    addChild(JavaVirtualMachine.buildJava6());

    // addChild(injected(JettyInstall.class));

    addChild(injected(SupervisordInstall.class));

    {
      // TODO: Would be nice not to hard code this mirror
      String apacheMirror = "http://apache.osuosl.org/";

      // This probably does need to be hard-coded though
      // (though maybe selectable from a list of supported releases)
      String file = "lucene/solr/3.6.0/apache-solr-3.6.0.tgz";
      Md5Hash hash = new Md5Hash("ac11ef4408bb015aa3a5eefcb1047aec");

      File basePath = new File("/opt/");
      File zipFile = new File(basePath, "apache-solr-3.6.0.tgz");
      File extractPath = new File(basePath, "apache-solr-3.6.0");

      DownloadFileByHash download = injected(DownloadFileByHash.class);
      download.setUrl(apacheMirror + file);
      download.hash = hash;
      download.filePath = zipFile;
      addChild(download);

      // Needed for ExpandArchive
      addChild(PackageDependency.build("unzip"));

      // TODO: Only unzip if newly downloaded
      ExpandArchive unzip = injected(ExpandArchive.class);
      unzip.archiveFile = zipFile;
      unzip.extractPath = extractPath;
      addChild(unzip);
    }

    addChild(PosixGroup.build("solr"));
    addChild(PosixUser.build("solr", false, "solr"));
  }
}
TOP

Related Classes of org.platformlayer.service.solr.ops.SolrInstall

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.