You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by il...@apache.org on 2014/03/07 10:08:58 UTC
[09/57] [abbrv] git commit: [OLINGO-169] First huge import from
ODataJClient: for the moment,
it just build (no tests yet) and dummy Edm interfaces are used instead of the
ones from commons-api
[OLINGO-169] First huge import from ODataJClient: for the moment, it just build (no tests yet) and dummy Edm interfaces are used instead of the ones from commons-api
Project: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/commit/4f927e76
Tree: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/tree/4f927e76
Diff: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/diff/4f927e76
Branch: refs/heads/master
Commit: 4f927e7640812df94c460b624c0eeaff25c9cd9b
Parents: f094e10
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Fri Feb 21 17:25:07 2014 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Fri Feb 21 17:25:07 2014 +0100
----------------------------------------------------------------------
.../odatajclient/engine/v4/metadata.xml | 212 +++++++-
odata4-lib/odata4-client-api/pom.xml | 5 +
.../olingo/odata4/client/api/Configuration.java | 201 ++++++++
.../olingo/odata4/client/api/Constants.java | 217 +++++++++
.../olingo/odata4/client/api/ODataClient.java | 52 +-
.../olingo/odata4/client/api/ODataError.java | 67 +++
.../client/api/data/ODataDeserializer.java | 90 ++++
.../odata4/client/api/data/ODataReader.java | 102 ++++
.../odata4/client/api/data/ODataSerializer.java | 120 +++++
.../odata4/client/api/edm/ComplexType.java | 32 ++
.../odata4/client/api/edm/EdmMetadata.java | 59 +++
.../olingo/odata4/client/api/edm/Edmx.java | 23 +
.../odata4/client/api/edm/EntityContainer.java | 24 +
.../olingo/odata4/client/api/edm/EntityKey.java | 23 +
.../olingo/odata4/client/api/edm/EntitySet.java | 23 +
.../odata4/client/api/edm/EntityType.java | 23 +
.../olingo/odata4/client/api/edm/EnumType.java | 42 ++
.../odata4/client/api/edm/FunctionImport.java | 23 +
.../olingo/odata4/client/api/edm/Member.java | 26 +
.../client/api/edm/NavigationProperty.java | 23 +
.../api/edm/NavigationPropertyBinding.java | 23 +
.../olingo/odata4/client/api/edm/OnDelete.java | 23 +
.../olingo/odata4/client/api/edm/Parameter.java | 23 +
.../olingo/odata4/client/api/edm/Property.java | 24 +
.../odata4/client/api/edm/PropertyRef.java | 23 +
.../olingo/odata4/client/api/edm/Schema.java | 79 +++
.../odata4/client/api/edm/v3/Annotations.java | 24 +
.../odata4/client/api/edm/v3/Association.java | 23 +
.../client/api/edm/v3/AssociationEnd.java | 23 +
.../client/api/edm/v3/AssociationSet.java | 23 +
.../client/api/edm/v3/AssociationSetEnd.java | 23 +
.../odata4/client/api/edm/v3/ParameterMode.java | 27 +
.../odata4/client/api/edm/v3/PropertyValue.java | 23 +
.../api/edm/v3/ReferentialConstraint.java | 23 +
.../client/api/edm/v3/TypeAnnotation.java | 23 +
.../olingo/odata4/client/api/edm/v3/Using.java | 23 +
.../client/api/edm/v3/ValueAnnotation.java | 23 +
.../odata4/client/api/edm/v3/ValueTerm.java | 23 +
.../olingo/odata4/client/api/edm/v4/Action.java | 23 +
.../odata4/client/api/edm/v4/ActionImport.java | 23 +
.../odata4/client/api/edm/v4/Annotation.java | 23 +
.../odata4/client/api/edm/v4/Annotations.java | 23 +
.../odata4/client/api/edm/v4/CSDLElement.java | 37 ++
.../odata4/client/api/edm/v4/Include.java | 23 +
.../client/api/edm/v4/IncludeAnnotations.java | 23 +
.../client/api/edm/v4/OnDeleteAction.java | 28 ++
.../odata4/client/api/edm/v4/Reference.java | 23 +
.../api/edm/v4/ReferentialConstraint.java | 23 +
.../odata4/client/api/edm/v4/ReturnType.java | 23 +
.../odata4/client/api/edm/v4/Singleton.java | 23 +
.../olingo/odata4/client/api/edm/v4/Term.java | 23 +
.../client/api/edm/v4/TypeDefinition.java | 23 +
.../odata4/client/api/format/ODataFormat.java | 97 ++++
.../client/api/format/ODataMediaFormat.java | 71 +++
.../client/api/format/ODataPubFormat.java | 97 ++++
.../client/api/format/ODataValueFormat.java | 76 +++
.../client/api/http/HttpClientException.java | 68 +++
.../client/api/http/HttpClientFactory.java | 30 ++
.../odata4/client/api/http/HttpMethod.java | 33 ++
.../client/api/http/HttpUriRequestFactory.java | 30 ++
.../client/api/http/NoContentException.java | 36 ++
odata4-lib/odata4-client-core/pom.xml | 31 +-
.../client/core/AbstractConfiguration.java | 209 ++++++++
.../odata4/client/core/AbstractODataClient.java | 37 ++
.../odata4/client/core/ODataClientFactory.java | 34 ++
.../odata4/client/core/ODataClientImpl.java | 25 -
.../odata4/client/core/ODataV3Client.java | 138 ++++++
.../odata4/client/core/ODataV4Client.java | 137 ++++++
.../odata4/client/core/V3Configuration.java | 29 ++
.../odata4/client/core/V4Configuration.java | 29 ++
.../odata4/client/core/data/EdmSimpleType.java | 288 +++++++++++
.../client/core/data/ODataCollectionValue.java | 98 ++++
.../client/core/data/ODataComplexValue.java | 97 ++++
.../odata4/client/core/data/ODataDuration.java | 80 +++
.../client/core/data/ODataGeospatialValue.java | 488 +++++++++++++++++++
.../client/core/data/ODataInvokeResult.java | 30 ++
.../client/core/data/ODataPrimitiveValue.java | 376 ++++++++++++++
.../odata4/client/core/data/ODataProperty.java | 192 ++++++++
.../odata4/client/core/data/ODataTimestamp.java | 141 ++++++
.../odata4/client/core/data/ODataValue.java | 111 +++++
.../data/geospatial/ComposedGeospatial.java | 75 +++
.../client/core/data/geospatial/Geospatial.java | 156 ++++++
.../data/geospatial/GeospatialCollection.java | 47 ++
.../client/core/data/geospatial/LineString.java | 38 ++
.../core/data/geospatial/MultiLineString.java | 38 ++
.../client/core/data/geospatial/MultiPoint.java | 38 ++
.../core/data/geospatial/MultiPolygon.java | 38 ++
.../client/core/data/geospatial/Point.java | 77 +++
.../client/core/data/geospatial/Polygon.java | 72 +++
.../core/data/impl/AbstractEdmDeserializer.java | 69 +++
.../core/data/impl/AbstractJacksonTool.java | 83 ++++
.../data/impl/AbstractODataDeserializer.java | 177 +++++++
.../core/data/impl/AbstractODataReader.java | 138 ++++++
.../core/data/impl/AbstractODataSerializer.java | 160 ++++++
.../core/data/impl/ComplexTypeDeserializer.java | 81 +++
.../data/impl/EntityContainerDeserializer.java | 100 ++++
.../core/data/impl/EntityKeyDeserializer.java | 48 ++
.../core/data/impl/EntitySetDeserializer.java | 68 +++
.../core/data/impl/EntityTypeDeserializer.java | 90 ++++
.../core/data/impl/EnumTypeDeserializer.java | 71 +++
.../data/impl/InjectableSerializerProvider.java | 43 ++
.../core/data/impl/SchemaDeserializer.java | 147 ++++++
.../data/impl/v3/ODataDeserializerImpl.java | 63 +++
.../core/data/impl/v3/ODataReaderImpl.java | 44 ++
.../core/data/impl/v3/ODataSerializerImpl.java | 32 ++
.../data/impl/v4/ODataDeserializerImpl.java | 63 +++
.../core/data/impl/v4/ODataReaderImpl.java | 44 ++
.../core/data/impl/v4/ODataSerializerImpl.java | 32 ++
.../deserializer/PropertyCollectionBuilder.java | 11 +-
.../client/core/edm/AbstractAnnotations.java | 49 ++
.../client/core/edm/AbstractComplexType.java | 41 ++
.../client/core/edm/AbstractDataServices.java | 52 ++
.../odata4/client/core/edm/AbstractEdmItem.java | 42 ++
.../client/core/edm/AbstractEdmMetadata.java | 106 ++++
.../odata4/client/core/edm/AbstractEdmx.java | 51 ++
.../core/edm/AbstractEntityContainer.java | 107 ++++
.../client/core/edm/AbstractEntitySet.java | 49 ++
.../client/core/edm/AbstractEntityType.java | 85 ++++
.../client/core/edm/AbstractEnumType.java | 65 +++
.../client/core/edm/AbstractFunctionImport.java | 30 ++
.../odata4/client/core/edm/AbstractMember.java | 51 ++
.../core/edm/AbstractNavigationProperty.java | 38 ++
.../client/core/edm/AbstractParameter.java | 94 ++++
.../client/core/edm/AbstractProperty.java | 240 +++++++++
.../odata4/client/core/edm/AbstractSchema.java | 128 +++++
.../core/edm/DataServicesDeserializer.java | 64 +++
.../client/core/edm/EdmxDeserializer.java | 67 +++
.../odata4/client/core/edm/EntityKeyImpl.java | 41 ++
.../odata4/client/core/edm/EntitySetImpl.java | 25 +
.../odata4/client/core/edm/OnDeleteImpl.java | 40 ++
.../odata4/client/core/edm/PropertyRefImpl.java | 50 ++
.../core/edm/v3/AnnotationsDeserializer.java | 55 +++
.../client/core/edm/v3/AnnotationsImpl.java | 43 ++
.../core/edm/v3/AssociationDeserializer.java | 53 ++
.../client/core/edm/v3/AssociationEndImpl.java | 73 +++
.../client/core/edm/v3/AssociationImpl.java | 61 +++
.../core/edm/v3/AssociationSetDeserializer.java | 52 ++
.../core/edm/v3/AssociationSetEndImpl.java | 50 ++
.../client/core/edm/v3/AssociationSetImpl.java | 57 +++
.../client/core/edm/v3/ComplexTypeImpl.java | 48 ++
.../client/core/edm/v3/DataServicesImpl.java | 37 ++
.../client/core/edm/v3/EdmMetadataImpl.java | 35 ++
.../odata4/client/core/edm/v3/EdmxImpl.java | 28 ++
.../client/core/edm/v3/EntityContainerImpl.java | 60 +++
.../client/core/edm/v3/EntitySetImpl.java | 27 +
.../client/core/edm/v3/EntityTypeImpl.java | 65 +++
.../odata4/client/core/edm/v3/EnumTypeImpl.java | 58 +++
.../core/edm/v3/FunctionImportDeserializer.java | 67 +++
.../client/core/edm/v3/FunctionImportImpl.java | 129 +++++
.../odata4/client/core/edm/v3/MemberImpl.java | 28 ++
.../core/edm/v3/NavigationPropertyImpl.java | 61 +++
.../client/core/edm/v3/ParameterImpl.java | 40 ++
.../odata4/client/core/edm/v3/PropertyImpl.java | 27 +
.../client/core/edm/v3/PropertyValueImpl.java | 119 +++++
.../core/edm/v3/ReferentialConstraintImpl.java | 50 ++
.../core/edm/v3/ReferentialConstraintRole.java | 51 ++
.../ReferentialConstraintRoleDeserializer.java | 51 ++
.../odata4/client/core/edm/v3/SchemaImpl.java | 138 ++++++
.../core/edm/v3/TypeAnnotationDeserializer.java | 52 ++
.../client/core/edm/v3/TypeAnnotationImpl.java | 58 +++
.../odata4/client/core/edm/v3/UsingImpl.java | 50 ++
.../client/core/edm/v3/ValueAnnotationImpl.java | 129 +++++
.../client/core/edm/v3/ValueTermImpl.java | 50 ++
.../core/edm/v4/AbstractAnnotatedEdmItem.java | 42 ++
.../client/core/edm/v4/ActionDeserializer.java | 60 +++
.../odata4/client/core/edm/v4/ActionImpl.java | 87 ++++
.../client/core/edm/v4/ActionImportImpl.java | 60 +++
.../client/core/edm/v4/AnnotatedEdmItem.java | 28 ++
.../core/edm/v4/AnnotationDeserializer.java | 57 +++
.../client/core/edm/v4/AnnotationImpl.java | 72 +++
.../core/edm/v4/AnnotationsDeserializer.java | 53 ++
.../client/core/edm/v4/AnnotationsImpl.java | 47 ++
.../client/core/edm/v4/ComplexTypeImpl.java | 107 ++++
.../client/core/edm/v4/DataServicesImpl.java | 37 ++
.../client/core/edm/v4/EdmMetadataImpl.java | 39 ++
.../odata4/client/core/edm/v4/EdmxImpl.java | 36 ++
.../client/core/edm/v4/EntityContainerImpl.java | 128 +++++
.../client/core/edm/v4/EntitySetImpl.java | 60 +++
.../client/core/edm/v4/EntityTypeImpl.java | 78 +++
.../odata4/client/core/edm/v4/EnumTypeImpl.java | 71 +++
.../core/edm/v4/FunctionDeserializer.java | 62 +++
.../odata4/client/core/edm/v4/FunctionImpl.java | 38 ++
.../client/core/edm/v4/FunctionImportImpl.java | 88 ++++
.../core/edm/v4/IncludeAnnotationsImpl.java | 62 +++
.../odata4/client/core/edm/v4/IncludeImpl.java | 51 ++
.../odata4/client/core/edm/v4/MemberImpl.java | 43 ++
.../edm/v4/NavigationPropertyBindingImpl.java | 51 ++
.../edm/v4/NavigationPropertyDeserializer.java | 67 +++
.../core/edm/v4/NavigationPropertyImpl.java | 102 ++++
.../client/core/edm/v4/ParameterImpl.java | 39 ++
.../odata4/client/core/edm/v4/PropertyImpl.java | 41 ++
.../core/edm/v4/ReferenceDeserializer.java | 58 +++
.../client/core/edm/v4/ReferenceImpl.java | 62 +++
.../core/edm/v4/ReferentialConstraintImpl.java | 50 ++
.../client/core/edm/v4/ReturnTypeImpl.java | 96 ++++
.../odata4/client/core/edm/v4/SchemaImpl.java | 173 +++++++
.../core/edm/v4/SingletonDeserializer.java | 57 +++
.../client/core/edm/v4/SingletonImpl.java | 59 +++
.../client/core/edm/v4/TermDeserializer.java | 75 +++
.../odata4/client/core/edm/v4/TermImpl.java | 129 +++++
.../core/edm/v4/TypeDefinitionDeserializer.java | 65 +++
.../client/core/edm/v4/TypeDefinitionImpl.java | 108 ++++
.../annotation/AbstractElOrAttrConstruct.java | 37 ++
.../annotation/AnnotatedDynExprConstruct.java | 39 ++
.../core/edm/v4/annotation/AnnotationPath.java | 25 +
.../client/core/edm/v4/annotation/Apply.java | 52 ++
.../edm/v4/annotation/ApplyDeserializer.java | 55 +++
.../client/core/edm/v4/annotation/Cast.java | 89 ++++
.../edm/v4/annotation/CastDeserializer.java | 62 +++
.../core/edm/v4/annotation/Collection.java | 36 ++
.../v4/annotation/CollectionDeserializer.java | 50 ++
.../edm/v4/annotation/ConstExprConstruct.java | 71 +++
.../edm/v4/annotation/DynExprConstruct.java | 28 ++
.../DynExprConstructDeserializer.java | 145 ++++++
.../edm/v4/annotation/DynExprDoubleParamOp.java | 71 +++
.../edm/v4/annotation/DynExprSingleParamOp.java | 67 +++
.../core/edm/v4/annotation/ExprConstruct.java | 27 +
.../client/core/edm/v4/annotation/If.java | 55 +++
.../client/core/edm/v4/annotation/IsOf.java | 89 ++++
.../edm/v4/annotation/IsOfDeserializer.java | 62 +++
.../core/edm/v4/annotation/LabeledElement.java | 48 ++
.../annotation/LabeledElementDeserializer.java | 53 ++
.../v4/annotation/LabeledElementReference.java | 25 +
.../v4/annotation/NavigationPropertyPath.java | 25 +
.../client/core/edm/v4/annotation/Null.java | 28 ++
.../edm/v4/annotation/NullDeserializer.java | 49 ++
.../client/core/edm/v4/annotation/Path.java | 25 +
.../core/edm/v4/annotation/PropertyPath.java | 25 +
.../core/edm/v4/annotation/PropertyValue.java | 48 ++
.../annotation/PropertyValueDeserializer.java | 55 +++
.../client/core/edm/v4/annotation/Record.java | 46 ++
.../edm/v4/annotation/RecordDeserializer.java | 53 ++
.../client/core/edm/v4/annotation/UrlRef.java | 38 ++
.../edm/v4/annotation/UrlRefDeserializer.java | 50 ++
.../AbstractBasicAuthHttpClientFactory.java | 50 ++
.../http/AbstractNTLMAuthHttpClientFactory.java | 62 +++
.../core/http/DefaultHttpClientFactory.java | 39 ++
.../core/http/DefaultHttpUriRequestFactory.java | 68 +++
.../odata4/client/core/http/HttpMerge.java | 70 +++
.../odata4/client/core/http/HttpPatch.java | 70 +++
.../client/core/utils/AbstractDOMParser.java | 46 ++
.../client/core/utils/AndroidDOMParserImpl.java | 49 ++
.../client/core/utils/DefaultDOMParserImpl.java | 78 +++
.../odata4/client/core/utils/XMLUtils.java | 186 +++++++
.../odata4/client/core/ODataClientTest.java | 9 +-
.../deserializer/JsonReaderPerformance.java | 22 +-
.../client/core/testutil/StringHelper.java | 108 ----
.../api/edm/constants/ConcurrencyMode.java | 26 +
.../api/edm/constants/EdmContentKind.java | 30 ++
.../api/edm/constants/ODataServiceVersion.java | 85 +++-
.../edm/constants/StoreGeneratedPattern.java | 27 +
.../edm/provider/EdmServiceMetadataImpl.java | 2 +-
.../provider/EdmServiceMetadataImplTest.java | 2 +-
pom.xml | 73 ++-
254 files changed, 16033 insertions(+), 207 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/ODataJClient/engine/src/test/resources/com/msopentech/odatajclient/engine/v4/metadata.xml
----------------------------------------------------------------------
diff --git a/ODataJClient/engine/src/test/resources/com/msopentech/odatajclient/engine/v4/metadata.xml b/ODataJClient/engine/src/test/resources/com/msopentech/odatajclient/engine/v4/metadata.xml
index 5f4c512..3f992ac 100644
--- a/ODataJClient/engine/src/test/resources/com/msopentech/odatajclient/engine/v4/metadata.xml
+++ b/ODataJClient/engine/src/test/resources/com/msopentech/odatajclient/engine/v4/metadata.xml
@@ -19,4 +19,214 @@
under the License.
-->
-<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx"><edmx:DataServices m:DataServiceVersion="4.0" m:MaxDataServiceVersion="4.0" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata"><Schema Namespace="Microsoft.Exchange.Services.OData.Model" xmlns="http://docs.oasis-open.org/odata/ns/edm"><EnumType Name="BodyType"><Member Name="Text" Value="0" /><Member Name="HTML" Value="1" /></EnumType><EnumType Name="Importance"><Member Name="Normal" Value="0" /><Member Name="Low" Value="1" /><Member Name="High" Value="2" /></EnumType><EnumType Name="AttendeeType"><Member Name="Required" Value="1" /><Member Name="Optional" Value="2" /><Member Name="Resource" Value="3" /></EnumType><EnumType Name="ResponseType"><Member Name="None" Value="0" /><Member Name="Organizer" Value="1" /><Member Name="TentativelyAccepted" Value="2" /><Member Name="Accepted" Value="3" /><Member Name="Declined" Value="4" /><Member Name="NotResponded" Value="5" /></EnumType><EnumType Name="EventTyp
e"><Member Name="SingleInstance" Value="0" /><Member Name="Occurrence" Value="1" /><Member Name="Exception" Value="2" /><Member Name="SeriesMaster" Value="3" /></EnumType><EnumType Name="FreeBusyStatus"><Member Name="Free" Value="0" /><Member Name="Tentative" Value="1" /><Member Name="Busy" Value="2" /><Member Name="Oof" Value="3" /><Member Name="WorkingElsewhere" Value="4" /><Member Name="Unknown" Value="-1" /></EnumType><ComplexType Name="Recipient"><Property Name="Name" Type="Edm.String" /><Property Name="Address" Type="Edm.String" /></ComplexType><ComplexType Name="Attendee" BaseType="Microsoft.Exchange.Services.OData.Model.Recipient"><Property Name="Status" Type="Microsoft.Exchange.Services.OData.Model.ResponseStatus" /><Property Name="Type" Type="Microsoft.Exchange.Services.OData.Model.AttendeeType" /></ComplexType><ComplexType Name="ItemBody"><Property Name="ContentType" Type="Microsoft.Exchange.Services.OData.Model.BodyType" /><Property Name="Content" Type="Edm.String" /></C
omplexType><ComplexType Name="Location"><Property Name="DisplayName" Type="Edm.String" /></ComplexType><ComplexType Name="ResponseStatus" BaseType="Microsoft.Exchange.Services.OData.Model.Recipient"><Property Name="Response" Type="Microsoft.Exchange.Services.OData.Model.ResponseType" /><Property Name="Time" Type="Edm.DateTimeOffset" /></ComplexType><EntityType Name="Entity" Abstract="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.String" Nullable="false" /></EntityType><EntityType Name="User" BaseType="Microsoft.Exchange.Services.OData.Model.Entity"><Property Name="DisplayName" Type="Edm.String" /><Property Name="Alias" Type="Edm.String" /><Property Name="MailboxGuid" Type="Edm.Guid" /><NavigationProperty Name="Folders" Type="Collection(Microsoft.Exchange.Services.OData.Model.Folder)" /><NavigationProperty Name="Messages" Type="Collection(Microsoft.Exchange.Services.OData.Model.EmailMessage)" /><NavigationProperty Name="RootFolder" Type="Microsoft.Exchange.S
ervices.OData.Model.Folder" /><NavigationProperty Name="Inbox" Type="Microsoft.Exchange.Services.OData.Model.Folder" /><NavigationProperty Name="Drafts" Type="Microsoft.Exchange.Services.OData.Model.Folder" /><NavigationProperty Name="SentItems" Type="Microsoft.Exchange.Services.OData.Model.Folder" /><NavigationProperty Name="DeletedItems" Type="Microsoft.Exchange.Services.OData.Model.Folder" /><NavigationProperty Name="Calendars" Type="Collection(Microsoft.Exchange.Services.OData.Model.Calendar)" /><NavigationProperty Name="CalendarGroups" Type="Collection(Microsoft.Exchange.Services.OData.Model.CalendarGroup)" /><NavigationProperty Name="Events" Type="Collection(Microsoft.Exchange.Services.OData.Model.Event)" /></EntityType><EntityType Name="Folder" BaseType="Microsoft.Exchange.Services.OData.Model.Entity"><Property Name="ParentFolderId" Type="Edm.String" /><Property Name="DisplayName" Type="Edm.String" /><Property Name="ClassName" Type="Edm.String" /><Property Name="TotalCount" T
ype="Edm.Int32" /><Property Name="ChildFolderCount" Type="Edm.Int32" /><Property Name="UnreadItemCount" Type="Edm.Int32" /><NavigationProperty Name="ChildFolders" Type="Collection(Microsoft.Exchange.Services.OData.Model.Folder)" /><NavigationProperty Name="Messages" Type="Collection(Microsoft.Exchange.Services.OData.Model.EmailMessage)" /></EntityType><Action Name="Copy" IsBound="true" EntitySetPath="bindingParameter" ReturnType="Microsoft.Exchange.Services.OData.Model.Folder"><Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Folder" /><Parameter Name="DestinationId" Type="Edm.String" /></Action><Action Name="Move" IsBound="true" EntitySetPath="bindingParameter" ReturnType="Microsoft.Exchange.Services.OData.Model.Folder"><Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Folder" /><Parameter Name="DestinationId" Type="Edm.String" /></Action><EntityType Name="Item" BaseType="Microsoft.Exchange.Services.OData.Model.Entity" A
bstract="true"><Property Name="ChangeKey" Type="Edm.String" /><Property Name="ClassName" Type="Edm.String" /><Property Name="Subject" Type="Edm.String" /><Property Name="Body" Type="Microsoft.Exchange.Services.OData.Model.ItemBody" /><Property Name="BodyPreview" Type="Edm.String" /><Property Name="Importance" Type="Microsoft.Exchange.Services.OData.Model.Importance" /><Property Name="Categories" Type="Collection(Edm.String)" /><Property Name="HasAttachments" Type="Edm.Boolean" /><Property Name="DateTimeCreated" Type="Edm.DateTimeOffset" /><Property Name="LastModifiedTime" Type="Edm.DateTimeOffset" /><NavigationProperty Name="Attachments" Type="Collection(Microsoft.Exchange.Services.OData.Model.Attachment)" /></EntityType><EntityType Name="EmailMessage" BaseType="Microsoft.Exchange.Services.OData.Model.Item"><Property Name="ParentFolderId" Type="Edm.String" /><Property Name="From" Type="Microsoft.Exchange.Services.OData.Model.Recipient" /><Property Name="Sender" Type="Microsoft.Excha
nge.Services.OData.Model.Recipient" /><Property Name="ToRecipients" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" /><Property Name="CcRecipients" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" /><Property Name="BccRecipients" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" /><Property Name="ReplyTo" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" /><Property Name="ConversationIndex" Type="Edm.String" /><Property Name="UniqueBody" Type="Microsoft.Exchange.Services.OData.Model.ItemBody" /><Property Name="DateTimeReceived" Type="Edm.DateTimeOffset" /><Property Name="DateTimeSent" Type="Edm.DateTimeOffset" /><Property Name="IsDeliveryReceiptRequested" Type="Edm.Boolean" /><Property Name="IsReadReceiptRequested" Type="Edm.Boolean" /><Property Name="IsDraft" Type="Edm.Boolean" /><Property Name="IsRead" Type="Edm.Boolean" /></EntityType><Action Name="Copy" IsBound="true" EntitySetPath="bindingParameter"
ReturnType="Microsoft.Exchange.Services.OData.Model.EmailMessage"><Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.EmailMessage" /><Parameter Name="DestinationId" Type="Edm.String" /></Action><Action Name="Move" IsBound="true" EntitySetPath="bindingParameter" ReturnType="Microsoft.Exchange.Services.OData.Model.EmailMessage"><Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.EmailMessage" /><Parameter Name="DestinationId" Type="Edm.String" /></Action><EntityType Name="Attachment" BaseType="Microsoft.Exchange.Services.OData.Model.Entity" Abstract="true"><Property Name="Name" Type="Edm.String" /><Property Name="ContentType" Type="Edm.String" /><Property Name="IsInline" Type="Edm.Boolean" Nullable="false" /><Property Name="LastModifiedTime" Type="Edm.DateTimeOffset" /></EntityType><EntityType Name="FileAttachment" BaseType="Microsoft.Exchange.Services.OData.Model.Attachment"><Property Name="ContentId" Type="Edm.String" /><Pro
perty Name="ContentLocation" Type="Edm.String" /><Property Name="Size" Type="Edm.Int32" Nullable="false" /><Property Name="IsContactPhoto" Type="Edm.Boolean" Nullable="false" /><Property Name="ContentBytes" Type="Edm.Binary" MaxLength="Max" FixedLength="false" /></EntityType><EntityType Name="ItemAttachment" BaseType="Microsoft.Exchange.Services.OData.Model.Attachment"><NavigationProperty Name="Item" Type="Microsoft.Exchange.Services.OData.Model.Item" /></EntityType><EntityType Name="Calendar" BaseType="Microsoft.Exchange.Services.OData.Model.Entity"><Property Name="Name" Type="Edm.String" /><Property Name="ChangeKey" Type="Edm.String" /><NavigationProperty Name="Events" Type="Collection(Microsoft.Exchange.Services.OData.Model.Event)" /></EntityType><EntityType Name="CalendarGroup" BaseType="Microsoft.Exchange.Services.OData.Model.Entity"><Property Name="Name" Type="Edm.String" /><Property Name="ChangeKey" Type="Edm.String" /><Property Name="ClassId" Type="Edm.Guid" /></EntityType><
EntityType Name="Event" BaseType="Microsoft.Exchange.Services.OData.Model.Item"><Property Name="Start" Type="Edm.DateTimeOffset" /><Property Name="End" Type="Edm.DateTimeOffset" /><Property Name="Location" Type="Microsoft.Exchange.Services.OData.Model.Location" /><Property Name="ShowAs" Type="Microsoft.Exchange.Services.OData.Model.FreeBusyStatus" /><Property Name="IsAllDay" Type="Edm.Boolean" /><Property Name="IsCancelled" Type="Edm.Boolean" /><Property Name="IsOrganizer" Type="Edm.Boolean" /><Property Name="ResponseRequested" Type="Edm.Boolean" /><Property Name="Type" Type="Microsoft.Exchange.Services.OData.Model.EventType" /><Property Name="SeriesId" Type="Edm.String" /><Property Name="Attendees" Type="Collection(Microsoft.Exchange.Services.OData.Model.Attendee)" /><NavigationProperty Name="Calendar" Type="Microsoft.Exchange.Services.OData.Model.Calendar" /></EntityType><EntityContainer Name="EntityContainer" m:IsDefaultEntityContainer="true"><EntitySet Name="Users" EntityType="M
icrosoft.Exchange.Services.OData.Model.User"><NavigationPropertyBinding Path="Folders" Target="Folders" /><NavigationPropertyBinding Path="Messages" Target="Messages" /><NavigationPropertyBinding Path="RootFolder" Target="Folders" /><NavigationPropertyBinding Path="Inbox" Target="Folders" /><NavigationPropertyBinding Path="Drafts" Target="Folders" /><NavigationPropertyBinding Path="SentItems" Target="Folders" /><NavigationPropertyBinding Path="DeletedItems" Target="Folders" /><NavigationPropertyBinding Path="Calendars" Target="Calendars" /><NavigationPropertyBinding Path="CalendarGroups" Target="CalendarGroups" /><NavigationPropertyBinding Path="Events" Target="Events" /></EntitySet><EntitySet Name="Folders" EntityType="Microsoft.Exchange.Services.OData.Model.Folder"><NavigationPropertyBinding Path="ChildFolders" Target="Folders" /><NavigationPropertyBinding Path="Messages" Target="Messages" /></EntitySet><EntitySet Name="Items" EntityType="Microsoft.Exchange.Services.OData.Model.It
em" /><EntitySet Name="Messages" EntityType="Microsoft.Exchange.Services.OData.Model.EmailMessage"><NavigationPropertyBinding Path="Attachments" Target="Attachments" /></EntitySet><EntitySet Name="Attachments" EntityType="Microsoft.Exchange.Services.OData.Model.Attachment"><NavigationPropertyBinding Path="Microsoft.Exchange.Services.OData.Model.ItemAttachment/Item" Target="Items" /></EntitySet><EntitySet Name="Calendars" EntityType="Microsoft.Exchange.Services.OData.Model.Calendar"><NavigationPropertyBinding Path="Events" Target="Events" /></EntitySet><EntitySet Name="CalendarGroups" EntityType="Microsoft.Exchange.Services.OData.Model.CalendarGroup" /><EntitySet Name="Events" EntityType="Microsoft.Exchange.Services.OData.Model.Event"><NavigationPropertyBinding Path="Attachments" Target="Attachments" /><NavigationPropertyBinding Path="Calendar" Target="Calendars" /></EntitySet></EntityContainer></Schema></edmx:DataServices></edmx:Edmx>
\ No newline at end of file
+<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
+ <edmx:DataServices m:DataServiceVersion="4.0" m:MaxDataServiceVersion="4.0" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata">
+ <Schema Namespace="Microsoft.Exchange.Services.OData.Model" xmlns="http://docs.oasis-open.org/odata/ns/edm">
+ <EnumType Name="BodyType">
+ <Member Name="Text" Value="0" />
+ <Member Name="HTML" Value="1" />
+ </EnumType>
+ <EnumType Name="Importance">
+ <Member Name="Normal" Value="0" />
+ <Member Name="Low" Value="1" />
+ <Member Name="High" Value="2" />
+ </EnumType>
+ <EnumType Name="AttendeeType">
+ <Member Name="Required" Value="1" />
+ <Member Name="Optional" Value="2" />
+ <Member Name="Resource" Value="3" />
+ </EnumType>
+ <EnumType Name="ResponseType">
+ <Member Name="None" Value="0" />
+ <Member Name="Organizer" Value="1" />
+ <Member Name="TentativelyAccepted" Value="2" />
+ <Member Name="Accepted" Value="3" />
+ <Member Name="Declined" Value="4" />
+ <Member Name="NotResponded" Value="5" />
+ </EnumType>
+ <EnumType Name="EventType">
+ <Member Name="SingleInstance" Value="0" />
+ <Member Name="Occurrence" Value="1" />
+ <Member Name="Exception" Value="2" />
+ <Member Name="SeriesMaster" Value="3" />
+ </EnumType>
+ <EnumType Name="FreeBusyStatus">
+ <Member Name="Free" Value="0" />
+ <Member Name="Tentative" Value="1" />
+ <Member Name="Busy" Value="2" />
+ <Member Name="Oof" Value="3" />
+ <Member Name="WorkingElsewhere" Value="4" />
+ <Member Name="Unknown" Value="-1" />
+ </EnumType>
+ <ComplexType Name="Recipient">
+ <Property Name="Name" Type="Edm.String" />
+ <Property Name="Address" Type="Edm.String" />
+ </ComplexType>
+ <ComplexType Name="Attendee" BaseType="Microsoft.Exchange.Services.OData.Model.Recipient">
+ <Property Name="Status" Type="Microsoft.Exchange.Services.OData.Model.ResponseStatus" />
+ <Property Name="Type" Type="Microsoft.Exchange.Services.OData.Model.AttendeeType" />
+ </ComplexType>
+ <ComplexType Name="ItemBody">
+ <Property Name="ContentType" Type="Microsoft.Exchange.Services.OData.Model.BodyType" />
+ <Property Name="Content" Type="Edm.String" />
+ </ComplexType>
+ <ComplexType Name="Location">
+ <Property Name="DisplayName" Type="Edm.String" />
+ </ComplexType>
+ <ComplexType Name="ResponseStatus" BaseType="Microsoft.Exchange.Services.OData.Model.Recipient">
+ <Property Name="Response" Type="Microsoft.Exchange.Services.OData.Model.ResponseType" />
+ <Property Name="Time" Type="Edm.DateTimeOffset" />
+ </ComplexType>
+ <EntityType Name="Entity" Abstract="true">
+ <Key>
+ <PropertyRef Name="Id" />
+ </Key>
+ <Property Name="Id" Type="Edm.String" Nullable="false" />
+ </EntityType>
+ <EntityType Name="User" BaseType="Microsoft.Exchange.Services.OData.Model.Entity">
+ <Property Name="DisplayName" Type="Edm.String" />
+ <Property Name="Alias" Type="Edm.String" />
+ <Property Name="MailboxGuid" Type="Edm.Guid" />
+ <NavigationProperty Name="Folders" Type="Collection(Microsoft.Exchange.Services.OData.Model.Folder)" />
+ <NavigationProperty Name="Messages" Type="Collection(Microsoft.Exchange.Services.OData.Model.EmailMessage)" />
+ <NavigationProperty Name="RootFolder" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+ <NavigationProperty Name="Inbox" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+ <NavigationProperty Name="Drafts" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+ <NavigationProperty Name="SentItems" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+ <NavigationProperty Name="DeletedItems" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+ <NavigationProperty Name="Calendars" Type="Collection(Microsoft.Exchange.Services.OData.Model.Calendar)" />
+ <NavigationProperty Name="CalendarGroups" Type="Collection(Microsoft.Exchange.Services.OData.Model.CalendarGroup)" />
+ <NavigationProperty Name="Events" Type="Collection(Microsoft.Exchange.Services.OData.Model.Event)" />
+ </EntityType>
+ <EntityType Name="Folder" BaseType="Microsoft.Exchange.Services.OData.Model.Entity">
+ <Property Name="ParentFolderId" Type="Edm.String" />
+ <Property Name="DisplayName" Type="Edm.String" />
+ <Property Name="ClassName" Type="Edm.String" />
+ <Property Name="TotalCount" Type="Edm.Int32" />
+ <Property Name="ChildFolderCount" Type="Edm.Int32" />
+ <Property Name="UnreadItemCount" Type="Edm.Int32" />
+ <NavigationProperty Name="ChildFolders" Type="Collection(Microsoft.Exchange.Services.OData.Model.Folder)" />
+ <NavigationProperty Name="Messages" Type="Collection(Microsoft.Exchange.Services.OData.Model.EmailMessage)" />
+ </EntityType>
+ <Action Name="Copy" IsBound="true" EntitySetPath="bindingParameter" ReturnType="Microsoft.Exchange.Services.OData.Model.Folder">
+ <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+ <Parameter Name="DestinationId" Type="Edm.String" />
+ </Action>
+ <Action Name="Move" IsBound="true" EntitySetPath="bindingParameter" ReturnType="Microsoft.Exchange.Services.OData.Model.Folder">
+ <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+ <Parameter Name="DestinationId" Type="Edm.String" />
+ </Action>
+ <EntityType Name="Item" BaseType="Microsoft.Exchange.Services.OData.Model.Entity" Abstract="true">
+ <Property Name="ChangeKey" Type="Edm.String" />
+ <Property Name="ClassName" Type="Edm.String" />
+ <Property Name="Subject" Type="Edm.String" />
+ <Property Name="Body" Type="Microsoft.Exchange.Services.OData.Model.ItemBody" />
+ <Property Name="BodyPreview" Type="Edm.String" />
+ <Property Name="Importance" Type="Microsoft.Exchange.Services.OData.Model.Importance" />
+ <Property Name="Categories" Type="Collection(Edm.String)" />
+ <Property Name="HasAttachments" Type="Edm.Boolean" />
+ <Property Name="DateTimeCreated" Type="Edm.DateTimeOffset" />
+ <Property Name="LastModifiedTime" Type="Edm.DateTimeOffset" />
+ <NavigationProperty Name="Attachments" Type="Collection(Microsoft.Exchange.Services.OData.Model.Attachment)" />
+ </EntityType>
+ <EntityType Name="EmailMessage" BaseType="Microsoft.Exchange.Services.OData.Model.Item">
+ <Property Name="ParentFolderId" Type="Edm.String" />
+ <Property Name="From" Type="Microsoft.Exchange.Services.OData.Model.Recipient" />
+ <Property Name="Sender" Type="Microsoft.Exchange.Services.OData.Model.Recipient" />
+ <Property Name="ToRecipients" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" />
+ <Property Name="CcRecipients" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" />
+ <Property Name="BccRecipients" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" />
+ <Property Name="ReplyTo" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" />
+ <Property Name="ConversationIndex" Type="Edm.String" />
+ <Property Name="UniqueBody" Type="Microsoft.Exchange.Services.OData.Model.ItemBody" />
+ <Property Name="DateTimeReceived" Type="Edm.DateTimeOffset" />
+ <Property Name="DateTimeSent" Type="Edm.DateTimeOffset" />
+ <Property Name="IsDeliveryReceiptRequested" Type="Edm.Boolean" />
+ <Property Name="IsReadReceiptRequested" Type="Edm.Boolean" />
+ <Property Name="IsDraft" Type="Edm.Boolean" />
+ <Property Name="IsRead" Type="Edm.Boolean" />
+ </EntityType>
+ <Action Name="Copy" IsBound="true" EntitySetPath="bindingParameter" ReturnType="Microsoft.Exchange.Services.OData.Model.EmailMessage">
+ <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.EmailMessage" />
+ <Parameter Name="DestinationId" Type="Edm.String" />
+ </Action>
+ <Action Name="Move" IsBound="true" EntitySetPath="bindingParameter" ReturnType="Microsoft.Exchange.Services.OData.Model.EmailMessage">
+ <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.EmailMessage" />
+ <Parameter Name="DestinationId" Type="Edm.String" />
+ </Action>
+ <EntityType Name="Attachment" BaseType="Microsoft.Exchange.Services.OData.Model.Entity" Abstract="true">
+ <Property Name="Name" Type="Edm.String" />
+ <Property Name="ContentType" Type="Edm.String" />
+ <Property Name="IsInline" Type="Edm.Boolean" Nullable="false" />
+ <Property Name="LastModifiedTime" Type="Edm.DateTimeOffset" />
+ </EntityType>
+ <EntityType Name="FileAttachment" BaseType="Microsoft.Exchange.Services.OData.Model.Attachment">
+ <Property Name="ContentId" Type="Edm.String" />
+ <Property Name="ContentLocation" Type="Edm.String" />
+ <Property Name="Size" Type="Edm.Int32" Nullable="false" />
+ <Property Name="IsContactPhoto" Type="Edm.Boolean" Nullable="false" />
+ <Property Name="ContentBytes" Type="Edm.Binary" MaxLength="Max" FixedLength="false" />
+ </EntityType>
+ <EntityType Name="ItemAttachment" BaseType="Microsoft.Exchange.Services.OData.Model.Attachment">
+ <NavigationProperty Name="Item" Type="Microsoft.Exchange.Services.OData.Model.Item" />
+ </EntityType>
+ <EntityType Name="Calendar" BaseType="Microsoft.Exchange.Services.OData.Model.Entity">
+ <Property Name="Name" Type="Edm.String" />
+ <Property Name="ChangeKey" Type="Edm.String" />
+ <NavigationProperty Name="Events" Type="Collection(Microsoft.Exchange.Services.OData.Model.Event)" />
+ </EntityType>
+ <EntityType Name="CalendarGroup" BaseType="Microsoft.Exchange.Services.OData.Model.Entity">
+ <Property Name="Name" Type="Edm.String" />
+ <Property Name="ChangeKey" Type="Edm.String" />
+ <Property Name="ClassId" Type="Edm.Guid" />
+ </EntityType>
+ <EntityType Name="Event" BaseType="Microsoft.Exchange.Services.OData.Model.Item">
+ <Property Name="Start" Type="Edm.DateTimeOffset" />
+ <Property Name="End" Type="Edm.DateTimeOffset" />
+ <Property Name="Location" Type="Microsoft.Exchange.Services.OData.Model.Location" />
+ <Property Name="ShowAs" Type="Microsoft.Exchange.Services.OData.Model.FreeBusyStatus" />
+ <Property Name="IsAllDay" Type="Edm.Boolean" />
+ <Property Name="IsCancelled" Type="Edm.Boolean" />
+ <Property Name="IsOrganizer" Type="Edm.Boolean" />
+ <Property Name="ResponseRequested" Type="Edm.Boolean" />
+ <Property Name="Type" Type="Microsoft.Exchange.Services.OData.Model.EventType" />
+ <Property Name="SeriesId" Type="Edm.String" />
+ <Property Name="Attendees" Type="Collection(Microsoft.Exchange.Services.OData.Model.Attendee)" />
+ <NavigationProperty Name="Calendar" Type="Microsoft.Exchange.Services.OData.Model.Calendar" />
+ </EntityType>
+ <EntityContainer Name="EntityContainer" m:IsDefaultEntityContainer="true">
+ <EntitySet Name="Users" EntityType="Microsoft.Exchange.Services.OData.Model.User">
+ <NavigationPropertyBinding Path="Folders" Target="Folders" />
+ <NavigationPropertyBinding Path="Messages" Target="Messages" />
+ <NavigationPropertyBinding Path="RootFolder" Target="Folders" />
+ <NavigationPropertyBinding Path="Inbox" Target="Folders" />
+ <NavigationPropertyBinding Path="Drafts" Target="Folders" />
+ <NavigationPropertyBinding Path="SentItems" Target="Folders" />
+ <NavigationPropertyBinding Path="DeletedItems" Target="Folders" />
+ <NavigationPropertyBinding Path="Calendars" Target="Calendars" />
+ <NavigationPropertyBinding Path="CalendarGroups" Target="CalendarGroups" />
+ <NavigationPropertyBinding Path="Events" Target="Events" />
+ </EntitySet>
+ <EntitySet Name="Folders" EntityType="Microsoft.Exchange.Services.OData.Model.Folder">
+ <NavigationPropertyBinding Path="ChildFolders" Target="Folders" />
+ <NavigationPropertyBinding Path="Messages" Target="Messages" />
+ </EntitySet>
+ <EntitySet Name="Items" EntityType="Microsoft.Exchange.Services.OData.Model.Item" />
+ <EntitySet Name="Messages" EntityType="Microsoft.Exchange.Services.OData.Model.EmailMessage">
+ <NavigationPropertyBinding Path="Attachments" Target="Attachments" />
+ </EntitySet>
+ <EntitySet Name="Attachments" EntityType="Microsoft.Exchange.Services.OData.Model.Attachment">
+ <NavigationPropertyBinding Path="Microsoft.Exchange.Services.OData.Model.ItemAttachment/Item" Target="Items" />
+ </EntitySet>
+ <EntitySet Name="Calendars" EntityType="Microsoft.Exchange.Services.OData.Model.Calendar">
+ <NavigationPropertyBinding Path="Events" Target="Events" />
+ </EntitySet>
+ <EntitySet Name="CalendarGroups" EntityType="Microsoft.Exchange.Services.OData.Model.CalendarGroup" />
+ <EntitySet Name="Events" EntityType="Microsoft.Exchange.Services.OData.Model.Event">
+ <NavigationPropertyBinding Path="Attachments" Target="Attachments" />
+ <NavigationPropertyBinding Path="Calendar" Target="Calendars" />
+ </EntitySet>
+ </EntityContainer>
+ </Schema>
+ </edmx:DataServices>
+</edmx:Edmx>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/odata4-lib/odata4-client-api/pom.xml
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/pom.xml b/odata4-lib/odata4-client-api/pom.xml
index c8bcbf7..5d56f03 100644
--- a/odata4-lib/odata4-client-api/pom.xml
+++ b/odata4-lib/odata4-client-api/pom.xml
@@ -40,6 +40,11 @@
<artifactId>olingo-odata4-commons-api-incubating</artifactId>
<version>${project.version}</version>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ </dependency>
</dependencies>
</project>
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/Configuration.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/Configuration.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/Configuration.java
new file mode 100644
index 0000000..521c5a7
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/Configuration.java
@@ -0,0 +1,201 @@
+/*
+ * 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.odata4.client.api;
+
+import org.apache.olingo.odata4.client.api.http.HttpUriRequestFactory;
+import org.apache.olingo.odata4.client.api.http.HttpClientFactory;
+import java.io.Serializable;
+import java.util.concurrent.ExecutorService;
+import org.apache.olingo.odata4.client.api.format.ODataFormat;
+import org.apache.olingo.odata4.client.api.format.ODataMediaFormat;
+import org.apache.olingo.odata4.client.api.format.ODataPubFormat;
+import org.apache.olingo.odata4.client.api.format.ODataValueFormat;
+
+/**
+ * Configuration wrapper.
+ */
+public interface Configuration extends Serializable {
+
+ /**
+ * Gets the configured OData format for AtomPub exchanges. If this configuration parameter doesn't exist the
+ * JSON_FULL_METADATA format will be used as default.
+ *
+ * @return configured OData format for AtomPub if specified; JSON_FULL_METADATA format otherwise.
+ * @see ODataPubFormat#JSON_FULL_METADATA
+ */
+ ODataPubFormat getDefaultPubFormat();
+
+ /**
+ * Sets the default OData format for AtomPub exchanges.
+ *
+ * @param format default format.
+ */
+ void setDefaultPubFormat(ODataPubFormat format);
+
+ /**
+ * Gets the configured OData format. This value depends on what is returned from <tt>getDefaultPubFormat()</tt>.
+ *
+ * @return configured OData format
+ * @see #getDefaultPubFormat()
+ */
+ ODataFormat getDefaultFormat();
+
+ /**
+ * Gets the configured OData value format. If this configuration parameter doesn't exist the TEXT format will be used
+ * as default.
+ *
+ * @return configured OData value format if specified; TEXT format otherwise.
+ * @see ODataValueFormat#TEXT
+ */
+ ODataValueFormat getDefaultValueFormat();
+
+ /**
+ * Sets the default OData value format.
+ *
+ * @param format default format.
+ */
+ void setDefaultValueFormat(ODataValueFormat format);
+
+ /**
+ * Gets the configured OData media format. If this configuration parameter doesn't exist the APPLICATION_OCTET_STREAM
+ * format will be used as default.
+ *
+ * @return configured OData media format if specified; APPLICATION_OCTET_STREAM format otherwise.
+ * @see ODataMediaFormat#WILDCARD
+ */
+ ODataMediaFormat getDefaultMediaFormat();
+
+ /**
+ * Sets the default OData media format.
+ *
+ * @param format default format.
+ */
+ void setDefaultMediaFormat(ODataMediaFormat format);
+
+ /**
+ * Gets the HttpClient factory to be used for executing requests.
+ *
+ * @return provided implementation (if configured via <tt>setHttpClientFactory</tt> or default.
+ * @see DefaultHttpClientFactory
+ */
+ HttpClientFactory getHttpClientFactory();
+
+ /**
+ * Sets the HttpClient factory to be used for executing requests.
+ *
+ * @param factory implementation of <tt>HttpClientFactory</tt>.
+ * @see HttpClientFactory
+ */
+ void setHttpClientFactory(HttpClientFactory factory);
+
+ /**
+ * Gets the HttpUriRequest factory for generating requests to be executed.
+ *
+ * @return provided implementation (if configured via <tt>setHttpUriRequestFactory</tt> or default.
+ * @see DefaultHttpUriRequestFactory
+ */
+ HttpUriRequestFactory getHttpUriRequestFactory();
+
+ /**
+ * Sets the HttpUriRequest factory generating requests to be executed.
+ *
+ * @param factory implementation of <tt>HttpUriRequestFactory</tt>.
+ * @see HttpUriRequestFactory
+ */
+ void setHttpUriRequestFactory(HttpUriRequestFactory factory);
+
+ /**
+ * Gets whether <tt>PUT</tt>, <tt>MERGE</tt>, <tt>PATCH</tt>, <tt>DELETE</tt> HTTP methods need to be translated to
+ * <tt>POST</tt> with additional <tt>X-HTTTP-Method</tt> header.
+ *
+ * @return whether <tt>X-HTTTP-Method</tt> header is to be used
+ */
+ boolean isUseXHTTPMethod();
+
+ /**
+ * Sets whether <tt>PUT</tt>, <tt>MERGE</tt>, <tt>PATCH</tt>, <tt>DELETE</tt> HTTP methods need to be translated to
+ * <tt>POST</tt> with additional <tt>X-HTTTP-Method</tt> header.
+ *
+ * @param value 'TRUE' to use tunneling.
+ */
+ void setUseXHTTPMethod(boolean value);
+
+ /**
+ * Checks whether URIs contain entity key between parentheses (standard) or instead as additional segment. Example:
+ * http://services.odata.org/V4/OData/OData.svc/Products(0) or http://services.odata.org/V4/OData/OData.svc/Products/0
+ *
+ * @return whether URIs shall be built with entity key between parentheses (standard) or instead as additional
+ * segment.
+ */
+ boolean isKeyAsSegment();
+
+ /**
+ * Sets whether URIs shall be built with entity key between parentheses (standard) or instead as additional segment.
+ * Example: http://services.odata.org/V4/OData/OData.svc/Products(0) or
+ * http://services.odata.org/V4/OData/OData.svc/Products/0
+ *
+ * @param value 'TRUE' to use this feature.
+ */
+ void setKeyAsSegment(boolean value);
+
+ /**
+ * Checks whether Gzip compression (e.g. support for <tt>Accept-Encoding: gzip</tt> and
+ * <tt>Content-Encoding: gzip</tt> HTTP headers) is enabled.
+ *
+ * @return whether HTTP Gzip compression is enabled
+ */
+ boolean isGzipCompression();
+
+ /**
+ * Sets Gzip compression (e.g. support for <tt>Accept-Encoding: gzip</tt> and
+ * <tt>Content-Encoding: gzip</tt> HTTP headers) enabled or disabled.
+ *
+ * @param value whether to use Gzip compression.
+ */
+ void setGzipCompression(boolean value);
+
+ /**
+ * Checks whether chunk HTTP encoding is being used.
+ *
+ * @return whether chunk HTTP encoding is being used
+ */
+ boolean isUseChuncked();
+
+ /**
+ * Sets chunk HTTP encoding enabled or disabled.
+ *
+ * @param value whether to use chunk HTTP encoding.
+ */
+ void setUseChuncked(boolean value);
+
+ /**
+ * Retrieves request executor service.
+ *
+ * @return request executor service.
+ */
+ ExecutorService getExecutor();
+
+ /**
+ * Sets request executor service.
+ *
+ * @param executorService new executor services.
+ */
+ void setExecutor(ExecutorService executorService);
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/Constants.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/Constants.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/Constants.java
new file mode 100644
index 0000000..9345057
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/Constants.java
@@ -0,0 +1,217 @@
+/*
+ * 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.odata4.client.api;
+
+import javax.xml.XMLConstants;
+
+/**
+ * Constant values related to the OData protocol.
+ */
+public class Constants {
+
+ // Other stuff
+ public final static String UTF8 = "UTF-8";
+
+ public final static String NAME = "name";
+
+ public final static String PROPERTIES = "properties";
+
+ // XML namespaces and prefixes
+ public final static String NS_ATOM = "http://www.w3.org/2005/Atom";
+
+ public static final String NS_GEORSS = "http://www.georss.org/georss";
+
+ public static final String NS_GML = "http://www.opengis.net/gml";
+
+ public static final String XMLNS_DATASERVICES = XMLConstants.XMLNS_ATTRIBUTE + ":d";
+
+ public static final String PREFIX_DATASERVICES = "d:";
+
+ public static final String XMLNS_METADATA = XMLConstants.XMLNS_ATTRIBUTE + ":m";
+
+ public static final String PREFIX_METADATA = "m:";
+
+ public static final String XMLNS_GEORSS = XMLConstants.XMLNS_ATTRIBUTE + ":georss";
+
+ public static final String PREFIX_GEORSS = "georss:";
+
+ public static final String XMLNS_GML = XMLConstants.XMLNS_ATTRIBUTE + ":gml";
+
+ public static final String PREFIX_GML = "gml:";
+
+ /**
+ * Edit link rel value.
+ */
+ public static final String EDIT_LINK_REL = "edit";
+
+ /**
+ * Self link rel value.
+ */
+ public static final String SELF_LINK_REL = "self";
+
+ public static final String NEXT_LINK_REL = "next";
+
+ // XML elements and attributes
+ public static final String ELEM_PROPERTIES = PREFIX_METADATA + PROPERTIES;
+
+ public static final String ELEM_ELEMENT = "element";
+
+ public final static String ATTR_TYPE = "type";
+
+ public static final String ATTR_M_TYPE = PREFIX_METADATA + ATTR_TYPE;
+
+ public static final String ATTR_NULL = PREFIX_METADATA + "null";
+
+ public static final String ATTR_XMLBASE = "xml:base";
+
+ public static final String ATTR_REL = "rel";
+
+ public static final String ATTR_HREF = "href";
+
+ public static final String ATTR_METADATA = "metadata";
+
+ public static final String ATTR_TITLE = "title";
+
+ public static final String ATTR_TARGET = "target";
+
+ public static final String ELEM_COLLECTION = "collection";
+
+ public static final String ATTR_SRSNAME = PREFIX_GML + "srsName";
+
+ public static final String ELEM_POINT = PREFIX_GML + "Point";
+
+ public static final String ELEM_MULTIPOINT = PREFIX_GML + "MultiPoint";
+
+ public static final String ELEM_POINTMEMBERS = PREFIX_GML + "pointMembers";
+
+ public static final String ELEM_LINESTRING = PREFIX_GML + "LineString";
+
+ public static final String ELEM_MULTILINESTRING = PREFIX_GML + "MultiCurve";
+
+ public static final String ELEM_LINESTRINGMEMBERS = PREFIX_GML + "curveMembers";
+
+ public static final String ELEM_POLYGON = PREFIX_GML + "Polygon";
+
+ public static final String ELEM_POLYGON_EXTERIOR = PREFIX_GML + "exterior";
+
+ public static final String ELEM_POLYGON_INTERIOR = PREFIX_GML + "interior";
+
+ public static final String ELEM_POLYGON_LINEARRING = PREFIX_GML + "LinearRing";
+
+ public static final String ELEM_MULTIPOLYGON = PREFIX_GML + "MultiSurface";
+
+ public static final String ELEM_SURFACEMEMBERS = PREFIX_GML + "surfaceMembers";
+
+ public static final String ELEM_GEOCOLLECTION = PREFIX_GML + "MultiGeometry";
+
+ public static final String ELEM_GEOMEMBERS = PREFIX_GML + "geometryMembers";
+
+ public static final String ELEM_POS = PREFIX_GML + "pos";
+
+ public static final String ELEM_POSLIST = PREFIX_GML + "posList";
+
+ public static final String ELEM_PROPERTY = "property";
+
+ public static final String ELEM_URI = "uri";
+
+ // JSON stuff
+ public final static String JSON_METADATA = "odata.metadata";
+
+ public final static String JSON_TYPE = "odata.type";
+
+ public final static String JSON_ETAG = "odata.etag";
+
+ public final static String JSON_MEDIA_ETAG = "odata.mediaETag";
+
+ public final static String JSON_ID = "odata.id";
+
+ public final static String JSON_READ_LINK = "odata.readLink";
+
+ public final static String JSON_EDIT_LINK = "odata.editLink";
+
+ public final static String JSON_MEDIAREAD_LINK = "odata.mediaReadLink";
+
+ public final static String JSON_MEDIAEDIT_LINK = "odata.mediaEditLink";
+
+ public final static String JSON_MEDIA_CONTENT_TYPE = "odata.mediaContentType";
+
+ public final static String JSON_NAVIGATION_LINK_SUFFIX = "@odata.navigationLinkUrl";
+
+ public final static String JSON_BIND_LINK_SUFFIX = "@odata.bind";
+
+ public final static String JSON_ASSOCIATION_LINK_SUFFIX = "@odata.associationLinkUrl";
+
+ public final static String JSON_MEDIAEDIT_LINK_SUFFIX = "@odata.mediaEditLink";
+
+ public final static String JSON_VALUE = "value";
+
+ public final static String JSON_URL = "url";
+
+ public final static String JSON_COORDINATES = "coordinates";
+
+ public final static String JSON_GEOMETRIES = "geometries";
+
+ public final static String JSON_CRS = "crs";
+
+ public final static String JSON_GIS_URLPREFIX = "http://www.opengis.net/def/crs/EPSG/0/";
+
+ // Atom stuff
+ public final static String ATOM_ELEM_ENTRY = "entry";
+
+ public final static String ATOM_ELEM_FEED = "feed";
+
+ public final static String ATOM_ELEM_CATEGORY = "category";
+
+ public final static String ATOM_ELEM_ID = "id";
+
+ public final static String ATOM_ELEM_LINK = "link";
+
+ public final static String ATOM_ELEM_CONTENT = "content";
+
+ public static final String ATOM_ELEM_TITLE = "title";
+
+ public static final String ATOM_ELEM_SUMMARY = "summary";
+
+ public static final String ATOM_ELEM_UPDATED = "updated";
+
+ public static final String ATOM_ELEM_AUTHOR = "author";
+
+ public static final String ATOM_ELEM_AUTHOR_NAME = "name";
+
+ public static final String ATOM_ELEM_AUTHOR_URI = "uri";
+
+ public static final String ATOM_ELEM_AUTHOR_EMAIL = "email";
+
+ public static final String ATOM_ELEM_ACTION = PREFIX_METADATA + "action";
+
+ public static final String ATOM_ELEM_INLINE = PREFIX_METADATA + "inline";
+
+ public static final String ATOM_ATTR_TITLE = "atom:title";
+
+ public static final String ATOM_ATTR_TERM = "term";
+
+ public static final String ATOM_ATTR_SCHEME = "scheme";
+
+ public static final String ATOM_ATTR_SRC = "src";
+
+ public static final String ATOM_ATTR_ETAG = PREFIX_METADATA + "etag";
+
+ public static final String ATOM_ATTR_COUNT = PREFIX_METADATA + "count";
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/ODataClient.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/ODataClient.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/ODataClient.java
index 8ee2146..b5a8dec 100644
--- a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/ODataClient.java
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/ODataClient.java
@@ -1,4 +1,4 @@
-/*
+/*
* 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
@@ -18,27 +18,41 @@
*/
package org.apache.olingo.odata4.client.api;
-//TODO: Exceptionhandling
-public abstract class ODataClient {
+import org.apache.olingo.odata4.client.api.data.ODataDeserializer;
+import org.apache.olingo.odata4.client.api.data.ODataReader;
+import org.apache.olingo.odata4.client.api.data.ODataSerializer;
+import org.apache.olingo.odata4.commons.api.edm.constants.ODataServiceVersion;
- private static final String IMPLEMENTATION = "org.apache.olingo.odata4.client.core.ODataClientImpl";
+public interface ODataClient {
- public static ODataClient create() {
- ODataClient instance;
+ ODataServiceVersion getServiceVersion();
- try {
- final Class<?> clazz = Class.forName(ODataClient.IMPLEMENTATION);
+ //ODataHeaders getVersionHeaders();
+ Configuration getConfiguration();
- /*
- * We explicitly do not use the singleton pattern to keep the server state free
- * and avoid class loading issues also during hot deployment.
- */
- final Object object = clazz.newInstance();
- instance = (ODataClient) object;
+// URIBuilder getURIBuilder(String serviceRoot);
+//
+// FilterFactory getFilterFactory();
+//
+ ODataSerializer getSerializer();
+//
+ ODataDeserializer getDeserializer();
- } catch (final Exception e) {
- throw new RuntimeException(e);
- }
- return instance;
- }
+ ODataReader getReader();
+
+// ODataWriter getWriter();
+//
+// ODataBinder getBinder();
+//
+// ODataObjectFactory getObjectFactory();
+//
+// RetrieveRequestFactory getRetrieveRequestFactory();
+//
+// CUDRequestFactory getCUDRequestFactory();
+//
+// StreamedRequestFactory getStreamedRequestFactory();
+//
+// InvokeRequestFactory<?, ?, ?, ?, ?, ?, ?, ?> getInvokeRequestFactory();
+//
+// BatchRequestFactory getBatchRequestFactory();
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/ODataError.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/ODataError.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/ODataError.java
new file mode 100644
index 0000000..4e45cfd
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/ODataError.java
@@ -0,0 +1,67 @@
+/*
+ * 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.odata4.client.api;
+
+/**
+ * OData error.
+ */
+public interface ODataError {
+
+ /**
+ * Gets error code.
+ *
+ * @return error code.
+ */
+ String getCode();
+
+ /**
+ * Gets error message language.
+ *
+ * @return error message language.
+ */
+ String getMessageLang();
+
+ /**
+ * Gets error message.
+ *
+ * @return error message.
+ */
+ String getMessageValue();
+
+ /**
+ * Gets inner error message.
+ *
+ * @return inner error message.
+ */
+ String getInnerErrorMessage();
+
+ /**
+ * Gets inner error type.
+ *
+ * @return inner error type.
+ */
+ String getInnerErrorType();
+
+ /**
+ * Gets inner error stack-trace.
+ *
+ * @return inner error stack-trace
+ */
+ String getInnerErrorStacktrace();
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/data/ODataDeserializer.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/data/ODataDeserializer.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/data/ODataDeserializer.java
new file mode 100644
index 0000000..8884a58
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/data/ODataDeserializer.java
@@ -0,0 +1,90 @@
+/*
+ * 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.odata4.client.api.data;
+
+import java.io.InputStream;
+import java.io.Serializable;
+import org.apache.olingo.odata4.client.api.edm.Edmx;
+import org.w3c.dom.Element;
+
+/**
+ * Utility class for serialization.
+ */
+public interface ODataDeserializer extends Serializable {
+
+ Edmx toMetadata(InputStream input);
+
+ /**
+ * Gets the ServiceDocumentResource object represented by the given InputStream.
+ *
+ * @param input stream to be de-serialized.
+ * @param format OData service document format.
+ * @return ServiceDocumentResource object.
+ */
+// ServiceDocument toServiceDocument(InputStream input, ODataFormat format);
+ /**
+ * Gets a feed object from the given InputStream.
+ *
+ * @param <T> reference class type
+ * @param input stream to be de-serialized.
+ * @param reference reference class (AtomFeed.class, JSONFeed.class).
+ * @return FeedResource instance.
+ */
+// <T extends Feed> T toFeed(InputStream input, Class<T> reference);
+ /**
+ * Gets an entry object from the given InputStream.
+ *
+ * @param <T> reference class type
+ * @param input stream to be de-serialized.
+ * @param reference reference class (AtomEntry.class, JSONV3Entry.class).
+ * @return EntryResource instance.
+ */
+// <T extends Entry> T toEntry(InputStream input, Class<T> reference);
+ /**
+ * Gets a DOM representation of the given InputStream.
+ *
+ * @param input stream to be de-serialized.
+ * @param format OData format.
+ * @return DOM.
+ */
+// Element toPropertyDOM(InputStream input, ODataFormat format);
+ /**
+ * Gets a list of links from the given InputStream.
+ *
+ * @param input stream to be de-serialized.
+ * @param format OData format.
+ * @return de-serialized links.
+ */
+// LinkCollection toLinkCollection(InputStream input, ODataFormat format);
+ /**
+ * Gets the ODataError object represented by the given InputStream.
+ *
+ * @param input stream to be parsed and de-serialized.
+ * @param isXML 'TRUE' if the error is represented by XML; 'FALSE' otherwise.
+ * @return
+ */
+// ODataError toODataError(InputStream input, boolean isXML);
+ /**
+ * Parses the given input into a DOM tree.
+ *
+ * @param input stream to be parsed and de-serialized.
+ * @return DOM tree
+ */
+ Element toDOM(InputStream input);
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/data/ODataReader.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/data/ODataReader.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/data/ODataReader.java
new file mode 100644
index 0000000..df0ec9a
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/data/ODataReader.java
@@ -0,0 +1,102 @@
+/*
+ * 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.odata4.client.api.data;
+
+import java.io.InputStream;
+import java.io.Serializable;
+import org.apache.olingo.odata4.client.api.ODataError;
+import org.apache.olingo.odata4.client.api.edm.EdmMetadata;
+
+/**
+ * OData reader.
+ * <br/>
+ * Use this class to de-serialize an OData response body.
+ * <br/>
+ * This class provides method helpers to de-serialize an entire feed, a set of entities and a single entity as well.
+ */
+public interface ODataReader extends Serializable {
+
+ /**
+ * Parses a stream into metadata representation.
+ *
+ * @param input stream to de-serialize.
+ * @return metadata representation.
+ */
+ EdmMetadata readMetadata(InputStream input);
+
+ /**
+ * Parses an OData service document.
+ *
+ * @param input stream to de-serialize.
+ * @param format de-serialize as XML or JSON
+ * @return List of URIs.
+ */
+ //ODataServiceDocument readServiceDocument(InputStream input, ODataFormat format);
+ /**
+ * De-Serializes a stream into an OData entity set.
+ *
+ * @param input stream to de-serialize.
+ * @param format de-serialize as AtomFeed or JSONFeed
+ * @return de-serialized entity set.
+ */
+ //ODataEntitySet readEntitySet(InputStream input, ODataPubFormat format);
+ /**
+ * Parses a stream taking care to de-serializes the first OData entity found.
+ *
+ * @param input stream to de-serialize.
+ * @param format de-serialize as AtomEntry or JSONEntry
+ * @return entity de-serialized.
+ */
+ //ODataEntity readEntity(InputStream input, ODataPubFormat format);
+ /**
+ * Parses a stream taking care to de-serialize the first OData entity property found.
+ *
+ * @param input stream to de-serialize.
+ * @param format de-serialize as XML or JSON
+ * @return OData entity property de-serialized.
+ */
+ //ODataProperty readProperty(InputStream input, ODataFormat format);
+ /**
+ * Parses a $links request response.
+ *
+ * @param input stream to de-serialize.
+ * @param format de-serialize as XML or JSON
+ * @return List of URIs.
+ */
+ //ODataLinkCollection readLinks(InputStream input, ODataFormat format);
+ /**
+ * Parses a stream into an OData error.
+ *
+ * @param inputStream stream to de-serialize.
+ * @param isXML 'TRUE' if the error is in XML format.
+ * @return OData error.
+ */
+// ODataError readError(InputStream inputStream, boolean isXML);
+
+ /**
+ * Parses a stream into the object type specified by the given reference.
+ *
+ * @param <T> expected object type.
+ * @param src input stream.
+ * @param format format
+ * @param reference reference.
+ * @return read object.
+ */
+ //<T> T read(InputStream src, String format, Class<T> reference);
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/data/ODataSerializer.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/data/ODataSerializer.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/data/ODataSerializer.java
new file mode 100644
index 0000000..8553371
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/data/ODataSerializer.java
@@ -0,0 +1,120 @@
+/**
+ * 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.odata4.client.api.data;
+
+import java.io.OutputStream;
+import java.io.Serializable;
+import java.io.Writer;
+import org.apache.olingo.odata4.client.api.format.ODataFormat;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * Utility class for serialization.
+ */
+public interface ODataSerializer extends Serializable {
+
+ /**
+ * Writes <tt>FeedResource</tt> object onto the given stream.
+ *
+ * @param <T> feed resource type.
+ * @param obj object to be streamed.
+ * @param out output stream.
+ */
+// <T extends Feed> void feed(T obj, OutputStream out);
+
+ /**
+ * Writes <tt>FeedResource</tt> object by the given writer.
+ *
+ * @param <T> feed resource type.
+ * @param obj object to be streamed.
+ * @param writer writer.
+ */
+// <T extends Feed> void feed(T obj, Writer writer);
+
+ /**
+ * Writes <tt>EntryResource</tt> object onto the given stream.
+ *
+ * @param <T> entry resource type.
+ * @param obj object to be streamed.
+ * @param out output stream.
+ */
+// <T extends Entry> void entry(T obj, OutputStream out);
+
+ /**
+ * Writes <tt>EntryResource</tt> object by the given writer.
+ *
+ * @param <T> entry resource type.
+ * @param obj object to be streamed.
+ * @param writer writer.
+ */
+// <T extends Entry> void entry(T obj, Writer writer);
+
+ /**
+ * Writes entry content onto the given stream.
+ *
+ * @param element element to be streamed.
+ * @param format streaming format.
+ * @param out output stream.
+ */
+// void property(Element element, ODataFormat format, OutputStream out);
+
+ /**
+ * Writes entry content by the given writer.
+ *
+ * @param element element to be streamed.
+ * @param format streaming format.
+ * @param writer writer.
+ */
+// void property(Element element, ODataFormat format, Writer writer);
+
+ /**
+ * Writes OData link onto the given stream.
+ *
+ * @param link OData link to be streamed.
+ * @param format streaming format.
+ * @param out output stream.
+ */
+// void link(ODataLink link, ODataFormat format, OutputStream out);
+
+ /**
+ * Writes OData link by the given writer.
+ *
+ * @param link OData link to be streamed.
+ * @param format streaming format.
+ * @param writer writer.
+ */
+// void link(ODataLink link, ODataFormat format, Writer writer);
+
+ /**
+ * Writes DOM object onto the given stream.
+ *
+ * @param content DOM to be streamed.
+ * @param out output stream.
+ */
+ void dom(Node content, OutputStream out);
+
+ /**
+ * Writes DOM object by the given writer.
+ *
+ * @param content DOM to be streamed.
+ * @param writer writer.
+ */
+ void dom(Node content, Writer writer);
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/ComplexType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/ComplexType.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/ComplexType.java
new file mode 100644
index 0000000..3771d5c
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/ComplexType.java
@@ -0,0 +1,32 @@
+/*
+ * 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.odata4.client.api.edm;
+
+import java.util.List;
+
+public interface ComplexType {
+
+ String getName();
+
+ void setName(String name);
+
+ public abstract List<? extends Property> getProperties();
+
+ public abstract Property getProperty(String name);
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EdmMetadata.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EdmMetadata.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EdmMetadata.java
new file mode 100644
index 0000000..a75515d
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EdmMetadata.java
@@ -0,0 +1,59 @@
+/*
+ * 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.odata4.client.api.edm;
+
+import java.util.List;
+
+/**
+ * Entry point for access information about EDM metadata.
+ */
+public interface EdmMetadata {
+
+ /**
+ * Checks whether the given key is a valid namespace or alias in the EdM metadata document.
+ *
+ * @param key namespace or alias
+ * @return true if key is valid namespace or alias
+ */
+ boolean isNsOrAlias(String key);
+
+ /**
+ * Returns the Schema at the specified position in the EdM metadata document.
+ *
+ * @param index index of the Schema to return
+ * @return the Schema at the specified position in the EdM metadata document
+ */
+ Schema getSchema(final int index);
+
+ /**
+ * Returns the Schema with the specified key (namespace or alias) in the EdM metadata document.
+ *
+ * @param key namespace or alias
+ * @return the Schema with the specified key in the EdM metadata document
+ */
+ Schema getSchema(final String key);
+
+ /**
+ * Returns all Schema objects defined in the EdM metadata document.
+ *
+ * @return all Schema objects defined in the EdM metadata document
+ */
+ List<? extends Schema> getSchemas();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/Edmx.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/Edmx.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/Edmx.java
new file mode 100644
index 0000000..df5250b
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/Edmx.java
@@ -0,0 +1,23 @@
+/*
+ * 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.odata4.client.api.edm;
+
+public interface Edmx {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntityContainer.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntityContainer.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntityContainer.java
new file mode 100644
index 0000000..e497d3e
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntityContainer.java
@@ -0,0 +1,24 @@
+/*
+ * 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.odata4.client.api.edm;
+
+public interface EntityContainer {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntityKey.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntityKey.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntityKey.java
new file mode 100644
index 0000000..ca903e9
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntityKey.java
@@ -0,0 +1,23 @@
+/*
+ * 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.odata4.client.api.edm;
+
+public interface EntityKey {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntitySet.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntitySet.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntitySet.java
new file mode 100644
index 0000000..de64e11
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntitySet.java
@@ -0,0 +1,23 @@
+/*
+ * 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.odata4.client.api.edm;
+
+public interface EntitySet {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/4f927e76/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntityType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntityType.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntityType.java
new file mode 100644
index 0000000..c769b27
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/EntityType.java
@@ -0,0 +1,23 @@
+/*
+ * 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.odata4.client.api.edm;
+
+public interface EntityType {
+
+}