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 }