博客主机
A-A+

Plugin和App的统一路径接口

2008年12月04日 Eclipse 暂无评论

在Eclipse插件(Plugin)开发中,需要写一些Test Case(by JUnit),这些Test Case不是以插件方法运行的,而是一些普通的Application。这时要注意到插件和App获取路径的方式是不同的,这时如果你要测试一些项目中的 一些涉及到读文件的一些类,无疑会导致出错,因为在Plugin中可能由Plugin和APP组成,比如JUnit,这时在不同地方调用读文件会出错。为了让Plugin和App路径获取透明化,不防写一个工具类来提供统一的路径获取方法,示例类如下所示:

这个思路也可以扩展到Plugin和App不一样的地方,这样写起Test Case就方便多了。

说明:示例中的AdminConsolePlugin类就是创建插件项目自动生成的那个类,你的项目也许叫“项目名+Plugin”

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;

import org.eclipse.core.runtime.Path;
import org.eclipse.ui.plugin.AbstractUIPlugin;

import com.wxxr.management.admin.console.AdminConsolePlugin;

/**
* 用于插件项目和非插件项目,提供两者通用的方法接口
*/
public class ProjectUtil {

private static AbstractUIPlugin plugin = AdminConsolePlugin.getDefault();

private ProjectUtil() {}

/**
* 判断当前的运行状态是否为插件方式
* @return true=插件方式运行
*/
private static boolean isPlugin() {
return plugin != null;
}

public static URL getURL(String path) {
if (isPlugin())//如果是插件
return plugin.find(new Path(path));
else
try {
return new URL("file:" + path);
} catch (MalformedURLException e) {
throw new RuntimeException(path + " is error", e);
}
}

public static InputStream getInputStream(String path) {
URL url = getURL(path);
try {
return url.openStream();
} catch (IOException e) {
throw new RuntimeException(e);
}
}

}

标签:

给我留言

Copyright © 小小的数据技术梦想 保留所有权利.   Theme  Ality 浙ICP备12043346号-1

用户登录

分享到: