⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stafservicehelper.java

📁 Software Testing Automation Framework (STAF)的开发代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                serviceObj = serviceClass.newInstance();            }            catch (ClassNotFoundException e)            {                return new STAFResult(STAFResult.JavaError,                                      "ClassNotFound: " + serviceClassName);            }            catch (InstantiationException e)            {                return new STAFResult(STAFResult.JavaError,                                      "Could not instantiate class: " +                                      serviceClassName);            }            catch (IllegalAccessException e)            {                return new STAFResult(STAFResult.JavaError,                                      "Illegal access to class: " +                                      serviceClassName);            }            if (!((serviceObj instanceof                   com.ibm.staf.service.STAFServiceInterfaceLevel30)))            {                return new STAFResult(STAFResult.JavaError,                                      "Not a valid interface level");            }            fServiceMap.put(service, new ServiceData(serviceObj, jarFile,                                                     loader, serviceType));        }        catch (Throwable t)        {            // Java error loading service - Print stack trace and return            // in the error result            System.out.println(                "Error loading Java service " + service + ". Verify you " +                "are using a valid version of Java (e.g. Sun or IBM Java).");            t.printStackTrace();            StringWriter stringWriter = new StringWriter();            t.printStackTrace(new PrintWriter(stringWriter));            return new STAFResult(                STAFResult.JavaError, "JSTAFSH.loadService(): Error loading" +                " the Java service. Verify you are using a valid version of" +                " Java (e.g. Sun or IBM Java).\n" +                stringWriter.toString());        }        return new STAFResult(STAFResult.Ok);    }    private STAFResult initService(String service, ServiceInit initInfo)    {        try        {            Object serviceDataObj = fServiceMap.get(service);            int rc = STAFResult.UnknownError;            STAFResult res = new STAFResult(rc);            if (serviceDataObj == null)            {                return new STAFResult(STAFResult.JavaError,                                      "No such service implementation: " +                                      service);            }            ServiceData serviceData = (ServiceData)serviceDataObj;            // set context class loader            Thread.currentThread().setContextClassLoader(serviceData.serviceClassLoader);            if (serviceData.service instanceof STAFServiceInterfaceLevel30)            {                STAFServiceInterfaceLevel30 serviceL30 =                    (STAFServiceInterfaceLevel30)serviceData.service;                res = serviceL30.init(                     new STAFServiceInterfaceLevel30.InitInfo(service,                         initInfo.parms, serviceData.serviceJar,                         serviceData.serviceType, initInfo.writeLocation));            }            else            {                return new STAFResult(STAFResult.JavaError,                                      "Unknown service interface type");            }            return res;        }        catch (Throwable t)        {            StringWriter stringWriter = new StringWriter();            t.printStackTrace(new PrintWriter(stringWriter));            return new STAFResult(STAFResult.JavaError, stringWriter.toString());        }    }    private STAFResult callService(String service, ServiceRequest reqInfo)    {        try        {            Object serviceDataObj = fServiceMap.get(service);            STAFResult result = new STAFResult(STAFResult.UnknownError);            if (serviceDataObj == null)            {                return new STAFResult(STAFResult.JavaError,                                      "No such service implementation: " +                                      service);            }            ServiceData serviceData = (ServiceData)serviceDataObj;            // set context class loader            Thread.currentThread().setContextClassLoader(serviceData.serviceClassLoader);            if (serviceData.service instanceof STAFServiceInterfaceLevel30)            {                STAFServiceInterfaceLevel30 serviceL30 =                    (STAFServiceInterfaceLevel30)serviceData.service;                result = serviceL30.acceptRequest(                    new STAFServiceInterfaceLevel30.RequestInfo(                        reqInfo.stafInstanceUUID, reqInfo.machine,                        reqInfo.machineNickname,                        reqInfo.handleName, reqInfo.handle,                        reqInfo.trustLevel, reqInfo.isLocalRequest,                        reqInfo.diagEnabled,                        reqInfo.request, reqInfo.requestNumber,                        reqInfo.user,                        reqInfo.endpoint,                        reqInfo.physicalInterfaceID));            }            else            {                result = new STAFResult(STAFResult.JavaError,                                        "Unknown service interface type");            }            return result;        }        catch (Throwable t)        {            StringWriter stringWriter = new StringWriter();            t.printStackTrace(new PrintWriter(stringWriter));            return new STAFResult(STAFResult.JavaError, stringWriter.toString());        }    }    private STAFResult termService(String service)    {        try        {            Object serviceDataObj = fServiceMap.get(service);            int rc = STAFResult.UnknownError;            STAFResult res = new STAFResult(rc);            if (serviceDataObj == null)            {                return new STAFResult(STAFResult.JavaError,                                      "No such service implementation: " +                                      service);            }            fServiceMap.remove(service);            ServiceData serviceData = (ServiceData)serviceDataObj;            // set context class loader            Thread.currentThread().setContextClassLoader(serviceData.serviceClassLoader);            if (serviceData.service instanceof STAFServiceInterfaceLevel30)            {                STAFServiceInterfaceLevel30 serviceL30 =                    (STAFServiceInterfaceLevel30)serviceData.service;                res = serviceL30.term();            }            else            {                serviceData.serviceJar.close();                return new STAFResult(STAFResult.JavaError,                                      "Unknown service interface type");            }            serviceData.serviceJar.close();            return res;        }        catch (Throwable t)        {            StringWriter stringWriter = new StringWriter();            t.printStackTrace(new PrintWriter(stringWriter));            return new STAFResult(STAFResult.JavaError, stringWriter.toString());        }    }    private String fJVMName;    private Map fServiceMap = Collections.synchronizedMap(new HashMap());    /************************/    /* All the native stuff */    /************************/    private static native void initialize();    private native void listen();    // Static initializer - called first time class is loaded.    static    {        if (System.getProperty("os.name").toLowerCase().indexOf("aix") == 0)            System.loadLibrary("STAF");        System.loadLibrary("JSTAFSH");        initialize();    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -