1 package org.kuali.common.devops.model.metadata;
2
3 import org.kuali.common.core.build.ValidatingBuilder;
4 import org.kuali.common.core.validate.annotation.IdiotProofImmutable;
5
6 import com.google.common.base.Optional;
7
8 @IdiotProofImmutable
9 public final class EnvironmentMetadataUrls {
10
11 private final String fqdn;
12 private final String tomcatVersion;
13 private final String tomcatHeap;
14 private final String systemPropertiesJsp;
15 private final String applicationManifest;
16 private final Optional<String> projectProperties;
17 private final Optional<String> projectConfiguration;
18
19 private EnvironmentMetadataUrls(Builder builder) {
20 this.fqdn = builder.fqdn;
21 this.tomcatVersion = builder.tomcatVersion;
22 this.tomcatHeap = builder.tomcatHeap;
23 this.systemPropertiesJsp = builder.systemPropertiesJsp;
24 this.applicationManifest = builder.applicationManifest;
25 this.projectProperties = builder.projectProperties;
26 this.projectConfiguration = builder.projectConfiguration;
27 }
28
29 public static Builder builder(String fqdn) {
30 return new Builder(fqdn);
31 }
32
33 public static class Builder extends ValidatingBuilder<EnvironmentMetadataUrls> {
34
35 public static final String DEFAULT_PREFIX = "http://";
36 private static final String SYSTEM_PROPERTIES_URL_FRAGMENT = "/tomcat/logs/env.jsp";
37 private static final String MANIFEST_URL_FRAGMENT = "/tomcat/webapps/ROOT/META-INF/MANIFEST.MF";
38 private static final String VERSION_URL_FRAGMENT = "/tomcat";
39 private static final String HEAP_URL_FRAGMENT = "/tomcat/logs/heap.log";
40
41 private String fqdn;
42 private String tomcatVersion;
43 private String tomcatHeap;
44 private String systemPropertiesJsp;
45 private String applicationManifest;
46 private Optional<String> projectProperties = Optional.absent();
47 private Optional<String> projectConfiguration = Optional.absent();
48
49 public Builder() {
50 }
51
52 public Builder(String fqdn) {
53 this.fqdn = fqdn;
54 tomcatVersion(DEFAULT_PREFIX + fqdn + VERSION_URL_FRAGMENT);
55 tomcatHeap(DEFAULT_PREFIX + fqdn + HEAP_URL_FRAGMENT);
56 systemPropertiesJsp(DEFAULT_PREFIX + fqdn + SYSTEM_PROPERTIES_URL_FRAGMENT);
57 applicationManifest(DEFAULT_PREFIX + fqdn + MANIFEST_URL_FRAGMENT);
58 }
59
60 @Override
61 public EnvironmentMetadataUrls build() {
62 return validate(new EnvironmentMetadataUrls(this));
63 }
64
65 public Builder fqdn(String fqdn) {
66 this.fqdn = fqdn;
67 return this;
68 }
69
70 public Builder tomcatVersion(String tomcatVersion) {
71 this.tomcatVersion = tomcatVersion;
72 return this;
73 }
74
75 public Builder tomcatHeap(String tomcatHeap) {
76 this.tomcatHeap = tomcatHeap;
77 return this;
78 }
79
80 public Builder systemPropertiesJsp(String systemPropertiesJsp) {
81 this.systemPropertiesJsp = systemPropertiesJsp;
82 return this;
83 }
84
85 public Builder applicationManifest(String applicationManifest) {
86 this.applicationManifest = applicationManifest;
87 return this;
88 }
89
90 public Builder projectProperties(Optional<String> projectProperties) {
91 this.projectProperties = projectProperties;
92 return this;
93 }
94
95 public Builder projectConfiguration(Optional<String> projectConfiguration) {
96 this.projectConfiguration = projectConfiguration;
97 return this;
98 }
99
100 public String getTomcatVersion() {
101 return tomcatVersion;
102 }
103
104 public void setTomcatVersion(String releaseNotes) {
105 this.tomcatVersion = releaseNotes;
106 }
107
108 public String getTomcatHeap() {
109 return tomcatHeap;
110 }
111
112 public void setTomcatHeap(String heap) {
113 this.tomcatHeap = heap;
114 }
115
116 public String getSystemPropertiesJsp() {
117 return systemPropertiesJsp;
118 }
119
120 public void setSystemPropertiesJsp(String envJsp) {
121 this.systemPropertiesJsp = envJsp;
122 }
123
124 public String getApplicationManifest() {
125 return applicationManifest;
126 }
127
128 public void setApplicationManifest(String manifest) {
129 this.applicationManifest = manifest;
130 }
131
132 public Optional<String> getProjectProperties() {
133 return projectProperties;
134 }
135
136 public void setProjectProperties(Optional<String> projectProperties) {
137 this.projectProperties = projectProperties;
138 }
139
140 public Optional<String> getProjectConfiguration() {
141 return projectConfiguration;
142 }
143
144 public void setProjectConfiguration(Optional<String> configuration) {
145 this.projectConfiguration = configuration;
146 }
147
148 public String getFqdn() {
149 return fqdn;
150 }
151
152 public void setFqdn(String fqdn) {
153 this.fqdn = fqdn;
154 }
155
156 }
157
158 public String getTomcatVersion() {
159 return tomcatVersion;
160 }
161
162 public String getTomcatHeap() {
163 return tomcatHeap;
164 }
165
166 public String getSystemPropertiesJsp() {
167 return systemPropertiesJsp;
168 }
169
170 public String getApplicationManifest() {
171 return applicationManifest;
172 }
173
174 public Optional<String> getProjectProperties() {
175 return projectProperties;
176 }
177
178 public Optional<String> getProjectConfiguration() {
179 return projectConfiguration;
180 }
181
182 public String getFqdn() {
183 return fqdn;
184 }
185
186 }