Search in sources :

Example 6 with DataSet

use of jp.ossc.nimbus.beans.dataset.DataSet in project nimbus by nimbus-org.

the class DataSetServletRequestParameterConverter method convert.

/**
 * 指定されたオブジェクトを変換する。<p>
 *
 * @param obj 変換対象のオブジェクト
 * @return 変換後のオブジェクト
 * @exception ConvertException 変換に失敗した場合
 */
public Object convert(Object obj) throws ConvertException {
    if (!(obj instanceof ServletRequest)) {
        return null;
    }
    ServletRequest request = (ServletRequest) obj;
    final Map paramMap = request.getParameterMap();
    if (paramMap == null || paramMap.size() == 0) {
        return null;
    }
    String defaultDsName = request.getParameter(dataSetParameterName);
    if ((defaultDsName == null || defaultDsName.length() == 0) && request instanceof HttpServletRequest) {
        HttpServletRequest httpReq = (HttpServletRequest) request;
        String path = httpReq.getServletPath();
        if (httpReq.getPathInfo() != null) {
            path = path + httpReq.getPathInfo();
        }
        if (path != null) {
            int index = path.lastIndexOf('.');
            if (index != -1) {
                path = path.substring(0, index);
            }
            defaultDsName = dataSetPathPrefix + path;
        }
    }
    final Map currentDsMap = new HashMap();
    final Iterator entries = paramMap.entrySet().iterator();
    while (entries.hasNext()) {
        final Map.Entry entry = (Map.Entry) entries.next();
        final String key = (String) entry.getKey();
        final int index = key.indexOf(datasetDelimiter);
        if (index == -1 || index == key.length() - 1) {
            continue;
        }
        String dsName = null;
        if (index == 0) {
            dsName = defaultDsName;
        } else {
            dsName = key.substring(0, index);
        }
        if (dsName == null) {
            continue;
        }
        DataSet ds = (DataSet) currentDsMap.get(dsName);
        if (ds == null) {
            if (dataSetMap.containsKey(dsName)) {
                ds = ((DataSet) dataSetMap.get(dsName)).cloneSchema();
            } else if (beanFlowInvokerFactory != null && beanFlowInvokerFactory.containsFlow(dsName)) {
                final BeanFlowInvoker beanFlowInvoker = beanFlowInvokerFactory.createFlow(dsName);
                Object ret = null;
                try {
                    ret = beanFlowInvoker.invokeFlow(null);
                } catch (Exception e) {
                    throw new ConvertException("Exception occured in BeanFlow '" + dsName + "'", e);
                }
                if (!(ret instanceof DataSet)) {
                    throw new ConvertException("Result of BeanFlow '" + dsName + "' is not DataSet.");
                }
                ds = (DataSet) ret;
            } else {
                if (isIgnoreUnknownParameter) {
                    continue;
                } else {
                    throw new ConvertException("Unknown DataSet : " + dsName);
                }
            }
            currentDsMap.put(dsName, ds);
        }
        final String propStr = key.substring(index + 1);
        Property prop = (Property) propertyCache.get(propStr);
        if (prop == null) {
            try {
                prop = PropertyFactory.createProperty(propStr);
                if (isIgnoreUnknownParameter) {
                    prop.setIgnoreNullProperty(true);
                }
            } catch (IllegalArgumentException e) {
                throw new ConvertException("Parameter '" + key + "' is illegal.", e);
            }
            Property old = (Property) propertyCache.putIfAbsent(propStr, prop);
            if (old != null) {
                prop = old;
            }
        }
        final String[] vals = (String[]) entry.getValue();
        try {
            if (prop instanceof NestedProperty) {
                Property thisProp = ((NestedProperty) prop).getThisProperty();
                if (thisProp instanceof NestedProperty) {
                    Property nestedProp = ((NestedProperty) prop).getNestedProperty();
                    Property nestedProp2 = ((NestedProperty) thisProp).getNestedProperty();
                    if (nestedProp2 instanceof IndexedProperty) {
                        Property thisProp2 = ((NestedProperty) thisProp).getThisProperty();
                        Object thisObj = thisProp2.getProperty(ds);
                        if (thisObj == null) {
                            if (isIgnoreUnknownParameter) {
                                continue;
                            } else {
                                throw new ConvertException("Parameter '" + key + "' is illegal.");
                            }
                        }
                        if (thisObj instanceof RecordList) {
                            setRecordListProperty((RecordList) thisObj, nestedProp.getPropertyName(), ((IndexedProperty) nestedProp2).getIndex(), vals);
                        } else {
                            // ありえない
                            prop.setProperty(ds, vals[vals.length - 1]);
                        }
                    } else {
                        Object thisObj = thisProp.getProperty(ds);
                        if (thisObj == null) {
                            if (isIgnoreUnknownParameter) {
                                continue;
                            } else {
                                throw new ConvertException("Parameter '" + key + "' is illegal.");
                            }
                        }
                        if (thisObj instanceof RecordList) {
                            setRecordListProperty((RecordList) thisObj, nestedProp.getPropertyName(), vals);
                        } else if (thisObj instanceof Record) {
                            setRecordProperty((Record) thisObj, nestedProp.getPropertyName(), nestedProp.getPropertyType(thisObj), vals);
                        } else {
                            nestedProp.setProperty(thisObj, vals[vals.length - 1]);
                        }
                    }
                } else {
                    Object thisObj = thisProp.getProperty(ds);
                    if (thisObj == null) {
                        if (isIgnoreUnknownParameter) {
                            continue;
                        } else {
                            throw new ConvertException("Parameter '" + key + "' is illegal.");
                        }
                    }
                    Property nestedProp = ((NestedProperty) prop).getNestedProperty();
                    if (thisObj instanceof RecordList) {
                        setRecordListProperty((RecordList) thisObj, nestedProp.getPropertyName(), vals);
                    } else if (thisObj instanceof Record) {
                        setRecordProperty((Record) thisObj, nestedProp.getPropertyName(), nestedProp.getPropertyType(thisObj), vals);
                    } else {
                        nestedProp.setProperty(thisObj, vals[vals.length - 1]);
                    }
                }
            } else {
                throw new ConvertException("Parameter '" + key + "' is illegal.");
            }
        } catch (PropertySetException e) {
            Throwable cause = e.getCause();
            if (cause instanceof ConvertException) {
                throw (ConvertException) cause;
            }
            if (isIgnoreUnknownParameter) {
                continue;
            } else {
                throw new ConvertException("Parameter '" + key + "' is illegal.", e);
            }
        } catch (NoSuchPropertyException e) {
            if (isIgnoreUnknownParameter) {
                continue;
            } else {
                throw new ConvertException("Parameter '" + key + "' is illegal.", e);
            }
        } catch (InvocationTargetException e) {
            throw new ConvertException("Parameter '" + key + "' is illegal.", e.getTargetException());
        }
    }
    if (currentDsMap.size() == 0) {
        return null;
    } else if (currentDsMap.size() == 1) {
        return currentDsMap.values().iterator().next();
    } else {
        return currentDsMap;
    }
}
Also used : ServletRequest(javax.servlet.ServletRequest) HttpServletRequest(javax.servlet.http.HttpServletRequest) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) DataSet(jp.ossc.nimbus.beans.dataset.DataSet) BeanFlowInvoker(jp.ossc.nimbus.service.beancontrol.interfaces.BeanFlowInvoker) HttpServletRequest(javax.servlet.http.HttpServletRequest) Iterator(java.util.Iterator) Record(jp.ossc.nimbus.beans.dataset.Record) NestedProperty(jp.ossc.nimbus.beans.NestedProperty) Property(jp.ossc.nimbus.beans.Property) IndexedProperty(jp.ossc.nimbus.beans.IndexedProperty) NestedProperty(jp.ossc.nimbus.beans.NestedProperty) PropertySetException(jp.ossc.nimbus.beans.dataset.PropertySetException) InvocationTargetException(java.lang.reflect.InvocationTargetException) NoSuchPropertyException(jp.ossc.nimbus.beans.NoSuchPropertyException) InvocationTargetException(java.lang.reflect.InvocationTargetException) PropertySetException(jp.ossc.nimbus.beans.dataset.PropertySetException) RecordList(jp.ossc.nimbus.beans.dataset.RecordList) IndexedProperty(jp.ossc.nimbus.beans.IndexedProperty) NoSuchPropertyException(jp.ossc.nimbus.beans.NoSuchPropertyException) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) ConcurrentMap(java.util.concurrent.ConcurrentMap) Map(java.util.Map)

Example 7 with DataSet

use of jp.ossc.nimbus.beans.dataset.DataSet in project nimbus by nimbus-org.

the class DataSetXpathConverter method convertToObject.

/**
 * 指定された{@link DataSet}サブクラスのオブジェクトへ変換する。
 * @param inputStream 入力ストリーム
 * @param returnObject 変換対象の{@link DataSet}サブクラス
 * @return 指定したデータセットサブクラスに変換されたオブジェクト
 * @throws ConvertException 変換に失敗した場合
 */
public Object convertToObject(InputStream inputStream, Object returnObject) throws ConvertException {
    DataSet result = null;
    // 出力DataSet生成
    if (returnObject != null) {
        if (DataSet.class.isAssignableFrom(returnObject.getClass())) {
            result = ((DataSet) returnObject).cloneDataSet();
        } else {
            throw new ConvertException("A return object is not a sub-class of DataSet.");
        }
    } else {
        throw new ConvertException("A return object is not specified.");
    }
    Document document = parseXml(inputStream);
    validateXml(document);
    // Header要素抽出
    Iterator headers = result.getHeaderMap().values().iterator();
    while (headers.hasNext()) {
        Header header = (Header) headers.next();
        createRecord(document, result, header, header.getRecordSchema());
    }
    // RecordList要素抽出
    Iterator recordLists = result.getRecordListMap().values().iterator();
    while (recordLists.hasNext()) {
        RecordList recordList = (RecordList) recordLists.next();
        createRecord(document, result, recordList, recordList.getRecordSchema());
    }
    return result;
}
Also used : Header(jp.ossc.nimbus.beans.dataset.Header) RecordList(jp.ossc.nimbus.beans.dataset.RecordList) DataSet(jp.ossc.nimbus.beans.dataset.DataSet) Iterator(java.util.Iterator) Document(org.w3c.dom.Document)

Example 8 with DataSet

use of jp.ossc.nimbus.beans.dataset.DataSet in project nimbus by nimbus-org.

the class BeanExchangeConverter method convert.

private Object convert(Object input, Object output, boolean isClone) throws ConvertException {
    if (output == null) {
        throw new ConvertException("Output is null.");
    }
    if (isClone) {
        if (!(output instanceof Cloneable)) {
            throw new ConvertException("Output is not cloneable.");
        }
        if (output instanceof DataSet) {
            output = ((DataSet) output).cloneSchema();
        } else if (output instanceof RecordList) {
            output = ((RecordList) output).cloneSchema();
        } else if (output instanceof Record) {
            output = ((Record) output).cloneSchema();
        } else {
            try {
                output = output.getClass().getMethod("clone", (Class[]) null).invoke(output, (Object[]) null);
            } catch (NoSuchMethodException e) {
                throw new ConvertException(e);
            } catch (IllegalAccessException e) {
                throw new ConvertException(e);
            } catch (InvocationTargetException e) {
                throw new ConvertException(e);
            }
        }
    }
    if (input == null) {
        return output;
    }
    Object[] inputs = null;
    if (input instanceof Collection) {
        inputs = ((Collection) input).toArray();
    } else if (input.getClass().isArray()) {
        inputs = (Object[]) input;
    }
    if (inputs != null) {
        if (inputs.length == 0) {
            return output;
        }
        if (output instanceof RecordList) {
            RecordList list = (RecordList) output;
            for (int i = 0; i < inputs.length; i++) {
                Record record = list.createRecord();
                list.add(convert(inputs[i], record, false));
            }
            return list;
        } else if (output instanceof Collection) {
            Object[] outputs = ((Collection) output).toArray();
            if (outputs.length == 0) {
                throw new ConvertException("Size of collection is 0.");
            }
            for (int i = 0, imax = Math.min(inputs.length, outputs.length); i < imax; i++) {
                outputs[i] = convert(inputs[i], outputs[i], false);
            }
            return outputs;
        } else if (output.getClass().isArray()) {
            Object[] outputs = (Object[]) output;
            final Class componentType = output.getClass().getComponentType();
            if (outputs.length == 0) {
                if (componentType.isInterface() || componentType.isPrimitive()) {
                    throw new ConvertException("Length of array is 0.");
                }
                outputs = (Object[]) Array.newInstance(componentType, inputs.length);
                try {
                    for (int i = 0; i < outputs.length; i++) {
                        outputs[i] = componentType.newInstance();
                    }
                } catch (IllegalAccessException e) {
                    throw new ConvertException("Length of array is 0.", e);
                } catch (InstantiationException e) {
                    throw new ConvertException("Length of array is 0.", e);
                }
            }
            for (int i = 0, imax = Math.min(inputs.length, outputs.length); i < imax; i++) {
                if (outputs[i] == null) {
                    if (componentType.isInterface() || componentType.isPrimitive()) {
                        throw new ConvertException("Element of array is null.");
                    }
                    try {
                        outputs[i] = componentType.newInstance();
                    } catch (IllegalAccessException e) {
                        throw new ConvertException("Element of array is null.", e);
                    } catch (InstantiationException e) {
                        throw new ConvertException("Element of array is null.", e);
                    }
                }
                outputs[i] = convert(inputs[i], outputs[i], false);
            }
            return outputs;
        }
    }
    Map propMapping = propertyMapping;
    boolean isOutputAutoMapping = false;
    boolean isInputAutoMapping = false;
    if (propMapping == null || propMapping.size() == 0) {
        if (propMapping == null) {
            propMapping = new HashMap();
        }
        if (output instanceof Record) {
            Record record = (Record) output;
            RecordSchema schema = record.getRecordSchema();
            if (schema != null) {
                for (int i = 0, imax = schema.getPropertySize(); i < imax; i++) {
                    propMapping.put(schema.getPropertyName(i), schema.getPropertyName(i));
                }
            }
            if (propMapping.size() != 0) {
                isOutputAutoMapping = true;
            }
        } else {
            final SimpleProperty[] props = isFieldOnly(output.getClass()) ? SimpleProperty.getFieldProperties(output) : SimpleProperty.getProperties(output, !isAccessorOnly(output.getClass()));
            for (int i = 0; i < props.length; i++) {
                if (isEnabledPropertyName(output.getClass(), props[i].getPropertyName()) && props[i].isWritable(output.getClass())) {
                    propMapping.put(props[i].getPropertyName(), props[i].getPropertyName());
                }
            }
            if (propMapping.size() != 0) {
                isOutputAutoMapping = true;
            }
        }
        if (!isOutputAutoMapping) {
            if (input instanceof Record) {
                Record record = (Record) input;
                RecordSchema schema = record.getRecordSchema();
                if (schema != null) {
                    for (int i = 0, imax = schema.getPropertySize(); i < imax; i++) {
                        propMapping.put(schema.getPropertyName(i), schema.getPropertyName(i));
                    }
                }
                if (propMapping.size() != 0) {
                    isInputAutoMapping = true;
                }
            } else {
                final SimpleProperty[] props = isFieldOnly(output.getClass()) ? SimpleProperty.getFieldProperties(input) : SimpleProperty.getProperties(input, !isAccessorOnly(output.getClass()));
                for (int i = 0; i < props.length; i++) {
                    if (isEnabledPropertyName(output.getClass(), props[i].getPropertyName()) && props[i].isReadable(input.getClass())) {
                        propMapping.put(props[i].getPropertyName(), props[i].getPropertyName());
                    }
                }
                if (propMapping.size() != 0) {
                    isInputAutoMapping = true;
                }
            }
        }
        if (propMapping.size() == 0) {
            throw new ConvertException("PropertyMapping is null.");
        }
    }
    if (isMakeSchema && (output instanceof Record) && ((Record) output).getRecordSchema() == null) {
        StringBuilder buf = new StringBuilder();
        final Iterator entries = propMapping.entrySet().iterator();
        while (entries.hasNext()) {
            Map.Entry entry = (Map.Entry) entries.next();
            String inputProp = (String) entry.getKey();
            Object outputProp = entry.getValue();
            try {
                Property prop = propertyAccess.getProperty(inputProp);
                Class propType = prop.getPropertyType(input);
                if (outputProp instanceof String) {
                    buf.append(':').append(outputProp);
                    buf.append(',').append(propType.getName()).append('\n');
                } else {
                    List outputProps = (List) outputProp;
                    for (int i = 0, imax = outputProps.size(); i < imax; i++) {
                        buf.append(':').append((String) outputProps.get(i));
                        buf.append(',').append(propType.getName()).append('\n');
                    }
                }
            } catch (IllegalArgumentException e) {
                throw new ConvertException("Input property parse error. property=" + inputProp, e);
            } catch (NoSuchPropertyException e) {
                if (isOutputAutoMapping) {
                    continue;
                }
                throw new ConvertException("Input property get error. input=" + input + ", property=" + inputProp, e);
            } catch (InvocationTargetException e) {
                throw new ConvertException("Input property get error. input=" + input + ", property=" + inputProp, e);
            }
        }
        if (buf.length() != 0) {
            try {
                ((Record) output).setSchema(buf.toString());
            } catch (PropertySchemaDefineException e) {
            // 起こらない
            }
        }
    }
    final Iterator entries = propMapping.entrySet().iterator();
    while (entries.hasNext()) {
        Map.Entry entry = (Map.Entry) entries.next();
        String inputProp = (String) entry.getKey();
        Object value = null;
        try {
            value = propertyAccess.get(input, inputProp);
        } catch (IllegalArgumentException e) {
            throw new ConvertException("Input property get error. input=" + input + ", property=" + inputProp, e);
        } catch (NoSuchPropertyException e) {
            if (isOutputAutoMapping) {
                continue;
            }
            throw new ConvertException("Input property get error. input=" + input + ", property=" + inputProp, e);
        } catch (InvocationTargetException e) {
            throw new ConvertException("Input property get error. input=" + input + ", property=" + inputProp, e);
        }
        Object outputProp = entry.getValue();
        if (outputProp instanceof String) {
            try {
                propertyAccess.set(output, (String) outputProp, value);
            } catch (IllegalArgumentException e) {
                throw new ConvertException("Output property set error. output=" + output + ", property=" + outputProp + ", value=" + value, e);
            } catch (NoSuchPropertyException e) {
                if (isInputAutoMapping) {
                    continue;
                }
                throw new ConvertException("Output property set error. output=" + output + ", property=" + outputProp + ", value=" + value, e);
            } catch (InvocationTargetException e) {
                throw new ConvertException("Output property set error. output=" + output + ", property=" + outputProp + ", value=" + value, e);
            }
        } else {
            List outputProps = (List) outputProp;
            try {
                for (int i = 0, imax = outputProps.size(); i < imax; i++) {
                    propertyAccess.set(output, (String) outputProps.get(i), value);
                }
            } catch (IllegalArgumentException e) {
                throw new ConvertException("Output property set error. output=" + output + ", property=" + outputProp + ", value=" + value, e);
            } catch (NoSuchPropertyException e) {
                if (isInputAutoMapping) {
                    continue;
                }
                throw new ConvertException("Output property set error. output=" + output + ", property=" + outputProp + ", value=" + value, e);
            } catch (InvocationTargetException e) {
                throw new ConvertException("Output property set error. output=" + output + ", property=" + outputProp + ", value=" + value, e);
            }
        }
    }
    return output;
}
Also used : DataSet(jp.ossc.nimbus.beans.dataset.DataSet) HashMap(java.util.HashMap) Iterator(java.util.Iterator) Record(jp.ossc.nimbus.beans.dataset.Record) RecordList(jp.ossc.nimbus.beans.dataset.RecordList) ArrayList(java.util.ArrayList) List(java.util.List) RecordSchema(jp.ossc.nimbus.beans.dataset.RecordSchema) SimpleProperty(jp.ossc.nimbus.beans.SimpleProperty) Property(jp.ossc.nimbus.beans.Property) PropertySchemaDefineException(jp.ossc.nimbus.beans.dataset.PropertySchemaDefineException) InvocationTargetException(java.lang.reflect.InvocationTargetException) RecordList(jp.ossc.nimbus.beans.dataset.RecordList) NoSuchPropertyException(jp.ossc.nimbus.beans.NoSuchPropertyException) Collection(java.util.Collection) SimpleProperty(jp.ossc.nimbus.beans.SimpleProperty) HashMap(java.util.HashMap) Map(java.util.Map)

Example 9 with DataSet

use of jp.ossc.nimbus.beans.dataset.DataSet in project nimbus by nimbus-org.

the class HttpResponseImplTest method testGetHeaderMapNull.

/**
 * ヘッダー情報を取得するテスト。
 * <p>
 * 条件:
 * <ul>
 * <li>定義ファイルをロードし、HttpClientFactoryServiceインスタンスを生成する</li>
 * <li>HttpRequestImpl#createRequest(論理アクション名)を実行し、HttpRequestを生成</li>
 * <li>HttpRequestImpl#executeRequest()を実行し、HttpResponseを生成</li>
 * <li>レスポンスのヘッダーにContent-Type=text/html;charset=Shift_JISが含まれている</li>
 * <li>HttpResponseImpl#getHeader(),getHeaders()を実行</li>
 * </ul>
 * 確認:
 * <ul>
 * <li>HttpResponseImpl#getHeader(),getHeaders()が正しい結果が返されることを確認</li>
 * </ul>
 */
public void testGetHeaderMapNull() {
    try {
        if (!ServiceManagerFactory.loadManager("jp/ossc/nimbus/service/http/httpclient/service-clientTest.xml")) {
            System.exit(-1);
        }
        final HttpClientFactory factory = (HttpClientFactory) ServiceManagerFactory.getServiceObject("HttpClientFactory");
        HttpClientImpl client = (HttpClientImpl) factory.createHttpClient();
        DataSet requestDs = new DataSet("Login");
        requestDs.setHeaderSchema("UserInfo", ":name,java.lang.String,,,\n" + ":age,int,,,");
        Header userInfo = requestDs.getHeader("UserInfo");
        userInfo.setProperty("name", "hoge");
        userInfo.setProperty("age", 25);
        HttpRequest request = factory.createRequest("login");
        request.setObject(requestDs);
        HttpResponseImpl res = (HttpResponseImpl) client.executeRequest(request);
        assertEquals("text/html;charset=Shift_JIS", res.getHeader("Content-Type"));
        assertEquals("text/html;charset=Shift_JIS", res.getHeaders("Content-Type")[0]);
    } catch (Exception e) {
        e.printStackTrace();
        fail("例外発生");
    } finally {
        ServiceManagerFactory.unloadManager("jp/ossc/nimbus/service/http/httpclient/service-clientTest.xml");
    }
}
Also used : HttpRequest(jp.ossc.nimbus.service.http.HttpRequest) Header(jp.ossc.nimbus.beans.dataset.Header) DataSet(jp.ossc.nimbus.beans.dataset.DataSet) HttpClientImpl(jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryService.HttpClientImpl) HttpClientFactory(jp.ossc.nimbus.service.http.HttpClientFactory) ConvertException(jp.ossc.nimbus.util.converter.ConvertException) PropertySchemaDefineException(jp.ossc.nimbus.beans.dataset.PropertySchemaDefineException)

Example 10 with DataSet

use of jp.ossc.nimbus.beans.dataset.DataSet in project nimbus by nimbus-org.

the class HttpResponseImplTest method testGetHeaderMap.

/**
 * ヘッダー情報を取得するテスト。
 * <p>
 * 条件:
 * <ul>
 * <li>定義ファイルをロードし、HttpClientFactoryServiceインスタンスを生成する</li>
 * <li>HttpRequestImpl#createRequest(論理アクション名)を実行し、HttpRequestを生成</li>
 * <li>HttpRequestImpl#executeRequest()を実行し、HttpResponseを生成</li>
 * <li>レスポンスのヘッダーにContent-Type=text/html;charset=Shift_JISが含まれている</li>
 * <li>HttpResponseImpl#getHeadermap()を実行してmapを生成</li>
 * <li>HttpResponseImpl#getHeader(),getHeaders()を実行</li>
 * </ul>
 * 確認:
 * <ul>
 * <li>HttpResponseImpl#getHeader(),getHeaders()が正しい結果が返されることを確認</li>
 * </ul>
 */
public void testGetHeaderMap() {
    try {
        if (!ServiceManagerFactory.loadManager("jp/ossc/nimbus/service/http/httpclient/service-clientTest.xml")) {
            System.exit(-1);
        }
        final HttpClientFactory factory = (HttpClientFactory) ServiceManagerFactory.getServiceObject("HttpClientFactory");
        HttpClientImpl client = (HttpClientImpl) factory.createHttpClient();
        DataSet requestDs = new DataSet("Login");
        requestDs.setHeaderSchema("UserInfo", ":name,java.lang.String,,,\n" + ":age,int,,,");
        Header userInfo = requestDs.getHeader("UserInfo");
        userInfo.setProperty("name", "hoge");
        userInfo.setProperty("age", 25);
        HttpRequest request = factory.createRequest("login");
        request.setObject(requestDs);
        HttpResponseImpl res = (HttpResponseImpl) client.executeRequest(request);
        res.getHeaderMap();
        assertEquals("text/html;charset=Shift_JIS", res.getHeader("Content-Type"));
        assertEquals("text/html;charset=Shift_JIS", res.getHeaders("Content-Type")[0]);
    } catch (Exception e) {
        e.printStackTrace();
        fail("例外発生");
    } finally {
        ServiceManagerFactory.unloadManager("jp/ossc/nimbus/service/http/httpclient/service-clientTest.xml");
    }
}
Also used : HttpRequest(jp.ossc.nimbus.service.http.HttpRequest) Header(jp.ossc.nimbus.beans.dataset.Header) DataSet(jp.ossc.nimbus.beans.dataset.DataSet) HttpClientImpl(jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryService.HttpClientImpl) HttpClientFactory(jp.ossc.nimbus.service.http.HttpClientFactory) ConvertException(jp.ossc.nimbus.util.converter.ConvertException) PropertySchemaDefineException(jp.ossc.nimbus.beans.dataset.PropertySchemaDefineException)

Aggregations

DataSet (jp.ossc.nimbus.beans.dataset.DataSet)13 RecordList (jp.ossc.nimbus.beans.dataset.RecordList)8 Record (jp.ossc.nimbus.beans.dataset.Record)6 InvocationTargetException (java.lang.reflect.InvocationTargetException)5 Iterator (java.util.Iterator)5 Header (jp.ossc.nimbus.beans.dataset.Header)5 PropertySchemaDefineException (jp.ossc.nimbus.beans.dataset.PropertySchemaDefineException)5 HashMap (java.util.HashMap)4 List (java.util.List)4 Map (java.util.Map)4 NoSuchPropertyException (jp.ossc.nimbus.beans.NoSuchPropertyException)4 Property (jp.ossc.nimbus.beans.Property)4 ConvertException (jp.ossc.nimbus.util.converter.ConvertException)4 SQLException (java.sql.SQLException)3 ArrayList (java.util.ArrayList)3 NestedProperty (jp.ossc.nimbus.beans.NestedProperty)3 LinkedHashMap (java.util.LinkedHashMap)2 HttpClientFactory (jp.ossc.nimbus.service.http.HttpClientFactory)2 HttpRequest (jp.ossc.nimbus.service.http.HttpRequest)2 HttpClientImpl (jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryService.HttpClientImpl)2