aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/VersionCheck.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/VersionCheck.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/VersionCheck.java189
1 files changed, 0 insertions, 189 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/VersionCheck.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/VersionCheck.java
deleted file mode 100644
index 576e9c343..000000000
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/VersionCheck.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Eclipse Public License, Version 1.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.eclipse.org/org/documents/epl-v10.php
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.ide.eclipse.adt.internal;
-
-import com.android.SdkConstants;
-import com.android.ide.eclipse.adt.AdtPlugin;
-import com.android.ide.eclipse.adt.AdtPlugin.CheckSdkErrorHandler;
-import com.android.ide.eclipse.adt.AdtPlugin.CheckSdkErrorHandler.Solution;
-import com.android.ide.eclipse.adt.Messages;
-import com.android.sdklib.repository.FullRevision;
-import com.android.sdklib.repository.FullRevision.PreviewComparison;
-import com.android.sdklib.repository.PkgProps;
-
-import org.osgi.framework.Constants;
-import org.osgi.framework.Version;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Class handling the version check for the plugin vs. the SDK.<br>
- * The plugin must be able to support all version of the SDK.
- *
- * <p/>An SDK can require a new version of the plugin.
- * <p/>The SDK contains a file with the minimum version for the plugin. This file is inside the
- * <code>tools/lib</code> directory, and is called <code>plugin.prop</code>.<br>
- * Inside that text file, there is a line in the format "plugin.version=#.#.#". This is checked
- * against the current plugin version.<br>
- *
- */
-public final class VersionCheck {
- /**
- * The minimum version of the SDK Tools that this version of ADT requires.
- */
- private final static FullRevision MIN_TOOLS_REV = new FullRevision(24, 0, 2, 0);
-
- /**
- * Pattern to get the minimum plugin version supported by the SDK. This is read from
- * the file <code>$SDK/tools/lib/plugin.prop</code>.
- */
- private final static Pattern sPluginVersionPattern = Pattern.compile(
- "^plugin.version=(\\d+)\\.(\\d+)\\.(\\d+).*$"); //$NON-NLS-1$
- private final static Pattern sSourcePropPattern = Pattern.compile(
- "^" + PkgProps.PKG_REVISION + "=(.*)$"); //$NON-NLS-1$
-
- /**
- * Checks the plugin and the SDK have compatible versions.
- * @param osSdkPath The path to the SDK
- * @return true if compatible.
- */
- public static boolean checkVersion(String osSdkPath, CheckSdkErrorHandler errorHandler) {
- AdtPlugin plugin = AdtPlugin.getDefault();
- String osLibs = osSdkPath + SdkConstants.OS_SDK_TOOLS_LIB_FOLDER;
-
- // get the plugin property file, and grab the minimum plugin version required
- // to work with the sdk
- int minMajorVersion = -1;
- int minMinorVersion = -1;
- int minMicroVersion = -1;
- BufferedReader reader = null;
- try {
- reader = new BufferedReader(new FileReader(osLibs + SdkConstants.FN_PLUGIN_PROP));
- String line;
- while ((line = reader.readLine()) != null) {
- Matcher m = sPluginVersionPattern.matcher(line);
- if (m.matches()) {
- minMajorVersion = Integer.parseInt(m.group(1));
- minMinorVersion = Integer.parseInt(m.group(2));
- minMicroVersion = Integer.parseInt(m.group(3));
- break;
- }
- }
- } catch (FileNotFoundException e) {
- // the build id will be null, and this is handled by the builders.
- } catch (IOException e) {
- // the build id will be null, and this is handled by the builders.
- } finally {
- if (reader != null) {
- try {
- reader.close();
- } catch (IOException e) {
- } finally {
- reader = null;
- }
- }
- }
-
- // Failed to get the min plugin version number?
- if (minMajorVersion == -1 || minMinorVersion == -1 || minMicroVersion ==-1) {
- return errorHandler.handleWarning(
- Solution.OPEN_SDK_MANAGER,
- Messages.VersionCheck_Plugin_Version_Failed);
- }
-
- // Are the build tools installed? We can't query Sdk#getLatestBuildTool yet, since
- // SDK initialization typically hasn't completed yet and Sdk.getCurrent() is null.
- File buildToolsFolder = new File(osSdkPath, SdkConstants.FD_BUILD_TOOLS);
- if (!buildToolsFolder.isDirectory()) {
- return errorHandler.handleWarning(
- Solution.OPEN_SDK_MANAGER,
- Messages.VersionCheck_Build_Tool_Missing);
- }
-
- // test the plugin number
- String versionString = (String) plugin.getBundle().getHeaders().get(
- Constants.BUNDLE_VERSION);
- Version version = new Version(versionString);
-
- boolean valid = true;
- if (version.getMajor() < minMajorVersion) {
- valid = false;
- } else if (version.getMajor() == minMajorVersion) {
- if (version.getMinor() < minMinorVersion) {
- valid = false;
- } else if (version.getMinor() == minMinorVersion) {
- if (version.getMicro() < minMicroVersion) {
- valid = false;
- }
- }
- }
-
- if (valid == false) {
- return errorHandler.handleError(
- Solution.OPEN_P2_UPDATE,
- String.format(Messages.VersionCheck_Plugin_Too_Old,
- minMajorVersion, minMinorVersion, minMicroVersion, versionString));
- }
-
- // now check whether the tools are new enough.
- String osTools = osSdkPath + SdkConstants.OS_SDK_TOOLS_FOLDER;
- FullRevision toolsRevision = new FullRevision(Integer.MAX_VALUE);
- try {
- reader = new BufferedReader(new FileReader(osTools + SdkConstants.FN_SOURCE_PROP));
- String line;
- while ((line = reader.readLine()) != null) {
- Matcher m = sSourcePropPattern.matcher(line);
- if (m.matches()) {
- try {
- toolsRevision = FullRevision.parseRevision(m.group(1));
- } catch (NumberFormatException ignore) {}
- break;
- }
- }
- } catch (FileNotFoundException e) {
- // the build id will be null, and this is handled by the builders.
- } catch (IOException e) {
- // the build id will be null, and this is handled by the builders.
- } finally {
- if (reader != null) {
- try {
- reader.close();
- } catch (IOException e) {
- } finally {
- reader = null;
- }
- }
- }
-
- if (toolsRevision.compareTo(MIN_TOOLS_REV, PreviewComparison.IGNORE) < 0) {
- // this is a warning only as we need to parse the SDK to allow updating
- // of the tools!
- return errorHandler.handleWarning(
- Solution.OPEN_SDK_MANAGER,
- String.format(Messages.VersionCheck_Tools_Too_Old,
- MIN_TOOLS_REV, toolsRevision));
- }
-
- return true; // no error!
- }
-}