/* * This program is free software; you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software * Foundation. * * You should have received a copy of the GNU Lesser General Public License along with this * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html * or from the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * Copyright 2007 - 2009 Pentaho Corporation. All rights reserved. * * * @created Sep 17, 2007 * @author Will Gorman */ package org.pentaho.platform.plugin.services.versionchecker; import java.util.ArrayList; import org.pentaho.platform.engine.core.system.PentahoSystem; import org.pentaho.versionchecker.IVersionCheckDataProvider; import org.pentaho.versionchecker.IVersionCheckErrorHandler; import org.pentaho.versionchecker.IVersionCheckResultHandler; import org.pentaho.versionchecker.VersionChecker; /** * Avoid loading this class without reflection, so if someone * deletes the versionchecker.jar, there will be no class loading * exceptions * * @author Will Gorman * */ public class PentahoVersionCheckHelper { protected boolean ignoreExistingUpdates = false; protected ArrayList resultList = new ArrayList(); protected int versionRequestFlags = -1; public void setVersionRequestFlags(final int versionRequestFlags) { this.versionRequestFlags = versionRequestFlags; } public void setIgnoreExistingUpdates(final boolean ignoreExistingUpdates) { this.ignoreExistingUpdates = ignoreExistingUpdates; } public ArrayList getResults() { return resultList; } public void performUpdate() { IVersionCheckResultHandler resultHandler = new IVersionCheckResultHandler() { public void processResults(String results) { // parse xml results vs spewing out xml? resultList.add(results); } }; IVersionCheckErrorHandler errorHandler = new IVersionCheckErrorHandler() { public void handleException(Exception e) { resultList.add("<vercheck><error><![CDATA[" + e.getMessage() + "]]></error></vercheck>"); //$NON-NLS-1$ //$NON-NLS-2$ } }; // PentahoVersionCheckDataProvider dataProvider = new PentahoVersionCheckDataProvider(); IVersionCheckDataProvider dataProvider = PentahoSystem.get(IVersionCheckDataProvider.class, "IVersionCheckDataProvider", null); //$NON-NLS-1$ if (dataProvider == null) { dataProvider = new PentahoVersionCheckDataProvider(); } if (versionRequestFlags != -1) { dataProvider.setVersionRequestFlags(versionRequestFlags); } VersionChecker vc = new VersionChecker(); vc.setDataProvider(dataProvider); vc.addResultHandler(resultHandler); vc.addErrorHandler(errorHandler); vc.performCheck(ignoreExistingUpdates); } }