You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by fm...@apache.org on 2014/05/26 16:05:20 UTC

[23/24] git commit: Some refinements arounf pojogen

Some refinements arounf pojogen


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/24a031b7
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/24a031b7
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/24a031b7

Branch: refs/heads/master
Commit: 24a031b7503b85a1f972b578285663a880704915
Parents: 5b5ff8e
Author: fmartelli <fa...@gmail.com>
Authored: Mon May 26 16:00:25 2014 +0200
Committer: fmartelli <fa...@gmail.com>
Committed: Mon May 26 16:00:25 2014 +0200

----------------------------------------------------------------------
 .../src/it/exchangeMail/pom.xml                 |  93 +++++
 .../src/test/resources/metadata.xml             | 353 +++++++++++++++++++
 .../src/it/exchangeMail/verify.groovy           |  20 ++
 .../src/it/exchangeMailNoBasePkg/pom.xml        |  92 +++++
 .../src/test/resources/metadata.xml             | 353 +++++++++++++++++++
 .../src/it/exchangeMailNoBasePkg/verify.groovy  |  20 ++
 .../olingo/ext/pojogen/AbstractPOJOGenMojo.java |  39 +-
 .../olingo/ext/pojogen/AbstractUtility.java     |  31 +-
 .../src/main/resources/complexType.vm           |  13 +-
 .../src/main/resources/containedEntitySet.vm    |  65 ----
 .../src/main/resources/container.vm             |  20 +-
 .../src/main/resources/entityCollection.vm      |   6 +-
 .../src/main/resources/entitySet.vm             |   6 +-
 .../src/main/resources/entityType.vm            |  98 +++--
 .../src/main/resources/entityTypeKey.vm         |   6 +-
 .../src/main/resources/enumType.vm              |   4 +-
 .../src/main/resources/singleton.vm             |   4 +-
 .../src/main/resources/term.vm                  |   8 +-
 .../src/main/resources/v30/complexType.vm       |  19 +-
 .../src/main/resources/v40/complexType.vm       |  75 ++--
 .../src/main/resources/v40/singleton.vm         |   2 +-
 .../AllGeoCollectionTypesSet.java               |   5 +-
 .../astoriadefaultservice/AllGeoTypesSet.java   |   5 +-
 .../services/astoriadefaultservice/Car.java     |   5 +-
 .../astoriadefaultservice/Computer.java         |   5 +-
 .../astoriadefaultservice/ComputerDetail.java   |   5 +-
 .../astoriadefaultservice/Customer.java         |   5 +-
 .../astoriadefaultservice/CustomerInfo.java     |   5 +-
 .../astoriadefaultservice/DefaultContainer.java |  50 +--
 .../services/astoriadefaultservice/Driver.java  |   5 +-
 .../astoriadefaultservice/LastLogin.java        |   5 +-
 .../services/astoriadefaultservice/License.java |   5 +-
 .../services/astoriadefaultservice/Login.java   |   5 +-
 .../astoriadefaultservice/MappedEntityType.java |   5 +-
 .../services/astoriadefaultservice/Message.java |   3 +-
 .../MessageAttachment.java                      |   5 +-
 .../services/astoriadefaultservice/Order.java   |   5 +-
 .../astoriadefaultservice/OrderLine.java        |   3 +-
 .../astoriadefaultservice/PageView.java         |   5 +-
 .../services/astoriadefaultservice/Person.java  |   5 +-
 .../astoriadefaultservice/PersonMetadata.java   |   5 +-
 .../services/astoriadefaultservice/Product.java |   5 +-
 .../astoriadefaultservice/ProductDetail.java    |   5 +-
 .../astoriadefaultservice/ProductPhoto.java     |   3 +-
 .../astoriadefaultservice/ProductReview.java    |   3 +-
 .../astoriadefaultservice/RSAToken.java         |   5 +-
 .../astoriadefaultservice/types/Aliases.java    |  23 +-
 .../types/AllSpatialCollectionTypes.java        |  40 ++-
 .../AllSpatialCollectionTypesCollection.java    |   7 +-
 .../types/AllSpatialCollectionTypes_Simple.java | 100 ++++--
 ...SpatialCollectionTypes_SimpleCollection.java |   7 +-
 .../types/AllSpatialTypes.java                  | 200 +++++++----
 .../types/AllSpatialTypesCollection.java        |   7 +-
 .../astoriadefaultservice/types/AuditInfo.java  |  35 +-
 .../types/BackOrderLine.java                    | 106 ++++--
 .../types/BackOrderLine2.java                   | 106 ++++--
 .../types/BackOrderLine2Collection.java         |   7 +-
 .../types/BackOrderLineCollection.java          |   7 +-
 .../astoriadefaultservice/types/Car.java        |  66 ++--
 .../types/CarCollection.java                    |   7 +-
 .../types/ComplexToCategory.java                |  35 +-
 .../astoriadefaultservice/types/Computer.java   |  60 +++-
 .../types/ComputerCollection.java               |   7 +-
 .../types/ComputerDetail.java                   | 114 ++++--
 .../types/ComputerDetailCollection.java         |   7 +-
 .../types/ConcurrencyInfo.java                  |  29 +-
 .../types/ContactDetails.java                   |  55 +--
 .../astoriadefaultservice/types/Contractor.java | 106 ++++--
 .../types/ContractorCollection.java             |   7 +-
 .../astoriadefaultservice/types/Customer.java   | 168 ++++++---
 .../types/CustomerCollection.java               |   7 +-
 .../types/CustomerInfo.java                     |  50 ++-
 .../types/CustomerInfoCollection.java           |   7 +-
 .../astoriadefaultservice/types/Dimensions.java |  35 +-
 .../types/DiscontinuedProduct.java              | 195 ++++++----
 .../types/DiscontinuedProductCollection.java    |   7 +-
 .../astoriadefaultservice/types/Driver.java     |  60 +++-
 .../types/DriverCollection.java                 |   7 +-
 .../astoriadefaultservice/types/Employee.java   | 116 ++++--
 .../types/EmployeeCollection.java               |   9 +-
 .../astoriadefaultservice/types/LastLogin.java  |  80 +++--
 .../types/LastLoginCollection.java              |   7 +-
 .../astoriadefaultservice/types/License.java    |  90 +++--
 .../types/LicenseCollection.java                |   7 +-
 .../astoriadefaultservice/types/Login.java      | 116 ++++--
 .../types/LoginCollection.java                  |   7 +-
 .../types/MappedEntityType.java                 | 230 ++++++++----
 .../types/MappedEntityTypeCollection.java       |   7 +-
 .../astoriadefaultservice/types/Message.java    | 138 +++++---
 .../types/MessageAttachment.java                |  48 ++-
 .../types/MessageAttachmentCollection.java      |   7 +-
 .../types/MessageCollection.java                |   7 +-
 .../astoriadefaultservice/types/MessageKey.java |  14 +-
 .../astoriadefaultservice/types/Order.java      |  88 +++--
 .../types/OrderCollection.java                  |   7 +-
 .../astoriadefaultservice/types/OrderLine.java  | 110 ++++--
 .../types/OrderLineCollection.java              |   7 +-
 .../types/OrderLineKey.java                     |  14 +-
 .../astoriadefaultservice/types/PageView.java   |  90 +++--
 .../types/PageViewCollection.java               |   7 +-
 .../astoriadefaultservice/types/Person.java     |  66 ++--
 .../types/PersonCollection.java                 |   7 +-
 .../types/PersonMetadata.java                   |  80 +++--
 .../types/PersonMetadataCollection.java         |   7 +-
 .../astoriadefaultservice/types/Phone.java      |  29 +-
 .../astoriadefaultservice/types/Product.java    | 158 ++++++---
 .../types/ProductCollection.java                |   7 +-
 .../types/ProductDetail.java                    |  60 +++-
 .../types/ProductDetailCollection.java          |   7 +-
 .../types/ProductPageView.java                  | 110 ++++--
 .../types/ProductPageViewCollection.java        |   7 +-
 .../types/ProductPhoto.java                     |  58 ++-
 .../types/ProductPhotoCollection.java           |   7 +-
 .../types/ProductPhotoKey.java                  |  14 +-
 .../types/ProductReview.java                    |  80 +++--
 .../types/ProductReviewCollection.java          |   7 +-
 .../types/ProductReviewKey.java                 |  20 +-
 .../astoriadefaultservice/types/RSAToken.java   |  60 +++-
 .../types/RSATokenCollection.java               |   7 +-
 .../types/SpecialEmployee.java                  | 158 ++++++---
 .../types/SpecialEmployeeCollection.java        |   9 +-
 .../opentypesservicev3/DefaultContainer.java    |  10 +-
 .../odata/services/opentypesservicev3/Row.java  |   5 +-
 .../services/opentypesservicev3/RowIndex.java   |   5 +-
 .../types/ContactDetails.java                   |  87 +++--
 .../opentypesservicev3/types/IndexedRow.java    |  40 ++-
 .../types/IndexedRowCollection.java             |   7 +-
 .../services/opentypesservicev3/types/Row.java  |  40 ++-
 .../opentypesservicev3/types/RowCollection.java |   7 +-
 .../opentypesservicev3/types/RowIndex.java      |  50 ++-
 .../types/RowIndexCollection.java               |   7 +-
 .../primitivekeysservice/EdmBinarySet.java      |   3 +-
 .../primitivekeysservice/EdmBooleanSet.java     |   5 +-
 .../primitivekeysservice/EdmByteSet.java        |   5 +-
 .../EdmDateTimeOffsetSet.java                   |   5 +-
 .../primitivekeysservice/EdmDateTimeSet.java    |   5 +-
 .../primitivekeysservice/EdmDecimalSet.java     |   5 +-
 .../primitivekeysservice/EdmDoubleSet.java      |   5 +-
 .../primitivekeysservice/EdmGuidSet.java        |   5 +-
 .../primitivekeysservice/EdmInt16Set.java       |   5 +-
 .../primitivekeysservice/EdmInt32Set.java       |   5 +-
 .../primitivekeysservice/EdmInt64Set.java       |   5 +-
 .../primitivekeysservice/EdmSingleSet.java      |   5 +-
 .../primitivekeysservice/EdmStringSet.java      |   5 +-
 .../primitivekeysservice/EdmTimeSet.java        |   5 +-
 .../services/primitivekeysservice/Folders.java  |   5 +-
 .../primitivekeysservice/TestContext.java       |  21 +-
 .../primitivekeysservice/types/EdmBinary.java   |  38 +-
 .../types/EdmBinaryCollection.java              |   7 +-
 .../primitivekeysservice/types/EdmBoolean.java  |  40 ++-
 .../types/EdmBooleanCollection.java             |   7 +-
 .../primitivekeysservice/types/EdmByte.java     |  40 ++-
 .../types/EdmByteCollection.java                |   7 +-
 .../primitivekeysservice/types/EdmDateTime.java |  40 ++-
 .../types/EdmDateTimeCollection.java            |   7 +-
 .../types/EdmDateTimeOffset.java                |  40 ++-
 .../types/EdmDateTimeOffsetCollection.java      |   7 +-
 .../primitivekeysservice/types/EdmDecimal.java  |  40 ++-
 .../types/EdmDecimalCollection.java             |   7 +-
 .../primitivekeysservice/types/EdmDouble.java   |  40 ++-
 .../types/EdmDoubleCollection.java              |   7 +-
 .../primitivekeysservice/types/EdmGuid.java     |  40 ++-
 .../types/EdmGuidCollection.java                |   7 +-
 .../primitivekeysservice/types/EdmInt16.java    |  40 ++-
 .../types/EdmInt16Collection.java               |   7 +-
 .../primitivekeysservice/types/EdmInt32.java    |  40 ++-
 .../types/EdmInt32Collection.java               |   7 +-
 .../primitivekeysservice/types/EdmInt64.java    |  40 ++-
 .../types/EdmInt64Collection.java               |   7 +-
 .../primitivekeysservice/types/EdmSingle.java   |  40 ++-
 .../types/EdmSingleCollection.java              |   7 +-
 .../primitivekeysservice/types/EdmString.java   |  40 ++-
 .../types/EdmStringCollection.java              |   7 +-
 .../primitivekeysservice/types/EdmTime.java     |  40 ++-
 .../types/EdmTimeCollection.java                |   7 +-
 .../primitivekeysservice/types/Folder.java      |  60 +++-
 .../types/FolderCollection.java                 |   7 +-
 .../AllGeoCollectionTypesSet.java               |   5 +-
 .../astoriadefaultservice/AllGeoTypesSet.java   |   5 +-
 .../services/astoriadefaultservice/Car.java     |   5 +-
 .../astoriadefaultservice/Computer.java         |   5 +-
 .../astoriadefaultservice/ComputerDetail.java   |   5 +-
 .../astoriadefaultservice/Customer.java         |   5 +-
 .../astoriadefaultservice/CustomerInfo.java     |   5 +-
 .../astoriadefaultservice/DefaultContainer.java |  72 ++--
 .../services/astoriadefaultservice/Driver.java  |   5 +-
 .../astoriadefaultservice/LastLogin.java        |   5 +-
 .../services/astoriadefaultservice/License.java |   5 +-
 .../services/astoriadefaultservice/Login.java   |   5 +-
 .../astoriadefaultservice/MappedEntityType.java |   5 +-
 .../services/astoriadefaultservice/Message.java |   3 +-
 .../MessageAttachment.java                      |   5 +-
 .../services/astoriadefaultservice/Order.java   |   5 +-
 .../astoriadefaultservice/OrderLine.java        |   3 +-
 .../astoriadefaultservice/PageView.java         |   5 +-
 .../services/astoriadefaultservice/Person.java  |   5 +-
 .../astoriadefaultservice/PersonMetadata.java   |   5 +-
 .../services/astoriadefaultservice/Product.java |   5 +-
 .../astoriadefaultservice/ProductDetail.java    |   5 +-
 .../astoriadefaultservice/ProductPhoto.java     |   3 +-
 .../astoriadefaultservice/ProductReview.java    |   3 +-
 .../astoriadefaultservice/RSAToken.java         |   5 +-
 .../astoriadefaultservice/types/Aliases.java    |  23 +-
 .../types/AllSpatialCollectionTypes.java        |  40 ++-
 .../AllSpatialCollectionTypesCollection.java    |   7 +-
 .../types/AllSpatialCollectionTypes_Simple.java | 100 ++++--
 ...SpatialCollectionTypes_SimpleCollection.java |   7 +-
 .../types/AllSpatialTypes.java                  | 200 +++++++----
 .../types/AllSpatialTypesCollection.java        |   7 +-
 .../astoriadefaultservice/types/AuditInfo.java  |  35 +-
 .../types/BackOrderLine.java                    | 102 ++++--
 .../types/BackOrderLine2.java                   | 102 ++++--
 .../types/BackOrderLine2Collection.java         |   7 +-
 .../types/BackOrderLineCollection.java          |   7 +-
 .../astoriadefaultservice/types/Car.java        |  66 ++--
 .../types/CarCollection.java                    |   7 +-
 .../types/ComplexToCategory.java                |  35 +-
 .../types/ComplexWithAllPrimitiveTypes.java     |  99 +++---
 .../astoriadefaultservice/types/Computer.java   |  66 ++--
 .../types/ComputerCollection.java               |   7 +-
 .../types/ComputerDetail.java                   | 120 ++++---
 .../types/ComputerDetailCollection.java         |   7 +-
 .../types/ConcurrencyInfo.java                  |  29 +-
 .../types/ContactDetails.java                   |  55 +--
 .../astoriadefaultservice/types/Contractor.java | 100 ++++--
 .../types/ContractorCollection.java             |   7 +-
 .../astoriadefaultservice/types/Customer.java   | 168 ++++++---
 .../types/CustomerCollection.java               |   7 +-
 .../types/CustomerInfo.java                     |  50 ++-
 .../types/CustomerInfoCollection.java           |   7 +-
 .../astoriadefaultservice/types/Dimensions.java |  35 +-
 .../types/DiscontinuedProduct.java              | 195 ++++++----
 .../types/DiscontinuedProductCollection.java    |   7 +-
 .../astoriadefaultservice/types/Driver.java     |  60 +++-
 .../types/DriverCollection.java                 |   7 +-
 .../astoriadefaultservice/types/Employee.java   | 110 ++++--
 .../types/EmployeeCollection.java               |   9 +-
 .../astoriadefaultservice/types/LastLogin.java  |  80 +++--
 .../types/LastLoginCollection.java              |   7 +-
 .../astoriadefaultservice/types/License.java    |  90 +++--
 .../types/LicenseCollection.java                |   7 +-
 .../astoriadefaultservice/types/Login.java      | 116 ++++--
 .../types/LoginCollection.java                  |   7 +-
 .../types/MappedEntityType.java                 | 230 ++++++++----
 .../types/MappedEntityTypeCollection.java       |   7 +-
 .../astoriadefaultservice/types/Message.java    | 138 +++++---
 .../types/MessageAttachment.java                |  48 ++-
 .../types/MessageAttachmentCollection.java      |   7 +-
 .../types/MessageCollection.java                |   7 +-
 .../astoriadefaultservice/types/MessageKey.java |  14 +-
 .../astoriadefaultservice/types/Order.java      |  88 +++--
 .../types/OrderCollection.java                  |   7 +-
 .../astoriadefaultservice/types/OrderLine.java  | 102 ++++--
 .../types/OrderLineCollection.java              |   7 +-
 .../types/OrderLineKey.java                     |  14 +-
 .../astoriadefaultservice/types/PageView.java   |  90 +++--
 .../types/PageViewCollection.java               |   7 +-
 .../astoriadefaultservice/types/Person.java     |  60 +++-
 .../types/PersonCollection.java                 |   7 +-
 .../types/PersonMetadata.java                   |  80 +++--
 .../types/PersonMetadataCollection.java         |   7 +-
 .../astoriadefaultservice/types/Phone.java      |  29 +-
 .../astoriadefaultservice/types/Product.java    | 156 +++++---
 .../types/ProductCollection.java                |   7 +-
 .../types/ProductDetail.java                    |  60 +++-
 .../types/ProductDetailCollection.java          |   7 +-
 .../types/ProductPageView.java                  | 110 ++++--
 .../types/ProductPageViewCollection.java        |   7 +-
 .../types/ProductPhoto.java                     |  58 ++-
 .../types/ProductPhotoCollection.java           |   7 +-
 .../types/ProductPhotoKey.java                  |  14 +-
 .../types/ProductReview.java                    |  80 +++--
 .../types/ProductReviewCollection.java          |   7 +-
 .../types/ProductReviewKey.java                 |  20 +-
 .../astoriadefaultservice/types/RSAToken.java   |  60 +++-
 .../types/RSATokenCollection.java               |   7 +-
 .../types/SpecialEmployee.java                  | 152 +++++---
 .../types/SpecialEmployeeCollection.java        |   7 +-
 .../fit/proxy/v4/demo/Advertisements.java       |  52 +++
 .../olingo/fit/proxy/v4/demo/Categories.java    |  52 +++
 .../olingo/fit/proxy/v4/demo/DemoService.java   |  83 +++++
 .../olingo/fit/proxy/v4/demo/PersonDetails.java |  52 +++
 .../olingo/fit/proxy/v4/demo/Persons.java       |  56 +++
 .../fit/proxy/v4/demo/ProductDetails.java       |  52 +++
 .../olingo/fit/proxy/v4/demo/Products.java      |  54 +++
 .../olingo/fit/proxy/v4/demo/Suppliers.java     |  52 +++
 .../proxy/v4/demo/odatademo/Advertisements.java |  52 ---
 .../fit/proxy/v4/demo/odatademo/Categories.java |  52 ---
 .../proxy/v4/demo/odatademo/DemoService.java    |  85 -----
 .../proxy/v4/demo/odatademo/PersonDetails.java  |  52 ---
 .../fit/proxy/v4/demo/odatademo/Persons.java    |  56 ---
 .../proxy/v4/demo/odatademo/ProductDetails.java |  52 ---
 .../fit/proxy/v4/demo/odatademo/Products.java   |  54 ---
 .../fit/proxy/v4/demo/odatademo/Suppliers.java  |  52 ---
 .../proxy/v4/demo/odatademo/package-info.java   |  21 --
 .../proxy/v4/demo/odatademo/types/Address.java  | 140 --------
 .../v4/demo/odatademo/types/Advertisement.java  | 150 --------
 .../types/AdvertisementCollection.java          |  47 ---
 .../proxy/v4/demo/odatademo/types/Category.java | 124 -------
 .../odatademo/types/CategoryCollection.java     |  47 ---
 .../proxy/v4/demo/odatademo/types/Customer.java | 148 --------
 .../odatademo/types/CustomerCollection.java     |  47 ---
 .../proxy/v4/demo/odatademo/types/Employee.java | 194 ----------
 .../odatademo/types/EmployeeCollection.java     |  47 ---
 .../demo/odatademo/types/FeaturedProduct.java   | 276 ---------------
 .../types/FeaturedProductCollection.java        |  47 ---
 .../proxy/v4/demo/odatademo/types/Person.java   | 124 -------
 .../demo/odatademo/types/PersonCollection.java  |  47 ---
 .../v4/demo/odatademo/types/PersonDetail.java   | 224 ------------
 .../odatademo/types/PersonDetailCollection.java |  47 ---
 .../proxy/v4/demo/odatademo/types/Product.java  | 271 --------------
 .../demo/odatademo/types/ProductCollection.java |  47 ---
 .../v4/demo/odatademo/types/ProductDetail.java  | 124 -------
 .../types/ProductDetailCollection.java          |  47 ---
 .../proxy/v4/demo/odatademo/types/Supplier.java | 201 -----------
 .../odatademo/types/SupplierCollection.java     |  47 ---
 .../v4/demo/odatademo/types/package-info.java   |  21 --
 .../olingo/fit/proxy/v4/demo/package-info.java  |  21 ++
 .../olingo/fit/proxy/v4/demo/types/Address.java | 178 ++++++++++
 .../fit/proxy/v4/demo/types/Advertisement.java  | 176 +++++++++
 .../v4/demo/types/AdvertisementCollection.java  |  52 +++
 .../fit/proxy/v4/demo/types/Category.java       | 146 ++++++++
 .../proxy/v4/demo/types/CategoryCollection.java |  52 +++
 .../fit/proxy/v4/demo/types/Customer.java       | 174 +++++++++
 .../proxy/v4/demo/types/CustomerCollection.java |  52 +++
 .../fit/proxy/v4/demo/types/Employee.java       | 228 ++++++++++++
 .../proxy/v4/demo/types/EmployeeCollection.java |  52 +++
 .../proxy/v4/demo/types/FeaturedProduct.java    | 330 +++++++++++++++++
 .../demo/types/FeaturedProductCollection.java   |  52 +++
 .../olingo/fit/proxy/v4/demo/types/Person.java  | 146 ++++++++
 .../proxy/v4/demo/types/PersonCollection.java   |  52 +++
 .../fit/proxy/v4/demo/types/PersonDetail.java   | 258 ++++++++++++++
 .../v4/demo/types/PersonDetailCollection.java   |  52 +++
 .../olingo/fit/proxy/v4/demo/types/Product.java | 321 +++++++++++++++++
 .../proxy/v4/demo/types/ProductCollection.java  |  52 +++
 .../fit/proxy/v4/demo/types/ProductDetail.java  | 146 ++++++++
 .../v4/demo/types/ProductDetailCollection.java  |  52 +++
 .../fit/proxy/v4/demo/types/Supplier.java       | 231 ++++++++++++
 .../proxy/v4/demo/types/SupplierCollection.java |  52 +++
 .../fit/proxy/v4/demo/types/package-info.java   |  21 ++
 .../opentypesservicev4/DefaultContainer.java    |  10 +-
 .../odata/services/opentypesservicev4/Row.java  |   4 +-
 .../services/opentypesservicev4/RowIndex.java   |   4 +-
 .../opentypesservicev4/types/AccountInfo.java   |  45 ++-
 .../opentypesservicev4/types/Color.java         |  10 +-
 .../types/ContactDetails.java                   | 141 ++++++--
 .../opentypesservicev4/types/IndexedRow.java    |  37 +-
 .../types/IndexedRowCollection.java             |   2 +-
 .../services/opentypesservicev4/types/Row.java  |  37 +-
 .../opentypesservicev4/types/RowCollection.java |   2 +-
 .../opentypesservicev4/types/RowIndex.java      |  43 ++-
 .../types/RowIndexCollection.java               |   2 +-
 .../services/odatawcfservice/Accounts.java      |   5 +-
 .../odatawcfservice/ActiveSubscriptions.java    |  51 ---
 .../odata/services/odatawcfservice/Assets.java  |  51 ---
 .../odatawcfservice/BillingStatements.java      |  51 ---
 .../odata/services/odatawcfservice/Boss.java    |   5 +-
 .../odata/services/odatawcfservice/Club.java    |  51 ---
 .../odata/services/odatawcfservice/Company.java |   5 +-
 .../services/odatawcfservice/CreditRecords.java |  51 ---
 .../services/odatawcfservice/Customers.java     |   5 +-
 .../odatawcfservice/DefaultStoredPI.java        |   5 +-
 .../services/odatawcfservice/Departments.java   |   5 +-
 .../services/odatawcfservice/Employees.java     |   5 +-
 .../odatawcfservice/InMemoryEntities.java       |  57 ++-
 .../services/odatawcfservice/LabourUnion.java   |   5 +-
 .../services/odatawcfservice/MyGiftCard.java    |  51 ---
 .../odatawcfservice/MyPaymentInstruments.java   |  53 ---
 .../services/odatawcfservice/OrderDetails.java  |   3 +-
 .../odata/services/odatawcfservice/Orders.java  |   5 +-
 .../odata/services/odatawcfservice/People.java  |   5 +-
 .../odatawcfservice/ProductDetails.java         |   3 +-
 .../odatawcfservice/ProductReviews.java         |   3 +-
 .../services/odatawcfservice/Products.java      |   5 +-
 .../services/odatawcfservice/PublicCompany.java |   5 +-
 .../services/odatawcfservice/StoredPIs.java     |   5 +-
 .../odatawcfservice/SubscriptionTemplates.java  |   5 +-
 .../services/odatawcfservice/VipCustomer.java   |   5 +-
 .../services/odatawcfservice/package-info.java  |   1 +
 .../odatawcfservice/types/AccessLevel.java      |  11 +-
 .../services/odatawcfservice/types/Account.java | 137 +++----
 .../types/AccountCollection.java                |   3 +-
 .../odatawcfservice/types/AccountInfo.java      |  38 +-
 .../services/odatawcfservice/types/Address.java |  46 ++-
 .../services/odatawcfservice/types/Asset.java   |  51 +--
 .../odatawcfservice/types/AssetCollection.java  |   3 +-
 .../services/odatawcfservice/types/Club.java    |  43 +--
 .../odatawcfservice/types/ClubCollection.java   |   3 +-
 .../services/odatawcfservice/types/Color.java   |  11 +-
 .../services/odatawcfservice/types/Company.java |  93 +++--
 .../odatawcfservice/types/CompanyAddress.java   |  55 +--
 .../odatawcfservice/types/CompanyCategory.java  |  11 +-
 .../types/CompanyCollection.java                |   3 +-
 .../odatawcfservice/types/CreditCardPI.java     | 148 ++++----
 .../types/CreditCardPICollection.java           |   3 +-
 .../odatawcfservice/types/CreditRecord.java     |  59 ++--
 .../types/CreditRecordCollection.java           |   3 +-
 .../odatawcfservice/types/Customer.java         | 131 ++++---
 .../types/CustomerCollection.java               |   3 +-
 .../odatawcfservice/types/Department.java       |  57 +--
 .../types/DepartmentCollection.java             |   3 +-
 .../odatawcfservice/types/Employee.java         | 117 +++---
 .../types/EmployeeCollection.java               |   3 +-
 .../odatawcfservice/types/GiftCard.java         |  73 ++--
 .../types/GiftCardCollection.java               |   3 +-
 .../odatawcfservice/types/HomeAddress.java      |  55 +--
 .../services/odatawcfservice/types/IsBoss.java  |   5 +-
 .../odatawcfservice/types/LabourUnion.java      |  43 +--
 .../types/LabourUnionCollection.java            |   3 +-
 .../services/odatawcfservice/types/Order.java   |  77 ++--
 .../odatawcfservice/types/OrderCollection.java  |   3 +-
 .../odatawcfservice/types/OrderDetail.java      |  79 +++--
 .../types/OrderDetailCollection.java            |   3 +-
 .../odatawcfservice/types/OrderDetailKey.java   |  15 +-
 .../types/PaymentInstrument.java                |  96 ++---
 .../types/PaymentInstrumentCollection.java      |   3 +-
 .../services/odatawcfservice/types/Person.java  | 103 +++---
 .../odatawcfservice/types/PersonCollection.java |   3 +-
 .../services/odatawcfservice/types/Product.java | 103 +++---
 .../types/ProductCollection.java                |   5 +-
 .../odatawcfservice/types/ProductDetail.java    |  73 ++--
 .../types/ProductDetailCollection.java          |   3 +-
 .../odatawcfservice/types/ProductDetailKey.java |  15 +-
 .../odatawcfservice/types/ProductReview.java    |  75 ++--
 .../types/ProductReviewCollection.java          |   3 +-
 .../odatawcfservice/types/ProductReviewKey.java |  27 +-
 .../odatawcfservice/types/PublicCompany.java    | 138 ++++----
 .../types/PublicCompanyCollection.java          |   3 +-
 .../odatawcfservice/types/Statement.java        |  59 ++--
 .../types/StatementCollection.java              |   3 +-
 .../odatawcfservice/types/StoredPI.java         |  59 ++--
 .../types/StoredPICollection.java               |   3 +-
 .../odatawcfservice/types/Subscription.java     |  67 ++--
 .../types/SubscriptionCollection.java           |   3 +-
 .../odatawcfservice/types/package-info.java     |   1 +
 .../olingo/fit/v4/ErrorResponseTestITCase.java  |   2 -
 .../olingo/client/core/edm/EdmSchemaImpl.java   |  11 +-
 .../commons/core/edm/AbstractEdmSchema.java     |   6 +-
 438 files changed, 12043 insertions(+), 7836 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/ext/pojogen-maven-plugin/src/it/exchangeMail/pom.xml
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/it/exchangeMail/pom.xml b/ext/pojogen-maven-plugin/src/it/exchangeMail/pom.xml
new file mode 100644
index 0000000..b918061
--- /dev/null
+++ b/ext/pojogen-maven-plugin/src/it/exchangeMail/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>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/ext/pojogen-maven-plugin/src/it/exchangeMail/src/test/resources/metadata.xml
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/it/exchangeMail/src/test/resources/metadata.xml b/ext/pojogen-maven-plugin/src/it/exchangeMail/src/test/resources/metadata.xml
new file mode 100644
index 0000000..9cb28ec
--- /dev/null
+++ b/ext/pojogen-maven-plugin/src/it/exchangeMail/src/test/resources/metadata.xml
@@ -0,0 +1,353 @@
+<?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="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
+  <edmx:DataServices>
+    <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="0" />
+        <Member Name="Optional" Value="1" />
+        <Member Name="Resource" Value="2" />
+      </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="Unknown" Value="0" />
+        <Member Name="Free" Value="1" />
+        <Member Name="Tentative" Value="2" />
+        <Member Name="Busy" Value="3" />
+        <Member Name="Oof" Value="4" />
+        <Member Name="WorkingElsewhere" Value="5" />
+      </EnumType>
+      <EnumType Name="MeetingMessageType">
+        <Member Name="None" Value="0" />
+        <Member Name="MeetingRequest" Value="1" />
+        <Member Name="MeetingCancelled" Value="2" />
+        <Member Name="MeetingAccepted" Value="3" />
+        <Member Name="MeetingTenativelyAccepted" Value="4" />
+        <Member Name="MeetingDeclined" Value="5" />
+      </EnumType>
+      <EnumType Name="RecurrencePatternType">
+        <Member Name="Daily" Value="0" />
+        <Member Name="Weekly" Value="1" />
+        <Member Name="AbsoluteMonthly" Value="2" />
+        <Member Name="RelativeMonthly" Value="3" />
+        <Member Name="AbsoluteYearly" Value="4" />
+        <Member Name="RelativeYearly" Value="5" />
+      </EnumType>
+      <EnumType Name="RecurrenceRangeType">
+        <Member Name="EndDate" Value="0" />
+        <Member Name="NoEnd" Value="1" />
+        <Member Name="Numbered" Value="2" />
+      </EnumType>
+      <EnumType Name="WeekIndex">
+        <Member Name="First" Value="0" />
+        <Member Name="Second" Value="1" />
+        <Member Name="Third" Value="2" />
+        <Member Name="Fourth" Value="3" />
+        <Member Name="Last" Value="4" />
+      </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>
+      <ComplexType Name="RecurrencePattern">
+        <Property Name="Type" Type="Microsoft.Exchange.Services.OData.Model.RecurrencePatternType" />
+        <Property Name="Interval" Type="Edm.Int32" Nullable="false" />
+        <Property Name="DayOfMonth" Type="Edm.Int32" Nullable="false" />
+        <Property Name="Month" Type="Edm.Int32" Nullable="false" />
+        <Property Name="DaysOfWeek" Type="Collection(System.DayOfWeek)" />
+        <Property Name="FirstDayOfWeek" Type="System.DayOfWeek" />
+        <Property Name="Index" Type="Microsoft.Exchange.Services.OData.Model.WeekIndex" />
+      </ComplexType>
+      <ComplexType Name="RecurrenceRange">
+        <Property Name="Type" Type="Microsoft.Exchange.Services.OData.Model.RecurrenceRangeType" />
+        <Property Name="StartDate" Type="Edm.DateTimeOffset" />
+        <Property Name="EndDate" Type="Edm.DateTimeOffset" />
+        <Property Name="NumberOfOccurrences" Type="Edm.Int32" Nullable="false" />
+      </ComplexType>
+      <ComplexType Name="PatternedRecurrence">
+        <Property Name="Pattern" Type="Microsoft.Exchange.Services.OData.Model.RecurrencePattern" />
+        <Property Name="Range" Type="Microsoft.Exchange.Services.OData.Model.RecurrenceRange" />
+      </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)" ContainsTarget="true" />
+        <NavigationProperty Name="Messages" Type="Collection(Microsoft.Exchange.Services.OData.Model.Message)" ContainsTarget="true" />
+        <NavigationProperty Name="RootFolder" Type="Microsoft.Exchange.Services.OData.Model.Folder" ContainsTarget="true" />
+        <NavigationProperty Name="Inbox" Type="Microsoft.Exchange.Services.OData.Model.Folder" ContainsTarget="true" />
+        <NavigationProperty Name="Drafts" Type="Microsoft.Exchange.Services.OData.Model.Folder" ContainsTarget="true" />
+        <NavigationProperty Name="SentItems" Type="Microsoft.Exchange.Services.OData.Model.Folder" ContainsTarget="true" />
+        <NavigationProperty Name="DeletedItems" Type="Microsoft.Exchange.Services.OData.Model.Folder" ContainsTarget="true" />
+        <NavigationProperty Name="Calendars" Type="Collection(Microsoft.Exchange.Services.OData.Model.Calendar)" ContainsTarget="true" />
+        <NavigationProperty Name="Calendar" Type="Microsoft.Exchange.Services.OData.Model.Calendar" ContainsTarget="true" />
+        <NavigationProperty Name="CalendarGroups" Type="Collection(Microsoft.Exchange.Services.OData.Model.CalendarGroup)" ContainsTarget="true" />
+        <NavigationProperty Name="Events" Type="Collection(Microsoft.Exchange.Services.OData.Model.Event)" ContainsTarget="true" />
+        <NavigationProperty Name="Contacts" Type="Collection(Microsoft.Exchange.Services.OData.Model.Contact)" ContainsTarget="true" />
+        <NavigationProperty Name="ContactFolders" Type="Collection(Microsoft.Exchange.Services.OData.Model.ContactFolder)" ContainsTarget="true" />
+      </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)" ContainsTarget="true" />
+        <NavigationProperty Name="Messages" Type="Collection(Microsoft.Exchange.Services.OData.Model.Message)" ContainsTarget="true" />
+      </EntityType>
+      <Action Name="Copy" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+        <Parameter Name="DestinationId" Type="Edm.String" />
+        <ReturnType Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+      </Action>
+      <Action Name="Move" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+        <Parameter Name="DestinationId" Type="Edm.String" />
+        <ReturnType Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+      </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" />
+        <NavigationProperty Name="Attachments" Type="Collection(Microsoft.Exchange.Services.OData.Model.Attachment)" ContainsTarget="true" />
+      </EntityType>
+      <EntityType Name="Message" 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="ConversationId" 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" />
+        <Property Name="EventId" Type="Edm.String" />
+        <Property Name="MeetingMessageType" Type="Microsoft.Exchange.Services.OData.Model.MeetingMessageType" />
+        <Property Name="DateTimeCreated" Type="Edm.DateTimeOffset" />
+        <Property Name="LastModifiedTime" Type="Edm.DateTimeOffset" />
+      </EntityType>
+      <Action Name="Copy" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <Parameter Name="DestinationId" Type="Edm.String" />
+        <ReturnType Type="Microsoft.Exchange.Services.OData.Model.Message" />
+      </Action>
+      <Action Name="Move" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <Parameter Name="DestinationId" Type="Edm.String" />
+        <ReturnType Type="Microsoft.Exchange.Services.OData.Model.Message" />
+      </Action>
+      <Action Name="CreateReply" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <ReturnType Type="Microsoft.Exchange.Services.OData.Model.Message" />
+      </Action>
+      <Action Name="CreateReplyAll" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <ReturnType Type="Microsoft.Exchange.Services.OData.Model.Message" />
+      </Action>
+      <Action Name="CreateForward" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <ReturnType Type="Microsoft.Exchange.Services.OData.Model.Message" />
+      </Action>
+      <Action Name="Reply" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <Parameter Name="Comment" Type="Edm.String" />
+      </Action>
+      <Action Name="ReplyAll" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <Parameter Name="Comment" Type="Edm.String" />
+      </Action>
+      <Action Name="Forward" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <Parameter Name="Comment" Type="Edm.String" />
+        <Parameter Name="ToRecipients" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" />
+      </Action>
+      <Action Name="Send" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+      </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="Size" Type="Edm.Int32" Nullable="false" />
+        <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="IsContactPhoto" Type="Edm.Boolean" Nullable="false" />
+        <Property Name="ContentBytes" Type="Edm.Binary" />
+      </EntityType>
+      <EntityType Name="ItemAttachment" BaseType="Microsoft.Exchange.Services.OData.Model.Attachment">
+        <NavigationProperty Name="Item" Type="Microsoft.Exchange.Services.OData.Model.Item" ContainsTarget="true" />
+      </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)" ContainsTarget="true" />
+      </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" />
+        <NavigationProperty Name="Calendars" Type="Collection(Microsoft.Exchange.Services.OData.Model.Calendar)" ContainsTarget="true" />
+      </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)" />
+        <Property Name="Recurrence" Type="Microsoft.Exchange.Services.OData.Model.PatternedRecurrence" />
+        <NavigationProperty Name="Calendar" Type="Microsoft.Exchange.Services.OData.Model.Calendar" ContainsTarget="true" />
+      </EntityType>
+      <Action Name="Accept" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Event" />
+        <Parameter Name="Comment" Type="Edm.String" />
+      </Action>
+      <Action Name="Decline" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Event" />
+        <Parameter Name="Comment" Type="Edm.String" />
+      </Action>
+      <Action Name="TentativelyAccept" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Event" />
+        <Parameter Name="Comment" Type="Edm.String" />
+      </Action>
+      <EntityType Name="Contact" BaseType="Microsoft.Exchange.Services.OData.Model.Item">
+        <Property Name="ParentFolderId" Type="Edm.String" />
+        <Property Name="Birthday" Type="Edm.DateTimeOffset" />
+        <Property Name="FileAs" Type="Edm.String" />
+        <Property Name="DisplayName" Type="Edm.String" />
+        <Property Name="GivenName" Type="Edm.String" />
+        <Property Name="Initials" Type="Edm.String" />
+        <Property Name="MiddleName" Type="Edm.String" />
+        <Property Name="NickName" Type="Edm.String" />
+        <Property Name="Surname" Type="Edm.String" />
+        <Property Name="Title" Type="Edm.String" />
+        <Property Name="Generation" Type="Edm.String" />
+        <Property Name="EmailAddress1" Type="Edm.String" />
+        <Property Name="EmailAddress2" Type="Edm.String" />
+        <Property Name="EmailAddress3" Type="Edm.String" />
+        <Property Name="ImAddress1" Type="Edm.String" />
+        <Property Name="ImAddress2" Type="Edm.String" />
+        <Property Name="ImAddress3" Type="Edm.String" />
+        <Property Name="JobTitle" Type="Edm.String" />
+        <Property Name="CompanyName" Type="Edm.String" />
+        <Property Name="Department" Type="Edm.String" />
+        <Property Name="OfficeLocation" Type="Edm.String" />
+        <Property Name="Profession" Type="Edm.String" />
+        <Property Name="BusinessHomePage" Type="Edm.String" />
+        <Property Name="AssistantName" Type="Edm.String" />
+        <Property Name="Manager" Type="Edm.String" />
+        <Property Name="HomePhone1" Type="Edm.String" />
+        <Property Name="HomePhone2" Type="Edm.String" />
+        <Property Name="BusinessPhone1" Type="Edm.String" />
+        <Property Name="BusinessPhone2" Type="Edm.String" />
+        <Property Name="MobilePhone1" Type="Edm.String" />
+        <Property Name="OtherPhone" Type="Edm.String" />
+        <Property Name="DateTimeCreated" Type="Edm.DateTimeOffset" />
+        <Property Name="LastModifiedTime" Type="Edm.DateTimeOffset" />
+      </EntityType>
+      <EntityType Name="ContactFolder" BaseType="Microsoft.Exchange.Services.OData.Model.Entity">
+        <Property Name="ParentFolderId" Type="Edm.String" />
+        <Property Name="DisplayName" Type="Edm.String" />
+        <NavigationProperty Name="Contacts" Type="Collection(Microsoft.Exchange.Services.OData.Model.Contact)" ContainsTarget="true" />
+        <NavigationProperty Name="ChildFolders" Type="Collection(Microsoft.Exchange.Services.OData.Model.ContactFolder)" ContainsTarget="true" />
+      </EntityType>
+      <EntityContainer Name="EntityContainer">
+        <EntitySet Name="Users" EntityType="Microsoft.Exchange.Services.OData.Model.User" />
+        <Singleton Name="Me" Type="Microsoft.Exchange.Services.OData.Model.User" />
+      </EntityContainer>
+    </Schema>
+    <Schema Namespace="System" xmlns="http://docs.oasis-open.org/odata/ns/edm">
+      <EnumType Name="DayOfWeek">
+        <Member Name="Sunday" Value="0" />
+        <Member Name="Monday" Value="1" />
+        <Member Name="Tuesday" Value="2" />
+        <Member Name="Wednesday" Value="3" />
+        <Member Name="Thursday" Value="4" />
+        <Member Name="Friday" Value="5" />
+        <Member Name="Saturday" Value="6" />
+      </EnumType>
+    </Schema>
+  </edmx:DataServices>
+</edmx:Edmx>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/ext/pojogen-maven-plugin/src/it/exchangeMail/verify.groovy
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/it/exchangeMail/verify.groovy b/ext/pojogen-maven-plugin/src/it/exchangeMail/verify.groovy
new file mode 100644
index 0000000..02f0407
--- /dev/null
+++ b/ext/pojogen-maven-plugin/src/it/exchangeMail/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/v4" );
+assert basepkg.isDirectory() && basepkg.listFiles().length>0;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/ext/pojogen-maven-plugin/src/it/exchangeMailNoBasePkg/pom.xml
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/it/exchangeMailNoBasePkg/pom.xml b/ext/pojogen-maven-plugin/src/it/exchangeMailNoBasePkg/pom.xml
new file mode 100644
index 0000000..2cc2fa0
--- /dev/null
+++ b/ext/pojogen-maven-plugin/src/it/exchangeMailNoBasePkg/pom.xml
@@ -0,0 +1,92 @@
+<?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>
+            </configuration>
+            <id>v4pojoGen</id>
+            <phase>generate-sources</phase>
+            <goals>
+              <goal>v4pojoGen</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/ext/pojogen-maven-plugin/src/it/exchangeMailNoBasePkg/src/test/resources/metadata.xml
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/it/exchangeMailNoBasePkg/src/test/resources/metadata.xml b/ext/pojogen-maven-plugin/src/it/exchangeMailNoBasePkg/src/test/resources/metadata.xml
new file mode 100644
index 0000000..9cb28ec
--- /dev/null
+++ b/ext/pojogen-maven-plugin/src/it/exchangeMailNoBasePkg/src/test/resources/metadata.xml
@@ -0,0 +1,353 @@
+<?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="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
+  <edmx:DataServices>
+    <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="0" />
+        <Member Name="Optional" Value="1" />
+        <Member Name="Resource" Value="2" />
+      </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="Unknown" Value="0" />
+        <Member Name="Free" Value="1" />
+        <Member Name="Tentative" Value="2" />
+        <Member Name="Busy" Value="3" />
+        <Member Name="Oof" Value="4" />
+        <Member Name="WorkingElsewhere" Value="5" />
+      </EnumType>
+      <EnumType Name="MeetingMessageType">
+        <Member Name="None" Value="0" />
+        <Member Name="MeetingRequest" Value="1" />
+        <Member Name="MeetingCancelled" Value="2" />
+        <Member Name="MeetingAccepted" Value="3" />
+        <Member Name="MeetingTenativelyAccepted" Value="4" />
+        <Member Name="MeetingDeclined" Value="5" />
+      </EnumType>
+      <EnumType Name="RecurrencePatternType">
+        <Member Name="Daily" Value="0" />
+        <Member Name="Weekly" Value="1" />
+        <Member Name="AbsoluteMonthly" Value="2" />
+        <Member Name="RelativeMonthly" Value="3" />
+        <Member Name="AbsoluteYearly" Value="4" />
+        <Member Name="RelativeYearly" Value="5" />
+      </EnumType>
+      <EnumType Name="RecurrenceRangeType">
+        <Member Name="EndDate" Value="0" />
+        <Member Name="NoEnd" Value="1" />
+        <Member Name="Numbered" Value="2" />
+      </EnumType>
+      <EnumType Name="WeekIndex">
+        <Member Name="First" Value="0" />
+        <Member Name="Second" Value="1" />
+        <Member Name="Third" Value="2" />
+        <Member Name="Fourth" Value="3" />
+        <Member Name="Last" Value="4" />
+      </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>
+      <ComplexType Name="RecurrencePattern">
+        <Property Name="Type" Type="Microsoft.Exchange.Services.OData.Model.RecurrencePatternType" />
+        <Property Name="Interval" Type="Edm.Int32" Nullable="false" />
+        <Property Name="DayOfMonth" Type="Edm.Int32" Nullable="false" />
+        <Property Name="Month" Type="Edm.Int32" Nullable="false" />
+        <Property Name="DaysOfWeek" Type="Collection(System.DayOfWeek)" />
+        <Property Name="FirstDayOfWeek" Type="System.DayOfWeek" />
+        <Property Name="Index" Type="Microsoft.Exchange.Services.OData.Model.WeekIndex" />
+      </ComplexType>
+      <ComplexType Name="RecurrenceRange">
+        <Property Name="Type" Type="Microsoft.Exchange.Services.OData.Model.RecurrenceRangeType" />
+        <Property Name="StartDate" Type="Edm.DateTimeOffset" />
+        <Property Name="EndDate" Type="Edm.DateTimeOffset" />
+        <Property Name="NumberOfOccurrences" Type="Edm.Int32" Nullable="false" />
+      </ComplexType>
+      <ComplexType Name="PatternedRecurrence">
+        <Property Name="Pattern" Type="Microsoft.Exchange.Services.OData.Model.RecurrencePattern" />
+        <Property Name="Range" Type="Microsoft.Exchange.Services.OData.Model.RecurrenceRange" />
+      </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)" ContainsTarget="true" />
+        <NavigationProperty Name="Messages" Type="Collection(Microsoft.Exchange.Services.OData.Model.Message)" ContainsTarget="true" />
+        <NavigationProperty Name="RootFolder" Type="Microsoft.Exchange.Services.OData.Model.Folder" ContainsTarget="true" />
+        <NavigationProperty Name="Inbox" Type="Microsoft.Exchange.Services.OData.Model.Folder" ContainsTarget="true" />
+        <NavigationProperty Name="Drafts" Type="Microsoft.Exchange.Services.OData.Model.Folder" ContainsTarget="true" />
+        <NavigationProperty Name="SentItems" Type="Microsoft.Exchange.Services.OData.Model.Folder" ContainsTarget="true" />
+        <NavigationProperty Name="DeletedItems" Type="Microsoft.Exchange.Services.OData.Model.Folder" ContainsTarget="true" />
+        <NavigationProperty Name="Calendars" Type="Collection(Microsoft.Exchange.Services.OData.Model.Calendar)" ContainsTarget="true" />
+        <NavigationProperty Name="Calendar" Type="Microsoft.Exchange.Services.OData.Model.Calendar" ContainsTarget="true" />
+        <NavigationProperty Name="CalendarGroups" Type="Collection(Microsoft.Exchange.Services.OData.Model.CalendarGroup)" ContainsTarget="true" />
+        <NavigationProperty Name="Events" Type="Collection(Microsoft.Exchange.Services.OData.Model.Event)" ContainsTarget="true" />
+        <NavigationProperty Name="Contacts" Type="Collection(Microsoft.Exchange.Services.OData.Model.Contact)" ContainsTarget="true" />
+        <NavigationProperty Name="ContactFolders" Type="Collection(Microsoft.Exchange.Services.OData.Model.ContactFolder)" ContainsTarget="true" />
+      </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)" ContainsTarget="true" />
+        <NavigationProperty Name="Messages" Type="Collection(Microsoft.Exchange.Services.OData.Model.Message)" ContainsTarget="true" />
+      </EntityType>
+      <Action Name="Copy" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+        <Parameter Name="DestinationId" Type="Edm.String" />
+        <ReturnType Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+      </Action>
+      <Action Name="Move" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+        <Parameter Name="DestinationId" Type="Edm.String" />
+        <ReturnType Type="Microsoft.Exchange.Services.OData.Model.Folder" />
+      </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" />
+        <NavigationProperty Name="Attachments" Type="Collection(Microsoft.Exchange.Services.OData.Model.Attachment)" ContainsTarget="true" />
+      </EntityType>
+      <EntityType Name="Message" 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="ConversationId" 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" />
+        <Property Name="EventId" Type="Edm.String" />
+        <Property Name="MeetingMessageType" Type="Microsoft.Exchange.Services.OData.Model.MeetingMessageType" />
+        <Property Name="DateTimeCreated" Type="Edm.DateTimeOffset" />
+        <Property Name="LastModifiedTime" Type="Edm.DateTimeOffset" />
+      </EntityType>
+      <Action Name="Copy" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <Parameter Name="DestinationId" Type="Edm.String" />
+        <ReturnType Type="Microsoft.Exchange.Services.OData.Model.Message" />
+      </Action>
+      <Action Name="Move" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <Parameter Name="DestinationId" Type="Edm.String" />
+        <ReturnType Type="Microsoft.Exchange.Services.OData.Model.Message" />
+      </Action>
+      <Action Name="CreateReply" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <ReturnType Type="Microsoft.Exchange.Services.OData.Model.Message" />
+      </Action>
+      <Action Name="CreateReplyAll" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <ReturnType Type="Microsoft.Exchange.Services.OData.Model.Message" />
+      </Action>
+      <Action Name="CreateForward" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <ReturnType Type="Microsoft.Exchange.Services.OData.Model.Message" />
+      </Action>
+      <Action Name="Reply" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <Parameter Name="Comment" Type="Edm.String" />
+      </Action>
+      <Action Name="ReplyAll" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <Parameter Name="Comment" Type="Edm.String" />
+      </Action>
+      <Action Name="Forward" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+        <Parameter Name="Comment" Type="Edm.String" />
+        <Parameter Name="ToRecipients" Type="Collection(Microsoft.Exchange.Services.OData.Model.Recipient)" />
+      </Action>
+      <Action Name="Send" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Message" />
+      </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="Size" Type="Edm.Int32" Nullable="false" />
+        <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="IsContactPhoto" Type="Edm.Boolean" Nullable="false" />
+        <Property Name="ContentBytes" Type="Edm.Binary" />
+      </EntityType>
+      <EntityType Name="ItemAttachment" BaseType="Microsoft.Exchange.Services.OData.Model.Attachment">
+        <NavigationProperty Name="Item" Type="Microsoft.Exchange.Services.OData.Model.Item" ContainsTarget="true" />
+      </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)" ContainsTarget="true" />
+      </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" />
+        <NavigationProperty Name="Calendars" Type="Collection(Microsoft.Exchange.Services.OData.Model.Calendar)" ContainsTarget="true" />
+      </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)" />
+        <Property Name="Recurrence" Type="Microsoft.Exchange.Services.OData.Model.PatternedRecurrence" />
+        <NavigationProperty Name="Calendar" Type="Microsoft.Exchange.Services.OData.Model.Calendar" ContainsTarget="true" />
+      </EntityType>
+      <Action Name="Accept" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Event" />
+        <Parameter Name="Comment" Type="Edm.String" />
+      </Action>
+      <Action Name="Decline" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Event" />
+        <Parameter Name="Comment" Type="Edm.String" />
+      </Action>
+      <Action Name="TentativelyAccept" IsBound="true" EntitySetPath="bindingParameter">
+        <Parameter Name="bindingParameter" Type="Microsoft.Exchange.Services.OData.Model.Event" />
+        <Parameter Name="Comment" Type="Edm.String" />
+      </Action>
+      <EntityType Name="Contact" BaseType="Microsoft.Exchange.Services.OData.Model.Item">
+        <Property Name="ParentFolderId" Type="Edm.String" />
+        <Property Name="Birthday" Type="Edm.DateTimeOffset" />
+        <Property Name="FileAs" Type="Edm.String" />
+        <Property Name="DisplayName" Type="Edm.String" />
+        <Property Name="GivenName" Type="Edm.String" />
+        <Property Name="Initials" Type="Edm.String" />
+        <Property Name="MiddleName" Type="Edm.String" />
+        <Property Name="NickName" Type="Edm.String" />
+        <Property Name="Surname" Type="Edm.String" />
+        <Property Name="Title" Type="Edm.String" />
+        <Property Name="Generation" Type="Edm.String" />
+        <Property Name="EmailAddress1" Type="Edm.String" />
+        <Property Name="EmailAddress2" Type="Edm.String" />
+        <Property Name="EmailAddress3" Type="Edm.String" />
+        <Property Name="ImAddress1" Type="Edm.String" />
+        <Property Name="ImAddress2" Type="Edm.String" />
+        <Property Name="ImAddress3" Type="Edm.String" />
+        <Property Name="JobTitle" Type="Edm.String" />
+        <Property Name="CompanyName" Type="Edm.String" />
+        <Property Name="Department" Type="Edm.String" />
+        <Property Name="OfficeLocation" Type="Edm.String" />
+        <Property Name="Profession" Type="Edm.String" />
+        <Property Name="BusinessHomePage" Type="Edm.String" />
+        <Property Name="AssistantName" Type="Edm.String" />
+        <Property Name="Manager" Type="Edm.String" />
+        <Property Name="HomePhone1" Type="Edm.String" />
+        <Property Name="HomePhone2" Type="Edm.String" />
+        <Property Name="BusinessPhone1" Type="Edm.String" />
+        <Property Name="BusinessPhone2" Type="Edm.String" />
+        <Property Name="MobilePhone1" Type="Edm.String" />
+        <Property Name="OtherPhone" Type="Edm.String" />
+        <Property Name="DateTimeCreated" Type="Edm.DateTimeOffset" />
+        <Property Name="LastModifiedTime" Type="Edm.DateTimeOffset" />
+      </EntityType>
+      <EntityType Name="ContactFolder" BaseType="Microsoft.Exchange.Services.OData.Model.Entity">
+        <Property Name="ParentFolderId" Type="Edm.String" />
+        <Property Name="DisplayName" Type="Edm.String" />
+        <NavigationProperty Name="Contacts" Type="Collection(Microsoft.Exchange.Services.OData.Model.Contact)" ContainsTarget="true" />
+        <NavigationProperty Name="ChildFolders" Type="Collection(Microsoft.Exchange.Services.OData.Model.ContactFolder)" ContainsTarget="true" />
+      </EntityType>
+      <EntityContainer Name="EntityContainer">
+        <EntitySet Name="Users" EntityType="Microsoft.Exchange.Services.OData.Model.User" />
+        <Singleton Name="Me" Type="Microsoft.Exchange.Services.OData.Model.User" />
+      </EntityContainer>
+    </Schema>
+    <Schema Namespace="System" xmlns="http://docs.oasis-open.org/odata/ns/edm">
+      <EnumType Name="DayOfWeek">
+        <Member Name="Sunday" Value="0" />
+        <Member Name="Monday" Value="1" />
+        <Member Name="Tuesday" Value="2" />
+        <Member Name="Wednesday" Value="3" />
+        <Member Name="Thursday" Value="4" />
+        <Member Name="Friday" Value="5" />
+        <Member Name="Saturday" Value="6" />
+      </EnumType>
+    </Schema>
+  </edmx:DataServices>
+</edmx:Edmx>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/ext/pojogen-maven-plugin/src/it/exchangeMailNoBasePkg/verify.groovy
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/it/exchangeMailNoBasePkg/verify.groovy b/ext/pojogen-maven-plugin/src/it/exchangeMailNoBasePkg/verify.groovy
new file mode 100644
index 0000000..3b7941b
--- /dev/null
+++ b/ext/pojogen-maven-plugin/src/it/exchangeMailNoBasePkg/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" );
+assert basepkg.isDirectory() && basepkg.listFiles().length>0;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java b/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
index ee09e65..ea29767 100644
--- a/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
+++ b/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
@@ -44,7 +44,6 @@ import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmEnumType;
-import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
 import org.apache.olingo.commons.api.edm.EdmSchema;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.EdmTerm;
@@ -78,7 +77,7 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
   /**
    * Base package.
    */
-  @Parameter(property = "basePackage", required = true)
+  @Parameter(property = "basePackage", required = false)
   protected String basePackage;
 
   protected final Set<String> namespaces = new HashSet<String>();
@@ -104,7 +103,9 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
   }
 
   protected File mkPkgDir(final String path) {
-    return mkdir(basePackage.replace('.', File.separatorChar) + File.separator + path);
+    return StringUtils.isBlank(basePackage)
+            ? mkdir(path)
+            : mkdir(basePackage.replace('.', File.separatorChar) + File.separator + path);
   }
 
   protected void writeFile(final String name, final File path, final VelocityContext ctx, final Template template,
@@ -242,7 +243,9 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
         // write package-info for the base package
         final String schemaPath = utility.getNamespace().toLowerCase().replace('.', File.separatorChar);
         final File base = mkPkgDir(schemaPath);
-        final String pkg = basePackage + "." + utility.getNamespace().toLowerCase();
+        final String pkg = StringUtils.isBlank(basePackage)
+                ? utility.getNamespace().toLowerCase()
+                : basePackage + "." + utility.getNamespace().toLowerCase();
         parseObj(base, pkg, "package-info", "package-info.java");
 
         // write package-info for types package
@@ -277,20 +280,6 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
           objs.clear();
           objs.put("complexType", complex);
           parseObj(typesBaseDir, typesPkg, "complexType", className + ".java", objs);
-
-          for (String navPropName : complex.getNavigationPropertyNames()) {
-            final EdmNavigationProperty navProp = complex.getNavigationProperty(navPropName);
-            if ((complex.getBaseType() == null
-                    || edm.getEntityType(complex.getBaseType().getFullQualifiedName()).
-                    getNavigationProperty(navPropName) == null)
-                    && navProp.containsTarget()) {
-
-              objs.clear();
-              objs.put("navProp", navProp);
-              parseObj(base, pkg, "containedEntitySet",
-                      utility.capitalize(navProp.getName()) + ".java", objs);
-            }
-          }
         }
 
         for (EdmEntityType entity : schema.getEntityTypes()) {
@@ -328,20 +317,6 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
                   utility.capitalize(entity.getName()) + ".java", objs);
           parseObj(typesBaseDir, typesPkg, "entityCollection",
                   utility.capitalize(entity.getName()) + "Collection.java", objs);
-
-          for (String navPropName : entity.getNavigationPropertyNames()) {
-            final EdmNavigationProperty navProp = entity.getNavigationProperty(navPropName);
-            if ((entity.getBaseType() == null
-                    || edm.getEntityType(entity.getBaseType().getFullQualifiedName()).
-                    getNavigationProperty(navPropName) == null)
-                    && navProp.containsTarget()) {
-
-              objs.clear();
-              objs.put("navProp", navProp);
-              parseObj(base, pkg, "containedEntitySet",
-                      utility.capitalize(navProp.getName()) + ".java", objs);
-            }
-          }
         }
 
         // write container and top entity sets into the base package