001 package org.kuali.common.deploy.appserver.tomcat;
002
003 import org.kuali.common.deploy.Deployable;
004 import org.kuali.common.util.Assert;
005
006 public final class TomcatScripts {
007
008 private final String shutdown;
009 private final String cleanup;
010 private final String startup;
011 private final Deployable setenv;
012
013 public static class Builder {
014
015 private String shutdown;
016 private String cleanup;
017 private String startup;
018 private Deployable setenv;
019
020 public Builder(TomcatDirs dirs) {
021 this.shutdown = dirs.getBin() + "/forced-shutdown.sh";
022 this.cleanup = dirs.getBin() + "/cleanup.sh";
023 this.startup = dirs.getBin() + "/startup.sh";
024 this.setenv = getDefaultSetEnv(dirs);
025 }
026
027 private Deployable getDefaultSetEnv(TomcatDirs dirs) {
028 String local = "classpath:org/kuali/common/deploy/bin/setenv.sh";
029 String remote = dirs.getBin() + "/setenv.sh";
030 String permissions = "755";
031 return new Deployable.Builder(local, remote).permissions(permissions).build();
032 }
033
034 public Builder setenv(Deployable setenv) {
035 this.setenv = setenv;
036 return this;
037 }
038
039 public Builder shutdown(String shutdown) {
040 this.shutdown = shutdown;
041 return this;
042 }
043
044 public Builder cleanup(String cleanup) {
045 this.cleanup = cleanup;
046 return this;
047 }
048
049 public Builder startup(String startup) {
050 this.startup = startup;
051 return this;
052 }
053
054 public TomcatScripts build() {
055 Assert.noBlanks(shutdown, cleanup, startup);
056 Assert.notNull(setenv);
057 return new TomcatScripts(this);
058 }
059
060 }
061
062 private TomcatScripts(Builder builder) {
063 this.setenv = builder.setenv;
064 this.shutdown = builder.shutdown;
065 this.cleanup = builder.cleanup;
066 this.startup = builder.startup;
067 }
068
069 public Deployable getSetenv() {
070 return setenv;
071 }
072
073 public String getShutdown() {
074 return shutdown;
075 }
076
077 public String getCleanup() {
078 return cleanup;
079 }
080
081 public String getStartup() {
082 return startup;
083 }
084
085 }