01: /*
02: * Copyright 2006 Pentaho Corporation. All rights reserved.
03: * This software was developed by Pentaho Corporation and is provided under the terms
04: * of the Mozilla Public License, Version 1.1, or any later version. You may not use
05: * this file except in compliance with the license. If you need a copy of the license,
06: * please go to http://www.mozilla.org/MPL/MPL-1.1.txt. The Original Code is the Pentaho
07: * BI Platform. The Initial Developer is Pentaho Corporation.
08: *
09: * Software distributed under the Mozilla Public License is distributed on an "AS IS"
10: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. Please refer to
11: * the license for the specific language governing your rights and limitations.
12: *
13: * @created Sep 17, 2007
14: * @author Will Gorman
15: */
16: package org.pentaho.plugin.versionchecker;
17:
18: import java.util.ArrayList;
19:
20: import org.pentaho.versionchecker.IVersionCheckErrorHandler;
21: import org.pentaho.versionchecker.IVersionCheckResultHandler;
22: import org.pentaho.versionchecker.VersionChecker;
23:
24: /**
25: * Avoid loading this class without reflection, so if someone
26: * deletes the versionchecker.jar, there will be no class loading
27: * exceptions
28: *
29: * @author Will Gorman
30: *
31: */
32: public class PentahoVersionCheckHelper {
33:
34: protected boolean ignoreExistingUpdates = false;
35: protected ArrayList resultList = new ArrayList();
36: protected int versionRequestFlags = -1;
37:
38: public void setVersionRequestFlags(int versionRequestFlags) {
39: this .versionRequestFlags = versionRequestFlags;
40: }
41:
42: public void setIgnoreExistingUpdates(boolean ignoreExistingUpdates) {
43: this .ignoreExistingUpdates = ignoreExistingUpdates;
44: }
45:
46: public ArrayList getResults() {
47: return resultList;
48: }
49:
50: public void performUpdate() {
51: IVersionCheckResultHandler resultHandler = new IVersionCheckResultHandler() {
52: public void processResults(String results) {
53: // parse xml results vs spewing out xml?
54: resultList.add(results);
55: }
56: };
57:
58: IVersionCheckErrorHandler errorHandler = new IVersionCheckErrorHandler() {
59: public void handleException(Exception e) {
60: resultList
61: .add("<vercheck><error><![CDATA[" + e.getMessage() + "]]></error></vercheck>"); //$NON-NLS-1$ //$NON-NLS-2$
62: }
63: };
64:
65: PentahoVersionCheckDataProvider dataProvider = new PentahoVersionCheckDataProvider();
66: if (versionRequestFlags != -1) {
67: dataProvider.setVersionRequestFlags(versionRequestFlags);
68: }
69:
70: VersionChecker vc = new VersionChecker();
71:
72: vc.setDataProvider(dataProvider);
73: vc.addResultHandler(resultHandler);
74: vc.addErrorHandler(errorHandler);
75:
76: vc.performCheck(ignoreExistingUpdates);
77: }
78: }
|