Plugin和App的统一路径接口

在Eclipse插件(Plugin)开发中,需要写一些Test Case(by JUnit),这些Test Case不是以插件方法运行的,而是一些普通的Application。这时要注意到插件和App获取路径的方式是不同的,这时如果你要测试一些项目中的一些涉及到读文件的一些类,无疑会导致出错。为了让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;

/**
 * 用于插件项目和非插件项目,提供两者通用的方法接口
 * 
@author  chengang 2006-3-30
 
*/
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));
             return FileLocator.find(plugin.getBundle(),  new Path(path), null);    //陈刚修改于2006-8-24,eclipse3.2已经建议用此方法
         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);
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值