Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/olingo-odata4
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/156ae7ef Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/156ae7ef Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/156ae7ef Branch: refs/heads/master Commit: 156ae7ef664f5feb08c157fee7af65cdb60004ed Parents: f40643f 4c820a2 Author: challenh <[email protected]> Authored: Tue Jun 24 21:19:38 2014 +0800 Committer: challenh <[email protected]> Committed: Tue Jun 24 21:19:38 2014 +0800 ---------------------------------------------------------------------- .../ext/proxy/EntityContainerFactory.java | 5 +- .../commons/AbstractPersistenceManager.java | 11 +- .../proxy/commons/EntityInvocationHandler.java | 18 +- .../commons/EntitySetInvocationHandler.java | 6 +- .../NonTransactionalPersistenceManagerImpl.java | 6 +- .../TransactionalPersistenceManagerImpl.java | 3 +- .../org/apache/olingo/fit/AbstractServices.java | 8 +- .../olingo/fit/AbstractBaseTestITCase.java | 5 +- .../olingo/fit/v3/AbstractTestITCase.java | 29 +- .../apache/olingo/fit/v3/BatchTestITCase.java | 20 +- .../apache/olingo/fit/v3/CountTestITCase.java | 16 +- .../olingo/fit/v3/EntityCreateTestITCase.java | 46 +- .../olingo/fit/v3/EntityRetrieveTestITCase.java | 43 +- .../olingo/fit/v3/EntitySetTestITCase.java | 35 +- .../olingo/fit/v3/EntityUpdateTestITCase.java | 30 +- .../apache/olingo/fit/v3/ErrorTestITCase.java | 30 +- .../apache/olingo/fit/v3/InvokeTestITCase.java | 27 +- .../olingo/fit/v3/KeyAsSegmentTestITCase.java | 16 +- .../olingo/fit/v3/MediaEntityTestITCase.java | 24 +- .../olingo/fit/v3/OpenTypeTestITCase.java | 17 +- .../olingo/fit/v3/PrimitiveKeysTestITCase.java | 12 +- .../olingo/fit/v3/PropertyTestITCase.java | 12 +- .../olingo/fit/v3/PropertyValueTestITCase.java | 31 +- .../olingo/fit/v3/QueryOptionsTestITCase.java | 15 +- .../olingo/fit/v4/AbstractTestITCase.java | 16 +- .../apache/olingo/fit/v4/AsyncTestITCase.java | 17 +- .../olingo/fit/v4/AuthBatchTestITCase.java | 17 +- .../apache/olingo/fit/v4/BatchTestITCase.java | 31 +- .../fit/v4/BoundOperationInvokeTestITCase.java | 15 +- .../olingo/fit/v4/ConformanceTestITCase.java | 35 +- .../apache/olingo/fit/v4/DeltaTestITCase.java | 8 +- .../olingo/fit/v4/DerivedTypeTestITCase.java | 14 +- .../olingo/fit/v4/EntityCreateTestITCase.java | 19 +- .../olingo/fit/v4/EntityRetrieveTestITCase.java | 71 ++-- .../olingo/fit/v4/EntitySetTestITCase.java | 37 +- .../olingo/fit/v4/EntityUpdateTestITCase.java | 25 +- .../olingo/fit/v4/ErrorResponseTestITCase.java | 5 +- .../olingo/fit/v4/FilterFactoryTestITCase.java | 5 +- .../fit/v4/JSONFormatConformanceTestITCase.java | 12 +- .../olingo/fit/v4/KeyAsSegmentTestITCase.java | 23 +- .../olingo/fit/v4/MediaEntityTestITCase.java | 23 +- .../olingo/fit/v4/OpenTypeTestITCase.java | 19 +- .../fit/v4/OperationImportInvokeTestITCase.java | 22 +- .../olingo/fit/v4/PropertyValueTestITCase.java | 21 +- .../olingo/fit/v4/QueryOptionsTestITCase.java | 11 +- .../olingo/fit/v4/SingletonTestITCase.java | 29 +- .../olingo/client/api/CommonConfiguration.java | 36 +- .../olingo/client/api/CommonODataClient.java | 6 +- .../request/ODataBasicRequest.java | 16 +- .../request/cud/ODataDeleteRequest.java | 3 +- .../request/cud/ODataEntityCreateRequest.java | 3 +- .../request/cud/ODataEntityUpdateRequest.java | 3 +- .../request/cud/ODataPropertyUpdateRequest.java | 3 +- .../request/cud/ODataValueUpdateRequest.java | 3 +- .../request/cud/v3/ODataLinkCreateRequest.java | 3 +- .../request/cud/v3/ODataLinkUpdateRequest.java | 3 +- .../request/invoke/ODataInvokeRequest.java | 4 +- .../request/retrieve/EdmMetadataRequest.java | 3 +- .../request/retrieve/ODataEntityRequest.java | 3 +- .../retrieve/ODataEntitySetIteratorRequest.java | 3 +- .../request/retrieve/ODataEntitySetRequest.java | 4 +- .../request/retrieve/ODataMediaRequest.java | 3 +- .../request/retrieve/ODataPropertyRequest.java | 2 +- .../request/retrieve/ODataRetrieveRequest.java | 5 +- .../retrieve/ODataServiceDocumentRequest.java | 3 +- .../request/retrieve/ODataValueRequest.java | 3 +- .../request/retrieve/XMLMetadataRequest.java | 4 +- .../retrieve/v3/ODataLinkCollectionRequest.java | 3 +- .../request/retrieve/v4/ODataDeltaRequest.java | 3 +- .../streamed/ODataStreamedEntityRequest.java | 10 +- .../api/domain/ODataEntitySetIterator.java | 16 +- .../api/serialization/CommonODataReader.java | 5 +- .../client/api/serialization/ODataWriter.java | 5 +- .../api/serialization/v3/ODataReader.java | 7 +- .../api/serialization/v4/ODataReader.java | 5 +- .../olingo/client/api/v3/Configuration.java | 25 -- .../olingo/client/api/v3/ODataClient.java | 9 +- .../olingo/client/api/v4/ODataClient.java | 9 +- .../client/core/AbstractConfiguration.java | 248 ----------- .../olingo/client/core/AbstractODataClient.java | 2 - .../olingo/client/core/Configuration.java | 221 ++++++++++ .../olingo/client/core/ODataClientFactory.java | 7 +- .../request/AbstractODataBasicRequest.java | 39 +- .../request/AbstractODataRequest.java | 112 +---- .../request/batch/ODataBatchUtilities.java | 6 +- .../request/batch/v3/ODataBatchRequestImpl.java | 2 +- .../request/batch/v4/ODataBatchRequestImpl.java | 2 +- .../request/cud/ODataDeleteRequestImpl.java | 21 +- .../cud/ODataEntityCreateRequestImpl.java | 21 +- .../cud/ODataEntityUpdateRequestImpl.java | 18 +- .../cud/ODataPropertyUpdateRequestImpl.java | 11 +- .../cud/ODataValueUpdateRequestImpl.java | 27 +- .../cud/v3/ODataLinkCreateRequestImpl.java | 12 +- .../cud/v3/ODataLinkUpdateRequestImpl.java | 12 +- .../invoke/AbstractODataInvokeRequest.java | 29 +- .../invoke/v3/ODataInvokeRequestImpl.java | 7 +- .../invoke/v4/ODataInvokeRequestImpl.java | 9 +- .../retrieve/AbstractMetadataRequestImpl.java | 6 +- .../retrieve/AbstractODataRetrieveRequest.java | 29 +- .../retrieve/ODataEntityRequestImpl.java | 13 +- .../ODataEntitySetIteratorRequestImpl.java | 23 +- .../retrieve/ODataEntitySetRequestImpl.java | 19 +- .../request/retrieve/ODataMediaRequestImpl.java | 20 +- .../retrieve/ODataPropertyRequestImpl.java | 15 +- .../request/retrieve/ODataRawRequestImpl.java | 12 +- .../ODataServiceDocumentRequestImpl.java | 12 +- .../request/retrieve/ODataValueRequestImpl.java | 23 +- .../v3/ODataLinkCollectionRequestImpl.java | 16 +- .../retrieve/v4/ODataDeltaRequestImpl.java | 13 +- .../AbstractODataStreamedEntityRequest.java | 19 +- .../streamed/AbstractODataStreamedRequest.java | 20 +- .../request/v4/AsyncRequestWrapperImpl.java | 4 +- .../AbstractODataDeserializer.java | 7 +- .../core/serialization/AbstractODataReader.java | 28 +- .../core/serialization/ODataWriterImpl.java | 5 +- .../serialization/v3/ODataDeserializerImpl.java | 5 +- .../core/serialization/v3/ODataReaderImpl.java | 7 +- .../serialization/v4/ODataDeserializerImpl.java | 8 +- .../core/serialization/v4/ODataReaderImpl.java | 5 +- .../client/core/uri/v3/URIBuilderImpl.java | 10 +- .../client/core/uri/v4/URIBuilderImpl.java | 8 +- .../client/core/v3/ConfigurationImpl.java | 32 -- .../olingo/client/core/v3/ODataClientImpl.java | 16 +- .../client/core/v4/ConfigurationImpl.java | 32 -- .../olingo/client/core/v4/ODataClientImpl.java | 13 +- .../apache/olingo/client/core/AbstractTest.java | 7 +- .../apache/olingo/client/core/v3/AtomTest.java | 13 +- .../olingo/client/core/v3/EntitySetTest.java | 8 +- .../olingo/client/core/v3/EntityTest.java | 32 +- .../apache/olingo/client/core/v3/ErrorTest.java | 18 +- .../apache/olingo/client/core/v3/JSONTest.java | 13 +- .../apache/olingo/client/core/v4/AtomTest.java | 10 +- .../olingo/client/core/v4/EntitySetTest.java | 14 +- .../olingo/client/core/v4/EntityTest.java | 62 +-- .../apache/olingo/client/core/v4/ErrorTest.java | 12 +- .../apache/olingo/client/core/v4/JSONTest.java | 21 +- .../apache/olingo/commons/api/data/Value.java | 2 - .../commons/api/domain/ODataLinkType.java | 8 +- .../olingo/commons/api/format/AcceptType.java | 259 +++++++++++ .../olingo/commons/api/format/ContentType.java | 426 +++++++++++++++++-- .../olingo/commons/api/format/Format.java | 26 -- .../olingo/commons/api/format/ODataFormat.java | 166 ++++++-- .../commons/api/format/ODataMediaFormat.java | 76 ---- .../commons/api/format/ODataPubFormat.java | 102 ----- .../commons/api/format/ODataValueFormat.java | 81 ---- .../olingo/commons/core/data/AbstractValue.java | 5 - .../core/serialization/AtomDeserializer.java | 7 +- .../core/serialization/AtomSerializer.java | 2 +- .../org/apache/olingo/server/api/OData.java | 2 +- .../server/api/processor/DefaultProcessor.java | 2 +- .../server/api/serializer/ODataFormat.java | 23 - .../apache/olingo/server/core/ODataImpl.java | 4 +- .../tecsvc/processor/SampleJsonProcessor.java | 12 +- .../serializer/json/ServiceDocumentTest.java | 2 +- .../serializer/xml/MetadataDocumentTest.java | 2 +- 155 files changed, 1982 insertions(+), 1814 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/156ae7ef/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonConfiguration.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/156ae7ef/lib/client-core/src/main/java/org/apache/olingo/client/core/Configuration.java ---------------------------------------------------------------------- diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/Configuration.java index 0000000,2dc1993..5b8f36b mode 000000,100644..100644 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/Configuration.java +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/Configuration.java @@@ -1,0 -1,209 +1,221 @@@ + /* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + package org.apache.olingo.client.core; + + import java.util.HashMap; + import java.util.Map; + import java.util.concurrent.ExecutorService; + import java.util.concurrent.Executors; + + import org.apache.olingo.client.api.CommonConfiguration; + import org.apache.olingo.client.api.http.HttpClientFactory; + import org.apache.olingo.client.api.http.HttpUriRequestFactory; + import org.apache.olingo.client.core.http.DefaultHttpClientFactory; + import org.apache.olingo.client.core.http.DefaultHttpUriRequestFactory; + import org.apache.olingo.commons.api.format.ContentType; + import org.apache.olingo.commons.api.format.ODataFormat; + + public class Configuration implements CommonConfiguration { + + private static final String DEFAULT_PUB_FORMAT = "pubFormat"; + + private static final String DEFAULT_VALUE_FORMAT = "valueFormat"; + + private static final String DEFAULT_BATCH_ACCEPT_FORMAT = "batchAcceptFormat"; + + private static final String DEFAULT_MEDIA_FORMAT = "valueFormat"; + + private static final String HTTP_CLIENT_FACTORY = "httpClientFactory"; + + private static final String HTTP_URI_REQUEST_FACTORY = "httpUriRequestFactory"; + + private static final String USE_XHTTP_METHOD = "useHTTPMethod"; + + private static final String KEY_AS_SEGMENT = "keyAsSegment"; + + private static final String ADDRESS_DERIVED_TYPE = "addressDerivedType"; + ++ private static final String USE_OPERATION_FQN_IN_URL = "useOperationFqnInUrl"; ++ + private static final String GZIP_COMPRESSION = "gzipCompression"; + + private static final String CHUNKING = "chunking"; + + private final Map<String, Object> CONF = new HashMap<String, Object>(); + + private transient ExecutorService executor = Executors.newFixedThreadPool(10); + + /** + * Gets given configuration property. + * + * @param key key value of the property to be retrieved. + * @param defaultValue default value to be used in case of the given key doesn't exist. + * @return property value if exists; default value if does not exist. + */ + protected Object getProperty(final String key, final Object defaultValue) { + return CONF.containsKey(key) ? CONF.get(key) : defaultValue; + } + + /** + * Sets new configuration property. + * + * @param key configuration property key. + * @param value configuration property value. + * @return given value. + */ + protected Object setProperty(final String key, final Object value) { + return CONF.put(key, value); + } + + @Override + public ContentType getDefaultBatchAcceptFormat() { + return (ContentType) getProperty(DEFAULT_BATCH_ACCEPT_FORMAT, ContentType.MULTIPART_MIXED); + } + + @Override + public void setDefaultBatchAcceptFormat(final ContentType contentType) { + setProperty(DEFAULT_BATCH_ACCEPT_FORMAT, contentType); + } + + @Override + public ODataFormat getDefaultPubFormat() { + return (ODataFormat) getProperty(DEFAULT_PUB_FORMAT, ODataFormat.JSON_FULL_METADATA); + } + + @Override + public void setDefaultPubFormat(final ODataFormat format) { + setProperty(DEFAULT_PUB_FORMAT, format); + } + + @Override + public ODataFormat getDefaultFormat() { + ODataFormat format = getDefaultPubFormat(); + return format == ODataFormat.ATOM ? ODataFormat.XML : format; + } + + @Override + public ODataFormat getDefaultValueFormat() { + return (ODataFormat) getProperty(DEFAULT_VALUE_FORMAT, ODataFormat.TEXT_PLAIN); + } + + @Override + public void setDefaultValueFormat(final ODataFormat format) { + setProperty(DEFAULT_VALUE_FORMAT, format); + } + + @Override + public ODataFormat getDefaultMediaFormat() { + return (ODataFormat) getProperty(DEFAULT_VALUE_FORMAT, ODataFormat.APPLICATION_OCTET_STREAM); + } + + @Override + public void setDefaultMediaFormat(final ODataFormat format) { + setProperty(DEFAULT_MEDIA_FORMAT, format); + } + + @Override + public HttpClientFactory getHttpClientFactory() { + return (HttpClientFactory) getProperty(HTTP_CLIENT_FACTORY, new DefaultHttpClientFactory()); + } + + @Override + public void setHttpClientFactory(final HttpClientFactory factory) { + setProperty(HTTP_CLIENT_FACTORY, factory); + } + + @Override + public HttpUriRequestFactory getHttpUriRequestFactory() { + return (HttpUriRequestFactory) getProperty(HTTP_URI_REQUEST_FACTORY, new DefaultHttpUriRequestFactory()); + } + + @Override + public void setHttpUriRequestFactory(final HttpUriRequestFactory factory) { + setProperty(HTTP_URI_REQUEST_FACTORY, factory); + } + + @Override + public boolean isUseXHTTPMethod() { + return (Boolean) getProperty(USE_XHTTP_METHOD, false); + } + + @Override + public void setUseXHTTPMethod(final boolean value) { + setProperty(USE_XHTTP_METHOD, value); + } + + @Override + public boolean isGzipCompression() { + return (Boolean) getProperty(GZIP_COMPRESSION, false); + } + + @Override + public void setGzipCompression(final boolean value) { + setProperty(GZIP_COMPRESSION, value); + } + + @Override + public boolean isUseChuncked() { + return (Boolean) getProperty(CHUNKING, true); + } + + @Override + public void setUseChuncked(final boolean value) { + setProperty(CHUNKING, value); + } + + @Override + public boolean isKeyAsSegment() { + return (Boolean) getProperty(KEY_AS_SEGMENT, false); + } + + @Override + public void setKeyAsSegment(final boolean value) { + setProperty(KEY_AS_SEGMENT, value); + } + + @Override + public boolean isAddressingDerivedTypes() { + return (Boolean) getProperty(ADDRESS_DERIVED_TYPE, true); + } + + @Override + public void setAddressingDerivedTypes(final boolean value) { + setProperty(ADDRESS_DERIVED_TYPE, value); + } + + @Override ++ public boolean isUseUrlOperationFQN() { ++ return (Boolean) getProperty(USE_OPERATION_FQN_IN_URL, true); ++ } ++ ++ @Override ++ public void setUseUrlOperationFQN(final boolean value) { ++ setProperty(USE_OPERATION_FQN_IN_URL, value); ++ } ++ ++ @Override + public ExecutorService getExecutor() { + return executor; + } + + @Override + public void setExecutor(final ExecutorService executorService) { + executor = executorService; + } + }
