1 package org.apache.maven.artifact.repository; 2 3 18 19 import java.util.Calendar ; 20 import java.util.Date ; 21 22 28 public class ArtifactRepositoryPolicy 29 { 30 public static final String UPDATE_POLICY_NEVER = "never"; 31 32 public static final String UPDATE_POLICY_ALWAYS = "always"; 33 34 public static final String UPDATE_POLICY_DAILY = "daily"; 35 36 public static final String UPDATE_POLICY_INTERVAL = "interval"; 37 38 public static final String CHECKSUM_POLICY_FAIL = "fail"; 39 40 public static final String CHECKSUM_POLICY_WARN = "warn"; 41 42 public static final String CHECKSUM_POLICY_IGNORE = "ignore"; 43 44 private boolean enabled; 45 46 private String updatePolicy; 47 48 private String checksumPolicy; 49 50 public ArtifactRepositoryPolicy() 51 { 52 this( true, null, null ); 53 } 54 55 public ArtifactRepositoryPolicy( boolean enabled, String updatePolicy, String checksumPolicy ) 56 { 57 this.enabled = enabled; 58 59 if ( updatePolicy == null ) 60 { 61 updatePolicy = UPDATE_POLICY_DAILY; 62 } 63 this.updatePolicy = updatePolicy; 64 65 if ( checksumPolicy == null ) 66 { 67 checksumPolicy = CHECKSUM_POLICY_WARN; 68 } 69 this.checksumPolicy = checksumPolicy; 70 } 71 72 public void setEnabled( boolean enabled ) 73 { 74 this.enabled = enabled; 75 } 76 77 public void setUpdatePolicy( String updatePolicy ) 78 { 79 this.updatePolicy = updatePolicy; 80 } 81 82 public void setChecksumPolicy( String checksumPolicy ) 83 { 84 this.checksumPolicy = checksumPolicy; 85 } 86 87 public boolean isEnabled() 88 { 89 return enabled; 90 } 91 92 public String getUpdatePolicy() 93 { 94 return updatePolicy; 95 } 96 97 public String getChecksumPolicy() 98 { 99 return checksumPolicy; 100 } 101 102 public boolean checkOutOfDate( Date lastModified ) 103 { 104 boolean checkForUpdates = false; 105 106 if ( UPDATE_POLICY_ALWAYS.equals( updatePolicy ) ) 107 { 108 checkForUpdates = true; 109 } 110 else if ( UPDATE_POLICY_DAILY.equals( updatePolicy ) ) 111 { 112 Calendar cal = Calendar.getInstance(); 114 cal.set( Calendar.HOUR_OF_DAY, 0 ); 115 cal.set( Calendar.MINUTE, 0 ); 116 cal.set( Calendar.SECOND, 0 ); 117 cal.set( Calendar.MILLISECOND, 0 ); 118 if ( cal.getTime().after( lastModified ) ) 119 { 120 checkForUpdates = true; 121 } 122 } 123 else if ( updatePolicy.startsWith( UPDATE_POLICY_INTERVAL ) ) 124 { 125 String s = updatePolicy.substring( UPDATE_POLICY_INTERVAL.length() + 1 ); 126 int minutes = Integer.valueOf( s ).intValue(); 127 Calendar cal = Calendar.getInstance(); 128 cal.add( Calendar.MINUTE, -minutes ); 129 if ( cal.getTime().after( lastModified ) ) 130 { 131 checkForUpdates = true; 132 } 133 } 134 return checkForUpdates; 136 } 137 } 138 | Popular Tags |