Changeset 6340
- Timestamp:
- Oct 31, 2013, 1:54:35 PM (9 years ago)
- Location:
- branches/3.2-stable
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3.2-stable/src/clients/web/net/sf/basedb/clients/web/extensions/ExtensionsControl.java
r6028 r6340 197 197 198 198 // Collect the results from this scan 199 ProcessResults results = new ProcessResults( );199 ProcessResults results = new ProcessResults(lastScanResults); 200 200 201 201 // File statistics -
branches/3.2-stable/src/clients/web/net/sf/basedb/clients/web/extensions/UninstalledFileProcessor.java
r5616 r6340 66 66 ExtensionsFile xtFile = wFile.getExtensionsFile(); 67 67 results.setStatus(xtFile, "Uninstalled"); 68 results.forgetOldResults(xtFile); 68 69 wFile.setUninstalled(); 69 70 numFiles++; -
branches/3.2-stable/src/core/net/sf/basedb/util/extensions/manager/ProcessResults.java
r5616 r6340 27 27 import java.util.Map; 28 28 import java.util.TreeMap; 29 import java.util.WeakHashMap; 29 30 30 31 /** … … 42 43 43 44 private Map<ExtensionsFile, FileResults> fileResults; 45 private Map<ExtensionsFile, FileResults> oldFileResults; 46 44 47 private boolean hasError; 45 48 private int numErrorFiles; … … 52 55 public ProcessResults() 53 56 { 57 this(null); 58 } 59 60 /** 61 Create a new process results object, keeping information about 62 previous results. 63 @since 3.2.4 64 */ 65 public ProcessResults(ProcessResults oldResults) 66 { 54 67 this.fileResults = new TreeMap<ExtensionsFile, FileResults>(); 68 this.oldFileResults = new WeakHashMap<ExtensionsFile, FileResults>(); 69 if (oldResults != null) 70 { 71 oldFileResults.putAll(oldResults.oldFileResults); 72 } 55 73 this.hasError = false; 56 74 this.numErrorFiles = 0; … … 127 145 128 146 /** 129 Get the results for a specific extensions file. 147 Get the results for a specific extensions file. If 148 no current results exists, old results are searched. 130 149 @param xtFile The extensions file to get the results for 131 150 @return A {@link FileResults} object or null if the … … 134 153 public FileResults getResults(ExtensionsFile xtFile) 135 154 { 136 return fileResults.get(xtFile); 137 } 138 155 FileResults results = fileResults.get(xtFile); 156 if (results == null) results = oldFileResults.get(xtFile); 157 return results; 158 } 159 160 /** 161 Forget old processing results for the given file. 162 Should be called when an extension has been uninstalled, 163 @param xtFile The extensions file to forget 164 @since 3.2.4 165 */ 166 public void forgetOldResults(ExtensionsFile xtFile) 167 { 168 oldFileResults.remove(xtFile); 169 } 170 139 171 /** 140 172 Sets a short overall status message for an entire file. Example: … … 152 184 m = new FileResults(xtFile); 153 185 fileResults.put(xtFile, m); 186 oldFileResults.put(xtFile, m); 154 187 } 155 188 m.status = status; … … 186 219 m = new FileResults(xtFile); 187 220 fileResults.put(xtFile, m); 221 oldFileResults.put(xtFile, m); 188 222 } 189 223 m.messages.add(message); … … 205 239 206 240 private final ExtensionsFile xtFile; 241 private final long time; 207 242 List<String> messages; 208 243 boolean hasError = false; … … 212 247 { 213 248 this.xtFile = xtFile; 249 this.time = System.currentTimeMillis(); 214 250 this.messages = new LinkedList<String>(); 215 251 } … … 218 254 { 219 255 return xtFile; 256 } 257 258 /** 259 Get the time of the results as a millisecond value. 260 @since 3.2.4 261 */ 262 public long getTime() 263 { 264 return time; 220 265 } 221 266 -
branches/3.2-stable/www/admin/extensions/details.jsp
r5951 r6340 87 87 final ExtensionsControl ec = ExtensionsControl.get(dc); 88 88 final boolean writePermission = ec.hasPermission(Permission.WRITE); 89 Formatter dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc); 89 90 90 91 Extension<?> ext = null; … … 443 444 About about = file.getAbout(); 444 445 if (about == null) about = new AboutBean(); 446 ProcessResults results = ec.getLastScanResults(); 447 FileResults fileResults = results.getResults(file); 445 448 %> 446 449 <tbody> … … 456 459 <th>Up to date</th> 457 460 <td><%=file.checkModified() ? "No" : "Yes"%></td> 461 </tr> 462 <tr> 463 <th>Last installed</th> 464 <td><%=fileResults == null ? "unknown" : dateTimeFormatter.format(new Date(fileResults.getTime())) %></td> 458 465 </tr> 459 466 <tr class="big"> … … 463 470 if (file.hasError()) 464 471 { 465 ProcessResults results = ec.getLastScanResults(); 466 FileResults fileResults = results.getResults(file); 467 List<String> messages = fileResults.getMessages(); 472 List<String> messages = fileResults == null ? null : fileResults.getMessages(); 468 473 Throwable validationError = file.getValidationError(); 469 474 %> … … 477 482 <% 478 483 } 479 for (String msg : messages)484 if (messages != null) 480 485 { 481 %> 482 <li><%=HTML.niceFormat(msg)%> 483 <% 486 for (String msg : messages) 487 { 488 %> 489 <li><%=HTML.niceFormat(msg)%> 490 <% 491 } 484 492 } 485 493 %> … … 533 541 { 534 542 ProcessResults results = ec.getLastScanResults(); 535 Formatter dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc);536 543 %> 537 544 <tbody>
Note: See TracChangeset
for help on using the changeset viewer.