Jordi Cabré created OLINGO-1217:
-----------------------------------

             Summary: Open Type is not populated
                 Key: OLINGO-1217
                 URL: https://issues.apache.org/jira/browse/OLINGO-1217
             Project: Olingo
          Issue Type: Bug
          Components: odata4-server
    Affects Versions: (Java) V4 4.4.0
         Environment: Olingo service running at Wildfly/11
            Reporter: Jordi Cabré


I've modeled a single open entity type like:


{code:java}
public CsdlEntityType getEntityType(final FullQualifiedName entityTypeName) 
throws ODataException
{
    if (ET_RESOURCE.equals(entityTypeName)) {
        return new CsdlEntityType()
            .setName(ET_RESOURCE.getName())
            .setKey(Arrays.asList(new CsdlPropertyRef().setName("Id")))
            .setOpenType(true)
            .setProperties(
                Arrays.asList(
                    new 
CsdlProperty().setName("Id").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())
                )
            );
    }
    return null;
}
{code}

As you can see this `Resource` type has a single `Id` property and the other 
ones are _dynamic_ properties.

I've launched this request to my server:

> http://localhost:8080/olingo/odata/Resources?$apply=groupby((propertyX,Id))

So, I'm grouping resources by a _dynamic_ property `propertyX`. I'm getting 
this message:

{code:javascript}
{
    "error": {
        "code": null,
        "message": "The property '', used in a query expression, is not defined 
in type 'propertyX'."
    }
}
{code}

Metadata (http://localhost:8080/olingo/odata/$metadata)


{code:xml}
<?xml version='1.0' encoding='UTF-8'?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx";>
    <edmx:DataServices>
        <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm"; 
Namespace="swiller.odata.sample">
            <EntityType Name="Resource">
                <Key>
                    <PropertyRef Name="Id"/>
                </Key>
                <Property Name="Id" Type="Edm.String"/>
                <Property Name="TimeStamp" Type="Edm.Date"/>
                <Property Name="ModifiedTimeStamp" Type="Edm.Date"/>
                <Property Name="Price" Type="Edm.Decimal" Scale="2"/>
            </EntityType>
            <EntityContainer Name="Container">
                <EntitySet Name="Resources" 
EntityType="swiller.odata.sample.Resource"/>
            </EntityContainer>
        </Schema>
    </edmx:DataServices>
</edmx:Edmx>
{code}


Despite of I've set the `Resource` entity type is an open type, this is not 
populated on metadata.

Any ideas?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to