You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ch...@apache.org on 2015/10/08 13:01:13 UTC

olingo-odata4 git commit: [OLINGO-786] Fix lazy loading for annotiation groups

Repository: olingo-odata4
Updated Branches:
  refs/heads/olingo786 507236dd8 -> 3647a6317


[OLINGO-786] Fix lazy loading for annotiation groups


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

Branch: refs/heads/olingo786
Commit: 3647a63177789b22bb930f39975dd9ddc7a4a401
Parents: 507236d
Author: Christian Amend <ch...@sap.com>
Authored: Thu Oct 8 12:59:48 2015 +0200
Committer: Christian Amend <ch...@sap.com>
Committed: Thu Oct 8 12:59:48 2015 +0200

----------------------------------------------------------------------
 .../client/core/edm/ClientCsdlEdmProvider.java  |  4 +--
 .../apache/olingo/client/core/MetadataTest.java |  6 ++--
 .../edm/provider/CsdlAbstractEdmProvider.java   |  9 ++---
 .../api/edm/provider/CsdlEdmProvider.java       | 35 ++++++++++----------
 .../commons/api/edm/provider/CsdlSchema.java    |  9 ++---
 .../annotation/AnnotationExpression.java        |  7 ++--
 .../edm/provider/annotation/PropertyValue.java  |  4 +--
 .../olingo/commons/core/edm/AbstractEdm.java    |  4 +--
 .../commons/core/edm/EdmAnnotationsImpl.java    |  7 ++--
 .../commons/core/edm/EdmProviderImpl.java       |  7 ++--
 .../olingo/commons/core/edm/EdmSchemaImpl.java  |  2 +-
 .../commons/core/edm/EdmImplCachingTest.java    |  2 +-
 .../commons/core/edm/EdmImplCallCreateTest.java |  2 +-
 .../server/core/SchemaBasedEdmProvider.java     |  2 +-
 pom.xml                                         |  2 +-
 15 files changed, 49 insertions(+), 53 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3647a631/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlEdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlEdmProvider.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlEdmProvider.java
index e2dcd80..eaf3597 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlEdmProvider.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlEdmProvider.java
@@ -192,10 +192,10 @@ public class ClientCsdlEdmProvider extends CsdlAbstractEdmProvider {
   }
 
   @Override
-  public CsdlAnnotations getAnnotationsGroup(FullQualifiedName targetName) throws ODataException {
+  public CsdlAnnotations getAnnotationsGroup(FullQualifiedName targetName, String qualifier) throws ODataException {
     CsdlSchema schema = xmlSchemas.get(targetName.getNamespace());
     if (schema != null) {
-      return schema.getAnnotationGroup(targetName.getName());
+      return schema.getAnnotationGroup(targetName.getName(), qualifier);
     }
     return null;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3647a631/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java
index 566c143..b31f970 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java
@@ -144,7 +144,7 @@ public class MetadataTest extends AbstractTest {
     assertNotNull(metadata);
 
     assertFalse(metadata.getSchema(0).getAnnotationGroups().isEmpty());
-    final CsdlAnnotations annots = metadata.getSchema(0).getAnnotationGroup("ODataDemo.DemoService/Suppliers");
+    final CsdlAnnotations annots = metadata.getSchema(0).getAnnotationGroup("ODataDemo.DemoService/Suppliers", null);
     assertNotNull(annots);
     assertFalse(annots.getAnnotations().isEmpty());
     assertEquals(ConstantAnnotationExpression.Type.String,
@@ -285,7 +285,7 @@ public class MetadataTest extends AbstractTest {
     assertNotNull(metadata);
 
     // Check displayName
-    final CsdlAnnotation displayName = metadata.getSchema(0).getAnnotationGroup("ODataDemo.Supplier").
+    final CsdlAnnotation displayName = metadata.getSchema(0).getAnnotationGroup("ODataDemo.Supplier", null).
         getAnnotation("Vocabulary1.DisplayName");
     assertNotNull(displayName);
     assertTrue(displayName.getExpression().isDynamic());
@@ -307,7 +307,7 @@ public class MetadataTest extends AbstractTest {
     assertEquals("Address/CountryName", thirdArg.getValue());
 
     // Check Tags
-    final CsdlAnnotation tags = metadata.getSchema(0).getAnnotationGroup("ODataDemo.Product").
+    final CsdlAnnotation tags = metadata.getSchema(0).getAnnotationGroup("ODataDemo.Product", null).
         getAnnotation("Vocabulary1.Tags");
     assertNotNull(tags);
     assertTrue(tags.getExpression().isDynamic());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3647a631/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAbstractEdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAbstractEdmProvider.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAbstractEdmProvider.java
index a4754a6..e4051b7 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAbstractEdmProvider.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAbstractEdmProvider.java
@@ -6,9 +6,9 @@
  * 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
@@ -20,8 +20,8 @@ package org.apache.olingo.commons.api.edm.provider;
 
 import java.util.List;
 
-import org.apache.olingo.commons.api.ex.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.ex.ODataException;
 
 /**
  * Dummy implementation of {@link CsdlEdmProvider}
@@ -109,7 +109,8 @@ public abstract class CsdlAbstractEdmProvider implements CsdlEdmProvider {
   }
 
   @Override
-  public CsdlAnnotations getAnnotationsGroup(final FullQualifiedName targetName) throws ODataException {
+  public CsdlAnnotations getAnnotationsGroup(final FullQualifiedName targetName, String qualifier)
+      throws ODataException {
     return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3647a631/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEdmProvider.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEdmProvider.java
index b38a2a4..5439615 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEdmProvider.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEdmProvider.java
@@ -33,7 +33,7 @@ public interface CsdlEdmProvider {
    *
    * @param enumTypeName full qualified name of enum type
    * @return for given name
-   * @throws ODataException the o data exception
+   * @throws ODataException
    */
   CsdlEnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException;
 
@@ -42,7 +42,7 @@ public interface CsdlEdmProvider {
    *
    * @param typeDefinitionName full qualified name of type definition
    * @return for given name
-   * @throws ODataException the o data exception
+   * @throws ODataException 
    */
   CsdlTypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException;
 
@@ -51,7 +51,7 @@ public interface CsdlEdmProvider {
    *
    * @param entityTypeName full qualified name of entity type
    * @return for the given name
-   * @throws ODataException the o data exception
+   * @throws ODataException 
    */
   CsdlEntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException;
 
@@ -60,7 +60,7 @@ public interface CsdlEdmProvider {
    *
    * @param complexTypeName full qualified name of complex type
    * @return for the given name
-   * @throws ODataException the o data exception
+   * @throws ODataException 
    */
   CsdlComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException;
 
@@ -71,7 +71,7 @@ public interface CsdlEdmProvider {
    * @param actionName full qualified name of action
    * @return List of
    * or null
-   * @throws ODataException the o data exception
+   * @throws ODataException 
    */
   List<CsdlAction> getActions(final FullQualifiedName actionName) throws ODataException;
 
@@ -82,7 +82,7 @@ public interface CsdlEdmProvider {
    * @param functionName full qualified name of function
    * @return List of
    * or null
-   * @throws ODataException the o data exception
+   * @throws ODataException 
    */
   List<CsdlFunction> getFunctions(final FullQualifiedName functionName) throws ODataException;
 
@@ -90,7 +90,7 @@ public interface CsdlEdmProvider {
    * This method should return a {@link CsdlTerm} for the FullQualifiedName or <b>null</b> if nothing is found.
    * @param termName the name of the Term
    * @return or null
-   * @throws ODataException the o data exception
+   * @throws ODataException 
    */
   CsdlTerm getTerm(final FullQualifiedName termName) throws ODataException;
 
@@ -100,7 +100,7 @@ public interface CsdlEdmProvider {
    * @param entityContainer this EntitySet is contained in
    * @param entitySetName name of entity set
    * @return for the given container and entityset name
-   * @throws ODataException the o data exception
+   * @throws ODataException 
    */
   CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
       throws ODataException;
@@ -111,7 +111,7 @@ public interface CsdlEdmProvider {
    * @param entityContainer this Singleton is contained in
    * @param singletonName name of singleton
    * @return for given container and singleton name
-   * @throws ODataException the o data exception
+   * @throws ODataException 
    */
   CsdlSingleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
       throws ODataException;
@@ -122,7 +122,7 @@ public interface CsdlEdmProvider {
    * @param entityContainer this ActionImport is contained in
    * @param actionImportName name of action import
    * @return for the given container and ActionImport name
-   * @throws ODataException the o data exception
+   * @throws ODataException 
    */
   CsdlActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
       throws ODataException;
@@ -133,7 +133,7 @@ public interface CsdlEdmProvider {
    * @param entityContainer this FunctionImport is contained in
    * @param functionImportName name of function import
    * @return for the given container name and function import name
-   * @throws ODataException the o data exception
+   * @throws ODataException 
    */
   CsdlFunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
       throws ODataException;
@@ -143,7 +143,7 @@ public interface CsdlEdmProvider {
    *
    * @param entityContainerName (null for default container)
    * @return for the given name
-   * @throws ODataException the o data exception
+   * @throws ODataException 
    */
   CsdlEntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName)
       throws ODataException;
@@ -152,7 +152,7 @@ public interface CsdlEdmProvider {
    * This method should return a list of all namespaces which have an alias
    *
    * @return List of alias info
-   * @throws ODataException the o data exception
+   * @throws ODataException 
    */
   List<CsdlAliasInfo> getAliasInfos() throws ODataException;
 
@@ -160,14 +160,14 @@ public interface CsdlEdmProvider {
    * This method should return a collection of all {@link CsdlSchema}
    *
    * @return List of
-   * @throws ODataException the o data exception
+   * @throws ODataException 
    */
   List<CsdlSchema> getSchemas() throws ODataException;
 
   /**
    * Returns the entity container of this edm
    * @return of this edm
-   * @throws ODataException the o data exception
+   * @throws ODataException 
    */
   CsdlEntityContainer getEntityContainer() throws ODataException;
 
@@ -175,8 +175,9 @@ public interface CsdlEdmProvider {
    * Gets annotations group.
    *
    * @param targetName full qualified name of target
+   * @param qualifier for the given target. Might be null.
    * @return group for the given Target
-   * @throws ODataException the o data exception
+   * @throws ODataException 
    */
-  CsdlAnnotations getAnnotationsGroup(FullQualifiedName targetName) throws ODataException;
+  CsdlAnnotations getAnnotationsGroup(FullQualifiedName targetName, String qualifier) throws ODataException;
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3647a631/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java
index a3996c5..882397e 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java
@@ -6,9 +6,9 @@
  * 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
@@ -335,10 +335,11 @@ public class CsdlSchema extends CsdlAbstractEdmItem implements CsdlAnnotatable {
    * @param target the target
    * @return the annotation group
    */
-  public CsdlAnnotations getAnnotationGroup(final String target) {
+  public CsdlAnnotations getAnnotationGroup(final String target, final String qualifier) {
     CsdlAnnotations result = null;
     for (CsdlAnnotations annots : getAnnotationGroups()) {
-      if (target.equals(annots.getTarget())) {
+      if (target.equals(annots.getTarget())
+          && (qualifier == annots.getQualifier() || (qualifier != null && qualifier.equals(annots.getQualifier())))) {
         result = annots;
       }
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3647a631/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/AnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/AnnotationExpression.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/AnnotationExpression.java
index fa8ffba..e9a5d69 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/AnnotationExpression.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/AnnotationExpression.java
@@ -20,9 +20,6 @@ package org.apache.olingo.commons.api.edm.provider.annotation;
 
 import java.io.Serializable;
 
-import org.apache.olingo.commons.api.edm.annotation.EdmConstantAnnotationExpression;
-import org.apache.olingo.commons.api.edm.annotation.EdmDynamicAnnotationExpression;
-
 /**
  * Super type of all annotation expressions
  * A expression is either constant or dynamic
@@ -36,7 +33,7 @@ public interface AnnotationExpression extends Serializable {
   boolean isConstant();
 
   /**
-   * Casts the expression to {@link EdmConstantAnnotationExpression}
+   * Casts the expression to {@link org.apache.olingo.commons.api.edm.annotation.EdmConstantAnnotationExpression}
    * @return Constant Expression
    */
   ConstantAnnotationExpression asConstant();
@@ -48,7 +45,7 @@ public interface AnnotationExpression extends Serializable {
   boolean isDynamic();
 
   /**
-   * Cast the expression to {@link EdmDynamicAnnotationExpression}
+   * Cast the expression to {@link org.apache.olingo.commons.api.edm.annotation.EdmDynamicAnnotationExpression}
    * @return Dynamic Expression
    */
   DynamicAnnotationExpression asDynamic();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3647a631/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/PropertyValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/PropertyValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/PropertyValue.java
index d2c69e8..41447e9 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/PropertyValue.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/PropertyValue.java
@@ -18,12 +18,12 @@
  */
 package org.apache.olingo.commons.api.edm.provider.annotation;
 
-import org.apache.olingo.commons.api.edm.annotation.EdmRecord;
 import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
 
 /**
  * The edm:PropertyValue element supplies a value to a property on the type instantiated by an 
- * edm:Record expression (See {@link EdmRecord}). The value is obtained by evaluating an expression.
+ * edm:Record expression (See {@link org.apache.olingo.commons.api.edm.annotation.EdmRecord}). 
+ * The value is obtained by evaluating an expression.
  */
 public interface PropertyValue extends DynamicAnnotationExpression, CsdlAnnotatable {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3647a631/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
index 642de52..a32f3ab 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
@@ -301,7 +301,7 @@ public abstract class AbstractEdm implements Edm {
     TargetQualifierMapKey key = new TargetQualifierMapKey(fqn, qualifier);
     EdmAnnotations _annotations = annotationGroups.get(key);
     if (_annotations == null) {
-      _annotations = createAnnotationGroup(fqn);
+      _annotations = createAnnotationGroup(fqn, qualifier);
       if (_annotations != null) {
         annotationGroups.put(key, _annotations);
       }
@@ -411,7 +411,7 @@ public abstract class AbstractEdm implements Edm {
     terms.put(termName, term);
   }
 
-  protected abstract EdmAnnotations createAnnotationGroup(FullQualifiedName targetName);
+  protected abstract EdmAnnotations createAnnotationGroup(FullQualifiedName targetName, String qualifier);
 
   public void cacheAnnotationGroup(final FullQualifiedName targetName,
       final EdmAnnotations annotationsGroup) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3647a631/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationsImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationsImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationsImpl.java
index baadcce..d1f44c7 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationsImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationsImpl.java
@@ -29,7 +29,6 @@ import org.apache.olingo.commons.api.edm.EdmAnnotations;
 import org.apache.olingo.commons.api.edm.EdmAnnotationsTarget;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmEnumType;
-import org.apache.olingo.commons.api.edm.EdmSchema;
 import org.apache.olingo.commons.api.edm.EdmStructuredType;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
@@ -39,14 +38,12 @@ import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
 public class EdmAnnotationsImpl implements EdmAnnotations {
 
   private final Edm edm;
-  private final EdmSchema schema;
   private final CsdlAnnotations annotationGroup;
   private EdmAnnotationsTarget target;
   private List<EdmAnnotation> annotations;
 
-  public EdmAnnotationsImpl(final Edm edm, final EdmSchema schema, final CsdlAnnotations annotationGroup) {
+  public EdmAnnotationsImpl(final Edm edm, final CsdlAnnotations annotationGroup) {
     this.edm = edm;
-    this.schema = schema;
     this.annotationGroup = annotationGroup;
   }
 
@@ -80,7 +77,7 @@ public class EdmAnnotationsImpl implements EdmAnnotations {
       final FullQualifiedName base = new FullQualifiedName(splitted[0]);
       final String path = splitted.length > 1 ? splitted[1] : null;
 
-      final EdmEntityContainer baseEntityContainer = schema.getEntityContainer();
+      final EdmEntityContainer baseEntityContainer = edm.getEntityContainer();
 
       EdmAnnotationsTarget localTarget = baseEntityContainer == null ? null
           : baseEntityContainer.getActionImport(path);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3647a631/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
index a9e466a..53c69f4 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
@@ -342,12 +342,11 @@ public class EdmProviderImpl extends AbstractEdm {
   }
 
   @Override
-  protected EdmAnnotations createAnnotationGroup(final FullQualifiedName targetName) {
+  protected EdmAnnotations createAnnotationGroup(final FullQualifiedName targetName, String qualifier) {
     try {
-      EdmSchema schema = getSchema(targetName.getNamespace());
-      CsdlAnnotations providerGroup = provider.getAnnotationsGroup(targetName);
+      CsdlAnnotations providerGroup = provider.getAnnotationsGroup(targetName, qualifier);
       if (providerGroup != null) {
-        return new EdmAnnotationsImpl(this, schema, providerGroup);
+        return new EdmAnnotationsImpl(this, providerGroup);
       }
       return null;
     } catch (ODataException e) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3647a631/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSchemaImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSchemaImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSchemaImpl.java
index 1c8ecf1..8d6b244 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSchemaImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSchemaImpl.java
@@ -270,7 +270,7 @@ public class EdmSchemaImpl extends AbstractEdmAnnotatable implements EdmSchema {
         } else {
           targetName = new FullQualifiedName(namespace, annotationGroup.getTarget());
         }
-        EdmAnnotationsImpl annotationsImpl = new EdmAnnotationsImpl(edm, this, annotationGroup);
+        EdmAnnotationsImpl annotationsImpl = new EdmAnnotationsImpl(edm, annotationGroup);
         annotationGroups.add(annotationsImpl);
         edm.cacheAnnotationGroup(targetName, annotationsImpl);
       }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3647a631/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCachingTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCachingTest.java b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCachingTest.java
index bfd38e3..986abf6 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCachingTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCachingTest.java
@@ -421,7 +421,7 @@ public class EdmImplCachingTest {
     }
 
     @Override
-    protected EdmAnnotations createAnnotationGroup(final FullQualifiedName target) {
+    protected EdmAnnotations createAnnotationGroup(final FullQualifiedName target, String qualifier) {
       throw new UnsupportedOperationException("Not supported yet.");
     }
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3647a631/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCallCreateTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCallCreateTest.java b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCallCreateTest.java
index 9aad3fa..b5a1734 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCallCreateTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCallCreateTest.java
@@ -285,7 +285,7 @@ public class EdmImplCallCreateTest {
     }
 
     @Override
-    protected EdmAnnotations createAnnotationGroup(final FullQualifiedName targetName) {
+    protected EdmAnnotations createAnnotationGroup(final FullQualifiedName targetName, String qualifier) {
       throw new UnsupportedOperationException("Not supported yet.");
     }
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3647a631/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/SchemaBasedEdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/SchemaBasedEdmProvider.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/SchemaBasedEdmProvider.java
index fb8ec8b..0612302 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/SchemaBasedEdmProvider.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/SchemaBasedEdmProvider.java
@@ -303,7 +303,7 @@ public class SchemaBasedEdmProvider implements CsdlEdmProvider {
   }
 
   @Override
-  public CsdlAnnotations getAnnotationsGroup(FullQualifiedName targetName) throws ODataException {
+  public CsdlAnnotations getAnnotationsGroup(FullQualifiedName targetName, String qualifier) throws ODataException {
     return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3647a631/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index fc53d99..7266beb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -80,7 +80,7 @@
     <velocity.version>1.7</velocity.version>
     <maven.plugin.api.version>3.2.2</maven.plugin.api.version>
     <maven.plugin.tools.version>3.3</maven.plugin.tools.version>
-    <maven.bundle.plugin.version>2.5.4</maven.bundle.plugin.version>
+    <maven.bundle.plugin.version>2.5.3</maven.bundle.plugin.version>
     <hc.client.version>4.2.6</hc.client.version>
     <hc.core.version>4.2.5</hc.core.version>
     <jackson.version>2.4.2</jackson.version>