1 import java.io.IOException; 2 import java.text.ParseException; 3 import java.text.SimpleDateFormat; 4 5 import org.apache.commons.httpclient.HttpClient; 6 import org.apache.commons.httpclient.HttpException; 7 import org.apache.commons.httpclient.HttpMethod; 8 import org.apache.commons.httpclient.methods.GetMethod; 9 import org.apache.commons.lang.StringUtils; 10 11 public class Deploy { 12 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd.hhmmss"); 13 14 public static void main(String[] args) { 15 Deploy deploy = new Deploy(); 16 deploy.run(); 17 } 18 19 public void run() { 20 try { 21 String url = getCurlUrl(); 22 System.out.println("\n" + url); 23 } catch (Throwable t) { 24 t.printStackTrace(); 25 } 26 } 27 28 protected String getCurlUrl() throws Exception { 29 String url = getUrl("maven-metadata.xml"); 30 String xml = getContents(url); 31 BuildInfo bi = getBuildInfo(xml); 32 String filename = getFilename(bi); 33 return getUrl(filename); 34 } 35 36 protected String getFilename(BuildInfo bi) { 37 StringBuffer sb = new StringBuffer(); 38 sb.append(bi.getArtifactId()); 39 sb.append("-"); 40 String version = bi.getVersion(); 41 if (version.endsWith("-SNAPSHOT")) { 42 version = StringUtils.replace(version, "-SNAPSHOT", ""); 43 } 44 sb.append(version); 45 sb.append("-"); 46 sb.append(sdf.format(bi.getTimestamp())); 47 sb.append("-"); 48 sb.append(bi.getBuildNumber()); 49 sb.append(".war"); 50 return sb.toString(); 51 } 52 53 protected BuildInfo getBuildInfo(String contents) throws ParseException { 54 String artifactId = StringUtils.substringBetween(contents, "<artifactId>", "</artifactId>"); 55 String version = StringUtils.substringBetween(contents, "<version>", "</version>"); 56 String buildNumber = StringUtils.substringBetween(contents, "<buildNumber>", "</buildNumber>"); 57 String timestamp = StringUtils.substringBetween(contents, "<timestamp>", "</timestamp>"); 58 59 BuildInfo bi = new BuildInfo(); 60 bi.setArtifactId(artifactId); 61 bi.setVersion(version); 62 bi.setBuildNumber(new Integer(buildNumber)); 63 bi.setTimestamp(sdf.parse(timestamp)); 64 return bi; 65 } 66 67 protected String getUrl(String filename) { 68 String base = "http://maven.kuali.org/snapshot/org/kuali/student/web/ks-embedded/1.1.0-M9-SNAPSHOT/"; 69 return base + filename; 70 } 71 72 protected String getContents(String url) throws IOException, HttpException { 73 HttpClient client = new HttpClient(); 74 HttpMethod method = new GetMethod(url); 75 client.executeMethod(method); 76 return method.getResponseBodyAsString(); 77 } 78 79 }