[ 
https://issues.apache.org/jira/browse/OLINGO-1217?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jordi Cabré updated OLINGO-1217:
--------------------------------
    Description: 
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:


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


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 (
{noformat}
http://localhost:8080/olingo/odata/$metadata
{noformat}
)


{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?

  was:
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?


> 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:
> {noformat}
> http://localhost:8080/olingo/odata/Resources?$apply=groupby((propertyX,Id))
> {noformat}
> 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 (
> {noformat}
> http://localhost:8080/olingo/odata/$metadata
> {noformat}
> )
> {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