You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by sk...@apache.org on 2014/05/13 13:47:54 UTC
[10/31] git commit: [OLINGO-280] pojogen off-line generation
implemented
[OLINGO-280] pojogen off-line generation implemented
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/288bbb72
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/288bbb72
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/288bbb72
Branch: refs/heads/olingo-266-ref
Commit: 288bbb7242ffbe0ccc4e5c2e924c1569842ce7a6
Parents: ed8e0e3
Author: Francesco Chicchiriccò <--global>
Authored: Mon May 12 15:52:17 2014 +0200
Committer: Francesco Chicchiriccò <--global>
Committed: Mon May 12 15:52:17 2014 +0200
----------------------------------------------------------------------
ext/client-proxy/pom.xml | 2 +-
ext/pojogen-maven-plugin/pom.xml | 30 +-
.../src/it/v3Sample/pom.xml | 93 +++
.../it/v3Sample/src/test/resources/metadata.xml | 719 +++++++++++++++++++
.../src/it/v3Sample/verify.groovy | 20 +
.../src/it/v4Sample/pom.xml | 93 +++
.../it/v4Sample/src/test/resources/metadata.xml | 462 ++++++++++++
.../src/it/v4Sample/verify.groovy | 20 +
.../ext/pojogen/AbstractMetadataMojo.java | 160 -----
.../olingo/ext/pojogen/AbstractPOJOGenMojo.java | 340 +++++++++
.../olingo/ext/pojogen/AbstractUtility.java | 8 +-
.../olingo/ext/pojogen/V3MetadataMojo.java | 184 -----
.../olingo/ext/pojogen/V3POJOGenMojo.java | 54 ++
.../olingo/ext/pojogen/V4MetadataMojo.java | 194 -----
.../olingo/ext/pojogen/V4POJOGenMojo.java | 54 ++
.../src/main/resources/entityType.vm | 4 +-
fit/pom.xml | 10 +-
fit/src/it/staticServiceV3/pom.xml | 6 +-
fit/src/it/staticServiceV4/pom.xml | 6 +-
pom.xml | 12 +
20 files changed, 1911 insertions(+), 560 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/288bbb72/ext/client-proxy/pom.xml
----------------------------------------------------------------------
diff --git a/ext/client-proxy/pom.xml b/ext/client-proxy/pom.xml
index 39e742b..827e7e9 100644
--- a/ext/client-proxy/pom.xml
+++ b/ext/client-proxy/pom.xml
@@ -23,7 +23,7 @@
<modelVersion>4.0.0</modelVersion>
- <artifactId>client-proxy</artifactId>
+ <artifactId>olingo-client-proxy</artifactId>
<packaging>jar</packaging>
<name>${project.artifactId}</name>
<description>Java client API for OData services: Proxy.</description>
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/288bbb72/ext/pojogen-maven-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/pom.xml b/ext/pojogen-maven-plugin/pom.xml
index 3a77451..b84944f 100644
--- a/ext/pojogen-maven-plugin/pom.xml
+++ b/ext/pojogen-maven-plugin/pom.xml
@@ -43,7 +43,7 @@
<dependencies>
<dependency>
<groupId>org.apache.olingo</groupId>
- <artifactId>olingo-client-core</artifactId>
+ <artifactId>olingo-client-proxy</artifactId>
<version>${project.version}</version>
</dependency>
@@ -103,6 +103,34 @@
</execution>
</executions>
</plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-invoker-plugin</artifactId>
+ <inherited>true</inherited>
+ <configuration>
+ <debug>true</debug>
+ <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
+ <pomIncludes>
+ <pomInclude>*/pom.xml</pomInclude>
+ </pomIncludes>
+ <postBuildHookScript>verify</postBuildHookScript>
+ <goals>
+ <goal>clean</goal>
+ <goal>test-compile</goal>
+ </goals>
+ </configuration>
+ <executions>
+ <execution>
+ <id>integration-test</id>
+ <goals>
+ <goal>install</goal>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
<resources>
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/288bbb72/ext/pojogen-maven-plugin/src/it/v3Sample/pom.xml
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/it/v3Sample/pom.xml b/ext/pojogen-maven-plugin/src/it/v3Sample/pom.xml
new file mode 100644
index 0000000..bd6b698
--- /dev/null
+++ b/ext/pojogen-maven-plugin/src/it/v3Sample/pom.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>pojogen-maven-plugin-v3test</artifactId>
+ <groupId>org.apache.olingo</groupId>
+ <version>@project.version@</version>
+ <name>${project.artifactId}</name>
+ <description>A simple IT verifying the basic use case of pojogen-man-plugin.</description>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <artifactId>pojogen-maven-plugin</artifactId>
+ <groupId>org.apache.olingo</groupId>
+ <version>@project.version@</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <artifactId>olingo-client-proxy</artifactId>
+ <groupId>org.apache.olingo</groupId>
+ <version>@project.version@</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>1.8</version>
+ <executions>
+ <execution>
+ <phase>process-sources</phase>
+ <goals>
+ <goal>add-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>${project.build.directory}/generated-sources</source>
+ </sources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>@project.groupId@</groupId>
+ <artifactId>pojogen-maven-plugin</artifactId>
+ <version>@project.version@</version>
+ <executions>
+ <execution>
+ <configuration>
+ <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
+ <localEdm>${project.basedir}/src/test/resources/metadata.xml</localEdm>
+ <basePackage>org.apache.olingo.fit.proxy.v3.staticservice</basePackage>
+ </configuration>
+ <id>v3pojoGen</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>v3pojoGen</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/288bbb72/ext/pojogen-maven-plugin/src/it/v3Sample/src/test/resources/metadata.xml
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/it/v3Sample/src/test/resources/metadata.xml b/ext/pojogen-maven-plugin/src/it/v3Sample/src/test/resources/metadata.xml
new file mode 100644
index 0000000..3c9a5ad
--- /dev/null
+++ b/ext/pojogen-maven-plugin/src/it/v3Sample/src/test/resources/metadata.xml
@@ -0,0 +1,719 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+ 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.
+
+-->
+<edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx">
+ <edmx:DataServices m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
+ <Schema Namespace="Microsoft.Test.OData.Services.AstoriaDefaultService" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
+ <EntityType Name="AllSpatialTypes">
+ <Key>
+ <PropertyRef Name="Id" />
+ </Key>
+ <Property Name="Id" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Geog" Type="Edm.Geography" SRID="Variable" />
+ <Property Name="GeogPoint" Type="Edm.GeographyPoint" SRID="Variable" />
+ <Property Name="GeogLine" Type="Edm.GeographyLineString" SRID="Variable" />
+ <Property Name="GeogPolygon" Type="Edm.GeographyPolygon" SRID="Variable" />
+ <Property Name="GeogCollection" Type="Edm.GeographyCollection" SRID="Variable" />
+ <Property Name="GeogMultiPoint" Type="Edm.GeographyMultiPoint" SRID="Variable" />
+ <Property Name="GeogMultiLine" Type="Edm.GeographyMultiLineString" SRID="Variable" />
+ <Property Name="GeogMultiPolygon" Type="Edm.GeographyMultiPolygon" SRID="Variable" />
+ <Property Name="Geom" Type="Edm.Geometry" SRID="Variable" />
+ <Property Name="GeomPoint" Type="Edm.GeometryPoint" SRID="Variable" />
+ <Property Name="GeomLine" Type="Edm.GeometryLineString" SRID="Variable" />
+ <Property Name="GeomPolygon" Type="Edm.GeometryPolygon" SRID="Variable" />
+ <Property Name="GeomCollection" Type="Edm.GeometryCollection" SRID="Variable" />
+ <Property Name="GeomMultiPoint" Type="Edm.GeometryMultiPoint" SRID="Variable" />
+ <Property Name="GeomMultiLine" Type="Edm.GeometryMultiLineString" SRID="Variable" />
+ <Property Name="GeomMultiPolygon" Type="Edm.GeometryMultiPolygon" SRID="Variable" />
+ </EntityType>
+ <EntityType Name="AllSpatialCollectionTypes" Abstract="true">
+ <Key>
+ <PropertyRef Name="Id" />
+ </Key>
+ <Property Name="Id" Type="Edm.Int32" Nullable="false" />
+ </EntityType>
+ <EntityType Name="Customer">
+ <Key>
+ <PropertyRef Name="CustomerId" />
+ </Key>
+ <Property Name="Thumbnail" Type="Edm.Stream" Nullable="false" />
+ <Property Name="Video" Type="Edm.Stream" Nullable="false" />
+ <Property Name="CustomerId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Name" Type="Edm.String" m:FC_TargetPath="SyndicationSummary" m:FC_ContentKind="text" m:FC_KeepInContent="false" />
+ <Property Name="PrimaryContactInfo" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails" />
+ <Property Name="BackupContactInfo" Type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)" Nullable="false" />
+ <Property Name="Auditing" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.AuditInfo" />
+ <NavigationProperty Name="Orders" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Orders" ToRole="Orders" FromRole="Customer" />
+ <NavigationProperty Name="Logins" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Logins" ToRole="Logins" FromRole="Customer" />
+ <NavigationProperty Name="Husband" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Husband" ToRole="Husband" FromRole="Customer" />
+ <NavigationProperty Name="Wife" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Wife" ToRole="Wife" FromRole="Customer" />
+ <NavigationProperty Name="Info" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Info" ToRole="Info" FromRole="Customer" />
+ </EntityType>
+ <EntityType Name="Login">
+ <Key>
+ <PropertyRef Name="Username" />
+ </Key>
+ <Property Name="Username" Type="Edm.String" Nullable="false" />
+ <Property Name="CustomerId" Type="Edm.Int32" Nullable="false" />
+ <NavigationProperty Name="Customer" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_Customer" ToRole="Customer" FromRole="Login" />
+ <NavigationProperty Name="LastLogin" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_LastLogin" ToRole="LastLogin" FromRole="Login" />
+ <NavigationProperty Name="SentMessages" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_SentMessages" ToRole="SentMessages" FromRole="Login" />
+ <NavigationProperty Name="ReceivedMessages" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_ReceivedMessages" ToRole="ReceivedMessages" FromRole="Login" />
+ <NavigationProperty Name="Orders" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_Orders" ToRole="Orders" FromRole="Login" />
+ </EntityType>
+ <EntityType Name="RSAToken">
+ <Key>
+ <PropertyRef Name="Serial" />
+ </Key>
+ <Property Name="Serial" Type="Edm.String" Nullable="false" />
+ <Property Name="Issued" Type="Edm.DateTime" Nullable="false" />
+ <NavigationProperty Name="Login" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.RSAToken_Login" ToRole="Login" FromRole="RSAToken" />
+ </EntityType>
+ <EntityType Name="PageView">
+ <Key>
+ <PropertyRef Name="PageViewId" />
+ </Key>
+ <Property Name="PageViewId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Username" Type="Edm.String" />
+ <Property Name="Viewed" Type="Edm.DateTimeOffset" Nullable="false" />
+ <Property Name="TimeSpentOnPage" Type="Edm.Time" Nullable="false" />
+ <Property Name="PageUrl" Type="Edm.String" />
+ <NavigationProperty Name="Login" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.PageView_Login" ToRole="Login" FromRole="PageView" />
+ </EntityType>
+ <EntityType Name="LastLogin">
+ <Key>
+ <PropertyRef Name="Username" />
+ </Key>
+ <Property Name="Username" Type="Edm.String" Nullable="false" />
+ <Property Name="LoggedIn" Type="Edm.DateTime" Nullable="false" />
+ <Property Name="LoggedOut" Type="Edm.DateTime" />
+ <Property Name="Duration" Type="Edm.Time" Nullable="false" />
+ <NavigationProperty Name="Login" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.LastLogin_Login" ToRole="Login" FromRole="LastLogin" />
+ </EntityType>
+ <EntityType Name="Message">
+ <Key>
+ <PropertyRef Name="FromUsername" />
+ <PropertyRef Name="MessageId" />
+ </Key>
+ <Property Name="MessageId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="FromUsername" Type="Edm.String" Nullable="false" />
+ <Property Name="ToUsername" Type="Edm.String" />
+ <Property Name="Sent" Type="Edm.DateTimeOffset" Nullable="false" m:FC_TargetPath="SyndicationPublished" m:FC_ContentKind="text" m:FC_KeepInContent="true" />
+ <Property Name="Subject" Type="Edm.String" m:FC_TargetPath="SyndicationTitle" m:FC_ContentKind="text" m:FC_KeepInContent="true" />
+ <Property Name="Body" Type="Edm.String" />
+ <Property Name="IsRead" Type="Edm.Boolean" Nullable="false" />
+ <NavigationProperty Name="Sender" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Message_Sender" ToRole="Sender" FromRole="Message" />
+ <NavigationProperty Name="Recipient" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Message_Recipient" ToRole="Recipient" FromRole="Message" />
+ <NavigationProperty Name="Attachments" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Message_Attachments" ToRole="Attachments" FromRole="Message" />
+ </EntityType>
+ <EntityType Name="MessageAttachment">
+ <Key>
+ <PropertyRef Name="AttachmentId" />
+ </Key>
+ <Property Name="AttachmentId" Type="Edm.Guid" Nullable="false" />
+ <Property Name="Attachment" Type="Edm.Binary" />
+ </EntityType>
+ <EntityType Name="Order">
+ <Key>
+ <PropertyRef Name="OrderId" />
+ </Key>
+ <Property Name="OrderId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="CustomerId" Type="Edm.Int32" />
+ <Property Name="Concurrency" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo" />
+ <NavigationProperty Name="Login" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Order_Login" ToRole="Login" FromRole="Order" />
+ <NavigationProperty Name="Customer" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Order_Customer" ToRole="Customer" FromRole="Order" />
+ </EntityType>
+ <EntityType Name="OrderLine">
+ <Key>
+ <PropertyRef Name="OrderId" />
+ <PropertyRef Name="ProductId" />
+ </Key>
+ <Property Name="OrderLineStream" Type="Edm.Stream" Nullable="false" />
+ <Property Name="OrderId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="ProductId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Quantity" Type="Edm.Int32" Nullable="false" />
+ <Property Name="ConcurrencyToken" Type="Edm.String" ConcurrencyMode="Fixed" />
+ <NavigationProperty Name="Order" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine_Order" ToRole="Order" FromRole="OrderLine" />
+ <NavigationProperty Name="Product" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine_Product" ToRole="Product" FromRole="OrderLine" />
+ </EntityType>
+ <EntityType Name="Product">
+ <Key>
+ <PropertyRef Name="ProductId" />
+ </Key>
+ <Property Name="Picture" Type="Edm.Stream" Nullable="false" />
+ <Property Name="ProductId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Description" Type="Edm.String" />
+ <Property Name="Dimensions" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Dimensions" />
+ <Property Name="BaseConcurrency" Type="Edm.String" ConcurrencyMode="Fixed" />
+ <Property Name="ComplexConcurrency" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo" />
+ <Property Name="NestedComplexConcurrency" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.AuditInfo" />
+ <NavigationProperty Name="RelatedProducts" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_RelatedProducts" ToRole="RelatedProducts" FromRole="Product" />
+ <NavigationProperty Name="Detail" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_Detail" ToRole="Detail" FromRole="Product" />
+ <NavigationProperty Name="Reviews" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_Reviews" ToRole="Reviews" FromRole="Product" />
+ <NavigationProperty Name="Photos" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_Photos" ToRole="Photos" FromRole="Product" />
+ </EntityType>
+ <EntityType Name="ProductDetail">
+ <Key>
+ <PropertyRef Name="ProductId" />
+ </Key>
+ <Property Name="ProductId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Details" Type="Edm.String" />
+ <NavigationProperty Name="Product" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductDetail_Product" ToRole="Product" FromRole="ProductDetail" />
+ </EntityType>
+ <EntityType Name="ProductReview">
+ <Key>
+ <PropertyRef Name="ProductId" />
+ <PropertyRef Name="ReviewId" />
+ <PropertyRef Name="RevisionId" />
+ </Key>
+ <Property Name="ProductId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="ReviewId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Review" Type="Edm.String" />
+ <Property Name="RevisionId" Type="Edm.String" Nullable="false" />
+ <NavigationProperty Name="Product" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductReview_Product" ToRole="Product" FromRole="ProductReview" />
+ </EntityType>
+ <EntityType Name="ProductPhoto">
+ <Key>
+ <PropertyRef Name="PhotoId" />
+ <PropertyRef Name="ProductId" />
+ </Key>
+ <Property Name="ProductId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="PhotoId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Photo" Type="Edm.Binary" />
+ </EntityType>
+ <EntityType Name="CustomerInfo" m:HasStream="true">
+ <Key>
+ <PropertyRef Name="CustomerInfoId" />
+ </Key>
+ <Property Name="CustomerInfoId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Information" Type="Edm.String" />
+ </EntityType>
+ <EntityType Name="Computer">
+ <Key>
+ <PropertyRef Name="ComputerId" />
+ </Key>
+ <Property Name="ComputerId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Name" Type="Edm.String" />
+ <NavigationProperty Name="ComputerDetail" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Computer_ComputerDetail" ToRole="ComputerDetail" FromRole="Computer" />
+ </EntityType>
+ <EntityType Name="ComputerDetail">
+ <Key>
+ <PropertyRef Name="ComputerDetailId" />
+ </Key>
+ <Property Name="ComputerDetailId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Manufacturer" Type="Edm.String" m:FC_TargetPath="SyndicationAuthorEmail" m:FC_ContentKind="text" m:FC_KeepInContent="true" />
+ <Property Name="Model" Type="Edm.String" m:FC_TargetPath="SyndicationAuthorUri" m:FC_ContentKind="text" m:FC_KeepInContent="true" />
+ <Property Name="Serial" Type="Edm.String" />
+ <Property Name="SpecificationsBag" Type="Collection(Edm.String)" Nullable="false" />
+ <Property Name="PurchaseDate" Type="Edm.DateTime" Nullable="false" />
+ <Property Name="Dimensions" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Dimensions" />
+ <NavigationProperty Name="Computer" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail_Computer" ToRole="Computer" FromRole="ComputerDetail" />
+ </EntityType>
+ <EntityType Name="Driver">
+ <Key>
+ <PropertyRef Name="Name" />
+ </Key>
+ <Property Name="Name" Type="Edm.String" Nullable="false" />
+ <Property Name="BirthDate" Type="Edm.DateTime" Nullable="false" />
+ <NavigationProperty Name="License" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Driver_License" ToRole="License" FromRole="Driver" />
+ </EntityType>
+ <EntityType Name="License">
+ <Key>
+ <PropertyRef Name="Name" />
+ </Key>
+ <Property Name="Name" Type="Edm.String" Nullable="false" />
+ <Property Name="LicenseNumber" Type="Edm.String" />
+ <Property Name="LicenseClass" Type="Edm.String" m:FC_TargetPath="SyndicationContributorEmail" m:FC_ContentKind="text" m:FC_KeepInContent="false" />
+ <Property Name="Restrictions" Type="Edm.String" m:FC_TargetPath="SyndicationContributorUri" m:FC_ContentKind="text" m:FC_KeepInContent="false" />
+ <Property Name="ExpirationDate" Type="Edm.DateTime" Nullable="false" />
+ <NavigationProperty Name="Driver" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.License_Driver" ToRole="Driver" FromRole="License" />
+ </EntityType>
+ <EntityType Name="MappedEntityType">
+ <Key>
+ <PropertyRef Name="Id" />
+ </Key>
+ <Property Name="Id" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Href" Type="Edm.String" />
+ <Property Name="Title" Type="Edm.String" />
+ <Property Name="HrefLang" Type="Edm.String" />
+ <Property Name="Type" Type="Edm.String" />
+ <Property Name="Length" Type="Edm.Int32" Nullable="false" />
+ <Property Name="BagOfPrimitiveToLinks" Type="Collection(Edm.String)" Nullable="false" />
+ <Property Name="Logo" Type="Edm.Binary" />
+ <Property Name="BagOfDecimals" Type="Collection(Edm.Decimal)" Nullable="false" />
+ <Property Name="BagOfDoubles" Type="Collection(Edm.Double)" Nullable="false" />
+ <Property Name="BagOfSingles" Type="Collection(Edm.Single)" Nullable="false" />
+ <Property Name="BagOfBytes" Type="Collection(Edm.Byte)" Nullable="false" />
+ <Property Name="BagOfInt16s" Type="Collection(Edm.Int16)" Nullable="false" />
+ <Property Name="BagOfInt32s" Type="Collection(Edm.Int32)" Nullable="false" />
+ <Property Name="BagOfInt64s" Type="Collection(Edm.Int64)" Nullable="false" />
+ <Property Name="BagOfGuids" Type="Collection(Edm.Guid)" Nullable="false" />
+ <Property Name="BagOfDateTime" Type="Collection(Edm.DateTime)" Nullable="false" />
+ <Property Name="BagOfComplexToCategories" Type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ComplexToCategory)" Nullable="false" />
+ <Property Name="ComplexPhone" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone" m:FC_TargetPath="SyndicationRights" m:FC_ContentKind="text" m:FC_SourcePath="PhoneNumber" m:FC_KeepInContent="true" />
+ <Property Name="ComplexContactDetails" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails" m:FC_TargetPath="SyndicationSummary" m:FC_ContentKind="text" m:FC_SourcePath="WorkPhone/Extension" m:FC_KeepInContent="true" />
+ </EntityType>
+ <EntityType Name="Car" m:HasStream="true">
+ <Key>
+ <PropertyRef Name="VIN" />
+ </Key>
+ <Property Name="Photo" Type="Edm.Stream" Nullable="false" />
+ <Property Name="Video" Type="Edm.Stream" Nullable="false" />
+ <Property Name="VIN" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Description" Type="Edm.String" />
+ </EntityType>
+ <EntityType Name="Person">
+ <Key>
+ <PropertyRef Name="PersonId" />
+ </Key>
+ <Property Name="PersonId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Name" Type="Edm.String" />
+ <NavigationProperty Name="PersonMetadata" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Person_PersonMetadata" ToRole="PersonMetadata" FromRole="Person" />
+ </EntityType>
+ <EntityType Name="PersonMetadata">
+ <Key>
+ <PropertyRef Name="PersonMetadataId" />
+ </Key>
+ <Property Name="PersonMetadataId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="PersonId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="PropertyName" Type="Edm.String" />
+ <Property Name="PropertyValue" Type="Edm.String" />
+ <NavigationProperty Name="Person" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.PersonMetadata_Person" ToRole="Person" FromRole="PersonMetadata" />
+ </EntityType>
+ <ComplexType Name="ContactDetails">
+ <Property Name="EmailBag" Type="Collection(Edm.String)" Nullable="false" />
+ <Property Name="AlternativeNames" Type="Collection(Edm.String)" Nullable="false" />
+ <Property Name="ContactAlias" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases" />
+ <Property Name="HomePhone" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone" />
+ <Property Name="WorkPhone" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone" />
+ <Property Name="MobilePhoneBag" Type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)" Nullable="false" />
+ </ComplexType>
+ <ComplexType Name="AuditInfo">
+ <Property Name="ModifiedDate" Type="Edm.DateTime" Nullable="false" />
+ <Property Name="ModifiedBy" Type="Edm.String" />
+ <Property Name="Concurrency" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo" />
+ </ComplexType>
+ <ComplexType Name="ConcurrencyInfo">
+ <Property Name="Token" Type="Edm.String" />
+ <Property Name="QueriedDateTime" Type="Edm.DateTime" />
+ </ComplexType>
+ <ComplexType Name="Dimensions">
+ <Property Name="Width" Type="Edm.Decimal" Nullable="false" />
+ <Property Name="Height" Type="Edm.Decimal" Nullable="false" />
+ <Property Name="Depth" Type="Edm.Decimal" Nullable="false" />
+ </ComplexType>
+ <ComplexType Name="ComplexToCategory">
+ <Property Name="Term" Type="Edm.String" />
+ <Property Name="Scheme" Type="Edm.String" />
+ <Property Name="Label" Type="Edm.String" />
+ </ComplexType>
+ <ComplexType Name="Phone">
+ <Property Name="PhoneNumber" Type="Edm.String" />
+ <Property Name="Extension" Type="Edm.String" />
+ </ComplexType>
+ <ComplexType Name="Aliases">
+ <Property Name="AlternativeNames" Type="Collection(Edm.String)" Nullable="false" />
+ </ComplexType>
+ <EntityType Name="AllSpatialCollectionTypes_Simple" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.AllSpatialCollectionTypes">
+ <Property Name="ManyGeogPoint" Type="Collection(Edm.GeographyPoint)" Nullable="false" SRID="Variable" />
+ <Property Name="ManyGeogLine" Type="Collection(Edm.GeographyLineString)" Nullable="false" SRID="Variable" />
+ <Property Name="ManyGeogPolygon" Type="Collection(Edm.GeographyPolygon)" Nullable="false" SRID="Variable" />
+ <Property Name="ManyGeomPoint" Type="Collection(Edm.GeometryPoint)" Nullable="false" SRID="Variable" />
+ <Property Name="ManyGeomLine" Type="Collection(Edm.GeometryLineString)" Nullable="false" SRID="Variable" />
+ <Property Name="ManyGeomPolygon" Type="Collection(Edm.GeometryPolygon)" Nullable="false" SRID="Variable" />
+ </EntityType>
+ <EntityType Name="ProductPageView" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.PageView">
+ <Property Name="ProductId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="ConcurrencyToken" Type="Edm.String" ConcurrencyMode="Fixed" />
+ </EntityType>
+ <EntityType Name="BackOrderLine" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine" />
+ <EntityType Name="BackOrderLine2" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.BackOrderLine" />
+ <EntityType Name="DiscontinuedProduct" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.Product">
+ <Property Name="Discontinued" Type="Edm.DateTime" Nullable="false" />
+ <Property Name="ReplacementProductId" Type="Edm.Int32" />
+ <Property Name="DiscontinuedPhone" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone" />
+ <Property Name="ChildConcurrencyToken" Type="Edm.String" ConcurrencyMode="Fixed" />
+ </EntityType>
+ <EntityType Name="Contractor" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.Person">
+ <Property Name="ContratorCompanyId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="BillingRate" Type="Edm.Int32" Nullable="false" />
+ <Property Name="TeamContactPersonId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="JobDescription" Type="Edm.String" />
+ </EntityType>
+ <EntityType Name="Employee" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.Person">
+ <Property Name="ManagersPersonId" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Salary" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Title" Type="Edm.String" />
+ <NavigationProperty Name="Manager" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Employee_Manager" ToRole="Manager" FromRole="Employee" />
+ </EntityType>
+ <EntityType Name="SpecialEmployee" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.Employee">
+ <Property Name="CarsVIN" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Bonus" Type="Edm.Int32" Nullable="false" />
+ <Property Name="IsFullyVested" Type="Edm.Boolean" Nullable="false" />
+ <NavigationProperty Name="Car" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.SpecialEmployee_Car" ToRole="Car" FromRole="SpecialEmployee" />
+ </EntityType>
+ <ComplexType Name="ComplexWithAllPrimitiveTypes">
+ <Property Name="Binary" Type="Edm.Binary" />
+ <Property Name="Boolean" Type="Edm.Boolean" Nullable="false" />
+ <Property Name="Byte" Type="Edm.Byte" Nullable="false" />
+ <Property Name="DateTime" Type="Edm.DateTime" Nullable="false" />
+ <Property Name="Decimal" Type="Edm.Decimal" Nullable="false" />
+ <Property Name="Double" Type="Edm.Double" Nullable="false" />
+ <Property Name="Int16" Type="Edm.Int16" Nullable="false" />
+ <Property Name="Int32" Type="Edm.Int32" Nullable="false" />
+ <Property Name="Int64" Type="Edm.Int64" Nullable="false" />
+ <Property Name="SByte" Type="Edm.SByte" Nullable="false" />
+ <Property Name="String" Type="Edm.String" />
+ <Property Name="Single" Type="Edm.Single" Nullable="false" />
+ <Property Name="GeographyPoint" Type="Edm.GeographyPoint" SRID="Variable" />
+ <Property Name="GeometryPoint" Type="Edm.GeometryPoint" SRID="Variable" />
+ </ComplexType>
+ <Association Name="Customer_Orders">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Order" Role="Orders" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Customer" Multiplicity="*" />
+ </Association>
+ <Association Name="Customer_Logins">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Logins" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Customer" Multiplicity="*" />
+ </Association>
+ <Association Name="Customer_Husband">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Husband" Multiplicity="0..1" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Customer" Multiplicity="*" />
+ </Association>
+ <Association Name="Customer_Wife">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Wife" Multiplicity="0..1" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Customer" Multiplicity="*" />
+ </Association>
+ <Association Name="Customer_Info">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.CustomerInfo" Role="Info" Multiplicity="0..1" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Customer" Multiplicity="*" />
+ </Association>
+ <Association Name="Login_Customer">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Customer" Multiplicity="0..1" />
+ </Association>
+ <Association Name="Login_LastLogin">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.LastLogin" Role="LastLogin" Multiplicity="0..1" />
+ </Association>
+ <Association Name="Login_SentMessages">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Message" Role="SentMessages" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="*" />
+ </Association>
+ <Association Name="Login_ReceivedMessages">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Message" Role="ReceivedMessages" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="*" />
+ </Association>
+ <Association Name="Login_Orders">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Order" Role="Orders" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="*" />
+ </Association>
+ <Association Name="RSAToken_Login">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.RSAToken" Role="RSAToken" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="0..1" />
+ </Association>
+ <Association Name="PageView_Login">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.PageView" Role="PageView" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="0..1" />
+ </Association>
+ <Association Name="LastLogin_Login">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="0..1" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.LastLogin" Role="LastLogin" Multiplicity="*" />
+ </Association>
+ <Association Name="Message_Sender">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Message" Role="Message" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Sender" Multiplicity="0..1" />
+ </Association>
+ <Association Name="Message_Recipient">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Message" Role="Message" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Recipient" Multiplicity="0..1" />
+ </Association>
+ <Association Name="Message_Attachments">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.MessageAttachment" Role="Attachments" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Message" Role="Message" Multiplicity="*" />
+ </Association>
+ <Association Name="Order_Login">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Order" Role="Order" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="0..1" />
+ </Association>
+ <Association Name="Order_Customer">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Order" Role="Order" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Customer" Multiplicity="0..1" />
+ </Association>
+ <Association Name="OrderLine_Order">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine" Role="OrderLine" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Order" Role="Order" Multiplicity="0..1" />
+ </Association>
+ <Association Name="OrderLine_Product">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" Role="Product" Multiplicity="0..1" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine" Role="OrderLine" Multiplicity="*" />
+ </Association>
+ <Association Name="Product_RelatedProducts">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" Role="RelatedProducts" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" Role="Product" Multiplicity="*" />
+ </Association>
+ <Association Name="Product_Detail">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductDetail" Role="Detail" Multiplicity="0..1" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" Role="Product" Multiplicity="*" />
+ </Association>
+ <Association Name="Product_Reviews">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductReview" Role="Reviews" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" Role="Product" Multiplicity="*" />
+ </Association>
+ <Association Name="Product_Photos">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductPhoto" Role="Photos" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" Role="Product" Multiplicity="*" />
+ </Association>
+ <Association Name="ProductDetail_Product">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductDetail" Role="ProductDetail" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" Role="Product" Multiplicity="0..1" />
+ </Association>
+ <Association Name="ProductReview_Product">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductReview" Role="ProductReview" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" Role="Product" Multiplicity="0..1" />
+ </Association>
+ <Association Name="Computer_ComputerDetail">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail" Role="ComputerDetail" Multiplicity="0..1" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Computer" Role="Computer" Multiplicity="*" />
+ </Association>
+ <Association Name="ComputerDetail_Computer">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail" Role="ComputerDetail" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Computer" Role="Computer" Multiplicity="0..1" />
+ </Association>
+ <Association Name="Driver_License">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.License" Role="License" Multiplicity="0..1" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Driver" Role="Driver" Multiplicity="*" />
+ </Association>
+ <Association Name="License_Driver">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.License" Role="License" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Driver" Role="Driver" Multiplicity="0..1" />
+ </Association>
+ <Association Name="Person_PersonMetadata">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.PersonMetadata" Role="PersonMetadata" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Person" Role="Person" Multiplicity="*" />
+ </Association>
+ <Association Name="PersonMetadata_Person">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.PersonMetadata" Role="PersonMetadata" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Person" Role="Person" Multiplicity="0..1" />
+ </Association>
+ <Association Name="Employee_Manager">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Employee" Role="Manager" Multiplicity="0..1" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Employee" Role="Employee" Multiplicity="*" />
+ </Association>
+ <Association Name="SpecialEmployee_Car">
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.SpecialEmployee" Role="SpecialEmployee" Multiplicity="*" />
+ <End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Car" Role="Car" Multiplicity="0..1" />
+ </Association>
+ <EntityContainer Name="DefaultContainer" m:IsDefaultEntityContainer="true">
+ <EntitySet Name="AllGeoTypesSet" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.AllSpatialTypes" />
+ <EntitySet Name="AllGeoCollectionTypesSet" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.AllSpatialCollectionTypes" />
+ <EntitySet Name="Customer" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" />
+ <EntitySet Name="Login" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" />
+ <EntitySet Name="RSAToken" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.RSAToken" />
+ <EntitySet Name="PageView" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.PageView" />
+ <EntitySet Name="LastLogin" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.LastLogin" />
+ <EntitySet Name="Message" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Message" />
+ <EntitySet Name="MessageAttachment" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.MessageAttachment" />
+ <EntitySet Name="Order" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Order" />
+ <EntitySet Name="OrderLine" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine" />
+ <EntitySet Name="Product" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" />
+ <EntitySet Name="ProductDetail" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductDetail" />
+ <EntitySet Name="ProductReview" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductReview" />
+ <EntitySet Name="ProductPhoto" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductPhoto" />
+ <EntitySet Name="CustomerInfo" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.CustomerInfo" />
+ <EntitySet Name="Computer" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Computer" />
+ <EntitySet Name="ComputerDetail" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail" />
+ <EntitySet Name="Driver" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Driver" />
+ <EntitySet Name="License" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.License" />
+ <EntitySet Name="MappedEntityType" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.MappedEntityType" />
+ <EntitySet Name="Car" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Car" />
+ <EntitySet Name="Person" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Person" />
+ <EntitySet Name="PersonMetadata" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.PersonMetadata" />
+ <FunctionImport Name="GetPrimitiveString" ReturnType="Edm.String" m:HttpMethod="GET" />
+ <FunctionImport Name="GetSpecificCustomer" ReturnType="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Customer)" EntitySet="Customer" m:HttpMethod="GET">
+ <Parameter Name="Name" Type="Edm.String" />
+ </FunctionImport>
+ <FunctionImport Name="GetCustomerCount" ReturnType="Edm.Int32" m:HttpMethod="GET" />
+ <FunctionImport Name="GetArgumentPlusOne" ReturnType="Edm.Int32" m:HttpMethod="GET">
+ <Parameter Name="arg1" Type="Edm.Int32" Nullable="false" />
+ </FunctionImport>
+ <FunctionImport Name="EntityProjectionReturnsCollectionOfComplexTypes" ReturnType="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)" m:HttpMethod="GET" />
+ <FunctionImport Name="ResetDataSource" m:HttpMethod="POST" />
+ <FunctionImport Name="InStreamErrorGetCustomer" ReturnType="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Customer)" EntitySet="Customer" m:HttpMethod="GET" />
+ <FunctionImport Name="IncreaseSalaries" IsBindable="true" m:IsAlwaysBindable="true">
+ <Parameter Name="employees" Type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Employee)" />
+ <Parameter Name="n" Type="Edm.Int32" Nullable="false" />
+ </FunctionImport>
+ <FunctionImport Name="Sack" IsBindable="true" m:IsAlwaysBindable="true">
+ <Parameter Name="employee" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Employee" />
+ </FunctionImport>
+ <FunctionImport Name="GetComputer" ReturnType="Microsoft.Test.OData.Services.AstoriaDefaultService.Computer" IsBindable="true" EntitySet="Computer" m:IsAlwaysBindable="true">
+ <Parameter Name="computer" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Computer" />
+ </FunctionImport>
+ <FunctionImport Name="ChangeProductDimensions" IsBindable="true" m:IsAlwaysBindable="true">
+ <Parameter Name="product" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" />
+ <Parameter Name="dimensions" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Dimensions" />
+ </FunctionImport>
+ <FunctionImport Name="ResetComputerDetailsSpecifications" IsBindable="true" m:IsAlwaysBindable="true">
+ <Parameter Name="computerDetail" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail" />
+ <Parameter Name="specifications" Type="Collection(Edm.String)" Nullable="false" />
+ <Parameter Name="purchaseTime" Type="Edm.DateTime" Nullable="false" />
+ </FunctionImport>
+ <AssociationSet Name="Customer_Orders" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Orders">
+ <End Role="Customer" EntitySet="Customer" />
+ <End Role="Orders" EntitySet="Order" />
+ </AssociationSet>
+ <AssociationSet Name="Customer_Logins" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Logins">
+ <End Role="Customer" EntitySet="Customer" />
+ <End Role="Logins" EntitySet="Login" />
+ </AssociationSet>
+ <AssociationSet Name="Customer_Husband" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Husband">
+ <End Role="Customer" EntitySet="Customer" />
+ <End Role="Husband" EntitySet="Customer" />
+ </AssociationSet>
+ <AssociationSet Name="Customer_Wife" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Wife">
+ <End Role="Customer" EntitySet="Customer" />
+ <End Role="Wife" EntitySet="Customer" />
+ </AssociationSet>
+ <AssociationSet Name="Customer_Info" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Info">
+ <End Role="Customer" EntitySet="Customer" />
+ <End Role="Info" EntitySet="CustomerInfo" />
+ </AssociationSet>
+ <AssociationSet Name="Login_Customer" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_Customer">
+ <End Role="Login" EntitySet="Login" />
+ <End Role="Customer" EntitySet="Customer" />
+ </AssociationSet>
+ <AssociationSet Name="Login_LastLogin" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_LastLogin">
+ <End Role="Login" EntitySet="Login" />
+ <End Role="LastLogin" EntitySet="LastLogin" />
+ </AssociationSet>
+ <AssociationSet Name="Login_SentMessages" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_SentMessages">
+ <End Role="Login" EntitySet="Login" />
+ <End Role="SentMessages" EntitySet="Message" />
+ </AssociationSet>
+ <AssociationSet Name="Login_ReceivedMessages" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_ReceivedMessages">
+ <End Role="Login" EntitySet="Login" />
+ <End Role="ReceivedMessages" EntitySet="Message" />
+ </AssociationSet>
+ <AssociationSet Name="Login_Orders" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_Orders">
+ <End Role="Login" EntitySet="Login" />
+ <End Role="Orders" EntitySet="Order" />
+ </AssociationSet>
+ <AssociationSet Name="RSAToken_Login" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.RSAToken_Login">
+ <End Role="RSAToken" EntitySet="RSAToken" />
+ <End Role="Login" EntitySet="Login" />
+ </AssociationSet>
+ <AssociationSet Name="PageView_Login" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.PageView_Login">
+ <End Role="PageView" EntitySet="PageView" />
+ <End Role="Login" EntitySet="Login" />
+ </AssociationSet>
+ <AssociationSet Name="LastLogin_Login" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.LastLogin_Login">
+ <End Role="LastLogin" EntitySet="LastLogin" />
+ <End Role="Login" EntitySet="Login" />
+ </AssociationSet>
+ <AssociationSet Name="Message_Sender" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Message_Sender">
+ <End Role="Message" EntitySet="Message" />
+ <End Role="Sender" EntitySet="Login" />
+ </AssociationSet>
+ <AssociationSet Name="Message_Recipient" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Message_Recipient">
+ <End Role="Message" EntitySet="Message" />
+ <End Role="Recipient" EntitySet="Login" />
+ </AssociationSet>
+ <AssociationSet Name="Message_Attachments" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Message_Attachments">
+ <End Role="Message" EntitySet="Message" />
+ <End Role="Attachments" EntitySet="MessageAttachment" />
+ </AssociationSet>
+ <AssociationSet Name="Order_Login" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Order_Login">
+ <End Role="Order" EntitySet="Order" />
+ <End Role="Login" EntitySet="Login" />
+ </AssociationSet>
+ <AssociationSet Name="Order_Customer" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Order_Customer">
+ <End Role="Order" EntitySet="Order" />
+ <End Role="Customer" EntitySet="Customer" />
+ </AssociationSet>
+ <AssociationSet Name="OrderLine_Order" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine_Order">
+ <End Role="OrderLine" EntitySet="OrderLine" />
+ <End Role="Order" EntitySet="Order" />
+ </AssociationSet>
+ <AssociationSet Name="OrderLine_Product" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine_Product">
+ <End Role="OrderLine" EntitySet="OrderLine" />
+ <End Role="Product" EntitySet="Product" />
+ </AssociationSet>
+ <AssociationSet Name="Product_RelatedProducts" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_RelatedProducts">
+ <End Role="Product" EntitySet="Product" />
+ <End Role="RelatedProducts" EntitySet="Product" />
+ </AssociationSet>
+ <AssociationSet Name="Product_Detail" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_Detail">
+ <End Role="Product" EntitySet="Product" />
+ <End Role="Detail" EntitySet="ProductDetail" />
+ </AssociationSet>
+ <AssociationSet Name="Product_Reviews" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_Reviews">
+ <End Role="Product" EntitySet="Product" />
+ <End Role="Reviews" EntitySet="ProductReview" />
+ </AssociationSet>
+ <AssociationSet Name="Product_Photos" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_Photos">
+ <End Role="Product" EntitySet="Product" />
+ <End Role="Photos" EntitySet="ProductPhoto" />
+ </AssociationSet>
+ <AssociationSet Name="ProductDetail_Product" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductDetail_Product">
+ <End Role="ProductDetail" EntitySet="ProductDetail" />
+ <End Role="Product" EntitySet="Product" />
+ </AssociationSet>
+ <AssociationSet Name="ProductReview_Product" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductReview_Product">
+ <End Role="ProductReview" EntitySet="ProductReview" />
+ <End Role="Product" EntitySet="Product" />
+ </AssociationSet>
+ <AssociationSet Name="Computer_ComputerDetail" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Computer_ComputerDetail">
+ <End Role="Computer" EntitySet="Computer" />
+ <End Role="ComputerDetail" EntitySet="ComputerDetail" />
+ </AssociationSet>
+ <AssociationSet Name="ComputerDetail_Computer" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail_Computer">
+ <End Role="ComputerDetail" EntitySet="ComputerDetail" />
+ <End Role="Computer" EntitySet="Computer" />
+ </AssociationSet>
+ <AssociationSet Name="Driver_License" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Driver_License">
+ <End Role="Driver" EntitySet="Driver" />
+ <End Role="License" EntitySet="License" />
+ </AssociationSet>
+ <AssociationSet Name="License_Driver" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.License_Driver">
+ <End Role="License" EntitySet="License" />
+ <End Role="Driver" EntitySet="Driver" />
+ </AssociationSet>
+ <AssociationSet Name="Employee_Manager" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Employee_Manager">
+ <End Role="Employee" EntitySet="Person" />
+ <End Role="Manager" EntitySet="Person" />
+ </AssociationSet>
+ <AssociationSet Name="SpecialEmployee_Car" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.SpecialEmployee_Car">
+ <End Role="SpecialEmployee" EntitySet="Person" />
+ <End Role="Car" EntitySet="Car" />
+ </AssociationSet>
+ <AssociationSet Name="Person_PersonMetadata" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Person_PersonMetadata">
+ <End Role="Person" EntitySet="Person" />
+ <End Role="PersonMetadata" EntitySet="PersonMetadata" />
+ </AssociationSet>
+ <AssociationSet Name="PersonMetadata_Person" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.PersonMetadata_Person">
+ <End Role="PersonMetadata" EntitySet="PersonMetadata" />
+ <End Role="Person" EntitySet="Person" />
+ </AssociationSet>
+ </EntityContainer>
+ </Schema>
+ </edmx:DataServices>
+</edmx:Edmx>
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/288bbb72/ext/pojogen-maven-plugin/src/it/v3Sample/verify.groovy
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/it/v3Sample/verify.groovy b/ext/pojogen-maven-plugin/src/it/v3Sample/verify.groovy
new file mode 100644
index 0000000..9b74ad2
--- /dev/null
+++ b/ext/pojogen-maven-plugin/src/it/v3Sample/verify.groovy
@@ -0,0 +1,20 @@
+/**
+ * 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.
+ */
+File basepkg = new File( basedir, "target/generated-sources/ojc-plugin/org/apache/olingo/fit/proxy/v3" );
+assert basepkg.isDirectory() && basepkg.listFiles().length>0;
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/288bbb72/ext/pojogen-maven-plugin/src/it/v4Sample/pom.xml
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/it/v4Sample/pom.xml b/ext/pojogen-maven-plugin/src/it/v4Sample/pom.xml
new file mode 100644
index 0000000..b918061
--- /dev/null
+++ b/ext/pojogen-maven-plugin/src/it/v4Sample/pom.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>pojogen-maven-plugin-v4test</artifactId>
+ <groupId>org.apache.olingo</groupId>
+ <version>@project.version@</version>
+ <name>${project.artifactId}</name>
+ <description>A simple IT verifying the basic use case of pojogen-man-plugin.</description>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <artifactId>pojogen-maven-plugin</artifactId>
+ <groupId>org.apache.olingo</groupId>
+ <version>@project.version@</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <artifactId>olingo-client-proxy</artifactId>
+ <groupId>org.apache.olingo</groupId>
+ <version>@project.version@</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>1.8</version>
+ <executions>
+ <execution>
+ <phase>process-sources</phase>
+ <goals>
+ <goal>add-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>${project.build.directory}/generated-sources</source>
+ </sources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>@project.groupId@</groupId>
+ <artifactId>pojogen-maven-plugin</artifactId>
+ <version>@project.version@</version>
+ <executions>
+ <execution>
+ <configuration>
+ <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
+ <localEdm>${project.basedir}/src/test/resources/metadata.xml</localEdm>
+ <basePackage>org.apache.olingo.fit.proxy.v4.staticservice</basePackage>
+ </configuration>
+ <id>v4pojoGen</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>v4pojoGen</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>