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);
        }
    }

}
目录
相关文章
|
3月前
|
Java Linux Shell
【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题
【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题
|
3月前
|
存储 关系型数据库 Linux
【Azure 应用服务】App Service For Linux 部署PHP Laravel 项目,如何修改首页路径为 wwwroot\public\index.php
【Azure 应用服务】App Service For Linux 部署PHP Laravel 项目,如何修改首页路径为 wwwroot\public\index.php
|
3月前
|
前端开发 JavaScript PHP
【Azure 应用服务】App Service 在使用GIt本地部署,上传代码的路径为/home/site/repository,而不是站点的根目录/home/site/wwwroot。 这个是因为什么?
【Azure 应用服务】App Service 在使用GIt本地部署,上传代码的路径为/home/site/repository,而不是站点的根目录/home/site/wwwroot。 这个是因为什么?
|
5月前
|
XML JSON 数据安全/隐私保护
如何使用Fiddler抓取APP接口和微信授权网页源代码
Fiddler是一款强大的抓包工具,用于捕获HTTP/HTTPS流量,包括手机APP和微信授权页面的数据。下载安装Fiddler后,需设置电脑代理,如端口8888,并在手机上配置相同代理,确保两者在同一局域网。通过安装Fiddler证书,可解密HTTPS请求。在手机上打开目标应用或网页,Fiddler将显示请求详情,便于接口调试和数据查看。
188 0
如何使用Fiddler抓取APP接口和微信授权网页源代码
|
4月前
|
存储 监控 API
解锁京东 APP 商品详情的 API 接口获取方法
在数字化商业环境中,获取京东APP商品详情的API接口至关重要。这有助于电商数据分析、价格监控、商品推荐等。API接口提供高效、稳定且合规的数据源,允许快速获取大量商品信息。要使用接口,需注册开发者账号、了解接口文档并进行开发调试。示例代码展示了Python如何调用接口。同时,注意遵守规则、处理数据安全及接口更新。利用API能提升业务效率,但需在合法合规下进行。
|
6月前
|
XML JSON Java
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
793 0
|
6月前
|
数据库
uni-app 127收藏相关接口开发
uni-app 127收藏相关接口开发
36 0
|
6月前
|
移动开发 小程序 搜索推荐
【社区每周】“app_logo”提审接口logo大小升至2MB(2022年7月第一期)
【社区每周】“app_logo”提审接口logo大小升至2MB(2022年7月第一期)
49 0
|
6月前
|
JavaScript Android开发
Cordova APP 无法访问后端接口
Cordova APP 无法访问后端接口
150 0