blob: d5faea6e11daba8f2c3ea8dd938e42398eeee327 [file] [log] [blame]
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
*
* 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.motorola.studio.android.common;
import static com.motorola.studio.android.common.log.StudioLogger.debug;
import static com.motorola.studio.android.common.log.StudioLogger.error;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
import com.motorola.studio.android.common.log.StudioLogger;
/**
* The activator class controls the plug-in life cycle
*/
public class CommonPlugin extends AbstractUIPlugin
{
// The plug-in ID
public static final String PLUGIN_ID = "com.motorola.studio.android.common"; //$NON-NLS-1$
private static final String JDBC_DRIVER_PATH = "res/androidjdbc.jar";
public static final String JDBC_DRIVER_INSTANCE_NAME = "motodev_jdbc_driver";
// The shared instance
private static CommonPlugin plugin;
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
*/
@Override
public void start(BundleContext context) throws Exception
{
StudioLogger.debug(CommonPlugin.class, "Starting MOTODEV Android Common Plugin...");
super.start(context);
plugin = this;
StudioLogger.debug(CommonPlugin.class, "MOTODEV Android Common Plugin started.");
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
*/
@Override
public void stop(BundleContext context) throws Exception
{
plugin = null;
super.stop(context);
}
/**
* Returns the shared instance
*
* @return the shared instance
*/
public static CommonPlugin getDefault()
{
return plugin;
}
/**
* Retrieves the location of the driver
* @return
*/
public String getDriverPath()
{
String driverPath = "";
if (getDbResourceFile(JDBC_DRIVER_PATH) != null)
{
driverPath = getDbResourceFile(JDBC_DRIVER_PATH).getAbsolutePath();
}
return driverPath;
}
private File getDbResourceFile(String pathAtPlugin)
{
URL location = getBundle().getEntry(pathAtPlugin);
debug("JDBC Driver Location:" + location + " JDBC Driver getBundle().getLocation():"
+ getBundle().getLocation());
File file = null;
try
{
IPath p = new Path(FileLocator.toFileURL(location).getFile());
debug("JDBC Driver Path:" + p.toOSString());
file = p.toFile();
}
catch (IOException e)
{
error("Error while trying to locate jdbc driver into db plugin:" + e.getMessage());
}
return file;
}
}