[OLINGO-260] partially provided opentype support on proxy
This commit is contained in:
parent
12a1284651
commit
4bdc91951a
|
@ -60,7 +60,7 @@ public abstract class AbstractTypeInvocationHandler extends AbstractInvocationHa
|
|||
|
||||
protected final EntityContext entityContext = EntityContainerFactory.getContext().entityContext();
|
||||
|
||||
protected final EntityTypeInvocationHandler targetHandler;
|
||||
protected EntityTypeInvocationHandler entityHandler;
|
||||
|
||||
protected Object internal;
|
||||
|
||||
|
@ -73,19 +73,27 @@ public abstract class AbstractTypeInvocationHandler extends AbstractInvocationHa
|
|||
super(client, containerHandler);
|
||||
this.internal = internal;
|
||||
this.typeRef = typeRef;
|
||||
this.targetHandler = EntityTypeInvocationHandler.class.cast(this);
|
||||
this.entityHandler = EntityTypeInvocationHandler.class.cast(this);
|
||||
}
|
||||
|
||||
protected AbstractTypeInvocationHandler(
|
||||
final CommonEdmEnabledODataClient<?> client,
|
||||
final Class<?> typeRef,
|
||||
final Object internal,
|
||||
final EntityTypeInvocationHandler targetHandler) {
|
||||
final EntityTypeInvocationHandler entityHandler) {
|
||||
|
||||
super(client, targetHandler == null ? null : targetHandler.containerHandler);
|
||||
super(client, entityHandler == null ? null : entityHandler.containerHandler);
|
||||
this.internal = internal;
|
||||
this.typeRef = typeRef;
|
||||
this.targetHandler = targetHandler;
|
||||
this.entityHandler = entityHandler;
|
||||
}
|
||||
|
||||
public EntityTypeInvocationHandler getEntityHandler() {
|
||||
return entityHandler;
|
||||
}
|
||||
|
||||
public void setEntityHandler(EntityTypeInvocationHandler entityHandler) {
|
||||
this.entityHandler = entityHandler;
|
||||
}
|
||||
|
||||
public abstract FullQualifiedName getName();
|
||||
|
@ -104,14 +112,14 @@ public abstract class AbstractTypeInvocationHandler extends AbstractInvocationHa
|
|||
return Proxy.newProxyInstance(
|
||||
Thread.currentThread().getContextClassLoader(),
|
||||
new Class<?>[] {returnType},
|
||||
OperationInvocationHandler.getInstance(targetHandler));
|
||||
OperationInvocationHandler.getInstance(entityHandler));
|
||||
} else if ("factory".equals(method.getName()) && ArrayUtils.isEmpty(args)) {
|
||||
final Class<?> returnType = method.getReturnType();
|
||||
|
||||
return Proxy.newProxyInstance(
|
||||
Thread.currentThread().getContextClassLoader(),
|
||||
new Class<?>[] {returnType},
|
||||
FactoryInvocationHandler.getInstance(targetHandler, this));
|
||||
FactoryInvocationHandler.getInstance(entityHandler, this));
|
||||
} else if (method.getName().startsWith("get")) {
|
||||
// Assumption: for each getter will always exist a setter and viceversa.
|
||||
// get method annotation and check if it exists as expected
|
||||
|
@ -165,8 +173,8 @@ public abstract class AbstractTypeInvocationHandler extends AbstractInvocationHa
|
|||
}
|
||||
|
||||
protected void attach() {
|
||||
if (targetHandler != null && !entityContext.isAttached(targetHandler)) {
|
||||
entityContext.attach(targetHandler, AttachedEntityStatus.ATTACHED);
|
||||
if (entityHandler != null && !entityContext.isAttached(entityHandler)) {
|
||||
entityContext.attach(entityHandler, AttachedEntityStatus.ATTACHED);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -175,12 +183,12 @@ public abstract class AbstractTypeInvocationHandler extends AbstractInvocationHa
|
|||
}
|
||||
|
||||
protected void attach(final AttachedEntityStatus status, final boolean override) {
|
||||
if (entityContext.isAttached(targetHandler)) {
|
||||
if (entityContext.isAttached(entityHandler)) {
|
||||
if (override) {
|
||||
entityContext.setStatus(targetHandler, status);
|
||||
entityContext.setStatus(entityHandler, status);
|
||||
}
|
||||
} else {
|
||||
entityContext.attach(targetHandler, status);
|
||||
entityContext.attach(entityHandler, status);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -266,8 +274,8 @@ public abstract class AbstractTypeInvocationHandler extends AbstractInvocationHa
|
|||
|
||||
private void setNavigationPropertyValue(final NavigationProperty property, final Object value) {
|
||||
// 1) attach source entity
|
||||
if (!entityContext.isAttached(targetHandler)) {
|
||||
entityContext.attach(targetHandler, AttachedEntityStatus.CHANGED);
|
||||
if (!entityContext.isAttached(entityHandler)) {
|
||||
entityContext.attach(entityHandler, AttachedEntityStatus.CHANGED);
|
||||
}
|
||||
|
||||
// 2) attach the target entity handlers
|
||||
|
|
|
@ -108,7 +108,7 @@ public class ComplexTypeInvocationHandler extends AbstractTypeInvocationHandler
|
|||
@Override
|
||||
protected Object getPropertyValue(final String name, final Type type) {
|
||||
try {
|
||||
return CoreUtils.getValueFromProperty(client, getComplex().get(name), type, targetHandler);
|
||||
return CoreUtils.getValueFromProperty(client, getComplex().get(name), type, entityHandler);
|
||||
} catch (Exception e) {
|
||||
throw new IllegalArgumentException("Error getting value for property '" + name + "'", e);
|
||||
}
|
||||
|
@ -166,8 +166,8 @@ public class ComplexTypeInvocationHandler extends AbstractTypeInvocationHandler
|
|||
client.getBinder().add(
|
||||
getComplex(), CoreUtils.getODataProperty(client, property.name(), type, toBeAdded));
|
||||
|
||||
if (targetHandler != null && !entityContext.isAttached(targetHandler)) {
|
||||
entityContext.attach(targetHandler, AttachedEntityStatus.CHANGED);
|
||||
if (entityHandler != null && !entityContext.isAttached(entityHandler)) {
|
||||
entityContext.attach(entityHandler, AttachedEntityStatus.CHANGED);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -192,6 +192,6 @@ public class ComplexTypeInvocationHandler extends AbstractTypeInvocationHandler
|
|||
|
||||
@Override
|
||||
public boolean isChanged() {
|
||||
return targetHandler == null ? false : targetHandler.isChanged();
|
||||
return entityHandler == null ? false : entityHandler.isChanged();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -96,6 +96,13 @@ public final class EntityContainerInvocationHandler extends AbstractInvocationHa
|
|||
Thread.currentThread().getContextClassLoader(),
|
||||
new Class<?>[] {returnType},
|
||||
OperationInvocationHandler.getInstance(this));
|
||||
} else if ("complexFactory".equals(method.getName()) && ArrayUtils.isEmpty(args)) {
|
||||
final Class<?> returnType = method.getReturnType();
|
||||
|
||||
return Proxy.newProxyInstance(
|
||||
Thread.currentThread().getContextClassLoader(),
|
||||
new Class<?>[] {returnType},
|
||||
FactoryInvocationHandler.getInstance(getClient(), this, null, null));
|
||||
} else {
|
||||
final Class<?> returnType = method.getReturnType();
|
||||
|
||||
|
|
|
@ -20,10 +20,13 @@ package org.apache.olingo.ext.proxy.commons;
|
|||
|
||||
import java.io.InputStream;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.InvocationHandler;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Proxy;
|
||||
import java.lang.reflect.Type;
|
||||
import java.net.URI;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
|
@ -225,12 +228,33 @@ public class EntityTypeInvocationHandler extends AbstractTypeInvocationHandler {
|
|||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
protected void setPropertyValue(final Property property, final Object value) {
|
||||
if (property.type().equalsIgnoreCase(EdmPrimitiveTypeKind.Stream.toString())) {
|
||||
setStreamedProperty(property, (InputStream) value);
|
||||
} else {
|
||||
addPropertyChanges(property.name(), value);
|
||||
|
||||
if (value != null) {
|
||||
final Collection<?> coll;
|
||||
if (Collection.class.isAssignableFrom(value.getClass())) {
|
||||
coll = Collection.class.cast(value);
|
||||
} else {
|
||||
coll = Collections.singleton(value);
|
||||
}
|
||||
|
||||
for (Object item : coll) {
|
||||
if (item instanceof Proxy) {
|
||||
final InvocationHandler handler = Proxy.getInvocationHandler(item);
|
||||
if ((handler instanceof ComplexTypeInvocationHandler)
|
||||
&& ((ComplexTypeInvocationHandler) handler).getEntityHandler() == null) {
|
||||
((ComplexTypeInvocationHandler) handler).setEntityHandler(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
attach(AttachedEntityStatus.CHANGED);
|
||||
}
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ package org.apache.olingo.ext.proxy.commons;
|
|||
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Proxy;
|
||||
import org.apache.olingo.client.api.CommonEdmEnabledODataClient;
|
||||
import org.apache.olingo.ext.proxy.api.OperationExecutor;
|
||||
import org.apache.olingo.ext.proxy.api.annotations.Property;
|
||||
import org.apache.olingo.ext.proxy.utils.ClassUtils;
|
||||
|
@ -32,18 +33,33 @@ class FactoryInvocationHandler extends AbstractInvocationHandler implements Oper
|
|||
|
||||
private final AbstractTypeInvocationHandler invokerHandler;
|
||||
|
||||
@SuppressWarnings({"rawtypes", "unchecked"})
|
||||
static FactoryInvocationHandler getInstance(
|
||||
final CommonEdmEnabledODataClient<?> client,
|
||||
final EntityContainerInvocationHandler containerHandler,
|
||||
final EntityTypeInvocationHandler entityHandler,
|
||||
final AbstractTypeInvocationHandler targetHandler) {
|
||||
return new FactoryInvocationHandler(client, containerHandler, entityHandler, targetHandler);
|
||||
}
|
||||
|
||||
@SuppressWarnings({"rawtypes", "unchecked"})
|
||||
static FactoryInvocationHandler getInstance(
|
||||
final EntityTypeInvocationHandler entityHandler,
|
||||
final AbstractTypeInvocationHandler targetHandler) {
|
||||
|
||||
return new FactoryInvocationHandler(entityHandler, targetHandler);
|
||||
return new FactoryInvocationHandler(
|
||||
entityHandler == null ? null : entityHandler.containerHandler.client,
|
||||
targetHandler == null
|
||||
? entityHandler == null ? null : entityHandler.containerHandler : targetHandler.containerHandler,
|
||||
entityHandler,
|
||||
targetHandler);
|
||||
}
|
||||
|
||||
private FactoryInvocationHandler(
|
||||
final CommonEdmEnabledODataClient<?> client,
|
||||
final EntityContainerInvocationHandler containerHandler,
|
||||
final EntityTypeInvocationHandler entityHandler,
|
||||
final AbstractTypeInvocationHandler targetHandler) {
|
||||
|
||||
super(targetHandler.containerHandler.getClient(), targetHandler.containerHandler);
|
||||
super(client, containerHandler);
|
||||
this.invokerHandler = targetHandler;
|
||||
this.entityHandler = entityHandler;
|
||||
}
|
||||
|
@ -53,8 +69,7 @@ class FactoryInvocationHandler extends AbstractInvocationHandler implements Oper
|
|||
if (isSelfMethod(method, args)) {
|
||||
return invokeSelfMethod(method, args);
|
||||
} else if (method.getName().startsWith("new")) {
|
||||
final String getterName = method.getName().replaceFirst("new", "get");
|
||||
final Method getter = invokerHandler.getTypeRef().getMethod(getterName);
|
||||
final Method getter = proxy.getClass().getInterfaces()[0].getMethod(method.getName());
|
||||
final Property property = ClassUtils.getAnnotation(Property.class, getter);
|
||||
if (property == null) {
|
||||
throw new UnsupportedOperationException("Unsupported method " + method.getName());
|
||||
|
|
|
@ -45,10 +45,13 @@ import org.apache.olingo.commons.api.domain.v4.ODataEnumValue;
|
|||
import org.apache.olingo.commons.api.domain.v4.ODataProperty;
|
||||
import org.apache.olingo.commons.api.edm.EdmElement;
|
||||
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
|
||||
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
|
||||
import org.apache.olingo.commons.api.edm.EdmType;
|
||||
import org.apache.olingo.commons.api.edm.FullQualifiedName;
|
||||
import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
|
||||
import org.apache.olingo.commons.core.edm.EdmTypeInfo;
|
||||
import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
|
||||
import org.apache.olingo.ext.proxy.api.annotations.ComplexType;
|
||||
import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
|
||||
import org.apache.olingo.ext.proxy.api.annotations.EnumType;
|
||||
import org.apache.olingo.ext.proxy.api.annotations.Key;
|
||||
|
@ -174,12 +177,18 @@ public final class CoreUtils {
|
|||
final String property,
|
||||
final Object obj) {
|
||||
|
||||
final EdmTypeInfo type;
|
||||
if (edmProperty == null) {
|
||||
// maybe opentype ...
|
||||
type = null;
|
||||
} else {
|
||||
final EdmType edmType = edmProperty.getType();
|
||||
|
||||
final EdmTypeInfo type = new EdmTypeInfo.Builder().setEdm(client.getCachedEdm()).setTypeExpression(
|
||||
type = new EdmTypeInfo.Builder().setEdm(client.getCachedEdm()).setTypeExpression(
|
||||
edmProperty.isCollection()
|
||||
? "Collection(" + edmType.getFullQualifiedName().toString() + ")"
|
||||
: edmType.getFullQualifiedName().toString()).build();
|
||||
}
|
||||
|
||||
return getODataProperty(client, property, type, obj);
|
||||
}
|
||||
|
@ -190,28 +199,40 @@ public final class CoreUtils {
|
|||
CommonODataProperty oprop;
|
||||
|
||||
try {
|
||||
if (type == null || obj == null) {
|
||||
if (obj == null) {
|
||||
oprop = client.getObjectFactory().newPrimitiveProperty(name, null);
|
||||
} else if (type.isCollection()) {
|
||||
} else {
|
||||
final EdmTypeInfo valueType;
|
||||
if (type == null) {
|
||||
valueType = guessTypeFromObject(client, obj);
|
||||
} else {
|
||||
valueType = type;
|
||||
}
|
||||
|
||||
if (valueType.isCollection()) {
|
||||
// create collection property
|
||||
oprop = client.getObjectFactory().newCollectionProperty(name, getODataValue(client, type, obj).asCollection());
|
||||
} else if (type.isPrimitiveType()) {
|
||||
oprop = client.getObjectFactory().newCollectionProperty(name, getODataValue(client, valueType, obj).
|
||||
asCollection());
|
||||
} else if (valueType.isPrimitiveType()) {
|
||||
// create a primitive property
|
||||
oprop = client.getObjectFactory().newPrimitiveProperty(name, getODataValue(client, type, obj).asPrimitive());
|
||||
} else if (type.isComplexType()) {
|
||||
oprop = client.getObjectFactory().newPrimitiveProperty(name, getODataValue(client, valueType, obj).
|
||||
asPrimitive());
|
||||
} else if (valueType.isComplexType()) {
|
||||
// create a complex property
|
||||
oprop = client.getObjectFactory().newComplexProperty(name, getODataValue(client, type, obj).asComplex());
|
||||
} else if (type.isEnumType()) {
|
||||
oprop = client.getObjectFactory().newComplexProperty(name, getODataValue(client, valueType, obj).
|
||||
asComplex());
|
||||
} else if (valueType.isEnumType()) {
|
||||
if (client.getServiceVersion().compareTo(ODataServiceVersion.V30) <= 0) {
|
||||
throw new UnsupportedInV3Exception();
|
||||
} else {
|
||||
oprop = ((org.apache.olingo.commons.api.domain.v4.ODataObjectFactory) client.getObjectFactory()).
|
||||
newEnumProperty(name,
|
||||
((org.apache.olingo.commons.api.domain.v4.ODataValue) getODataValue(client, type, obj)).
|
||||
((org.apache.olingo.commons.api.domain.v4.ODataValue) getODataValue(client, valueType, obj)).
|
||||
asEnum());
|
||||
}
|
||||
} else {
|
||||
throw new UnsupportedOperationException("Usupported object type " + type.getFullQualifiedName());
|
||||
throw new UnsupportedOperationException("Usupported object type " + valueType.getFullQualifiedName());
|
||||
}
|
||||
}
|
||||
|
||||
return oprop;
|
||||
|
@ -220,6 +241,48 @@ public final class CoreUtils {
|
|||
}
|
||||
}
|
||||
|
||||
private static EdmTypeInfo guessTypeFromObject(
|
||||
final CommonEdmEnabledODataClient<?> client, final Object obj) {
|
||||
|
||||
final EdmTypeInfo.Builder edmTypeInfo = new EdmTypeInfo.Builder().setEdm(client.getCachedEdm());
|
||||
|
||||
if (Collection.class.isAssignableFrom(obj.getClass())) {
|
||||
final EdmTypeInfo type = guessPrimitiveType(client, ClassUtils.extractTypeArg(obj.getClass()));
|
||||
return edmTypeInfo.setTypeExpression(
|
||||
"Collection(" + type.getFullQualifiedName() + ")").build();
|
||||
} else if (obj instanceof Proxy) {
|
||||
final Class<?> typeRef = obj.getClass().getInterfaces()[0];
|
||||
final String ns = typeRef.getAnnotation(Namespace.class).value();
|
||||
final String name = typeRef.getAnnotation(ComplexType.class).name();
|
||||
return edmTypeInfo.setTypeExpression(new FullQualifiedName(ns, name).toString()).build();
|
||||
} else {
|
||||
return guessPrimitiveType(client, obj.getClass());
|
||||
}
|
||||
}
|
||||
|
||||
private static EdmTypeInfo guessPrimitiveType(
|
||||
final CommonEdmEnabledODataClient<?> client, final Class<?> clazz) {
|
||||
EdmPrimitiveTypeKind bckCandidate = null;
|
||||
|
||||
for (EdmPrimitiveTypeKind kind : EdmPrimitiveTypeKind.values()) {
|
||||
if (kind.getSupportedVersions().contains(client.getServiceVersion())) {
|
||||
final Class<?> target = EdmPrimitiveTypeFactory.getInstance(kind).getDefaultType();
|
||||
|
||||
if (clazz.equals(target)) {
|
||||
return new EdmTypeInfo.Builder().setEdm(client.getCachedEdm()).setTypeExpression(kind.toString()).build();
|
||||
} else if (target.isAssignableFrom(clazz)) {
|
||||
bckCandidate = kind;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (bckCandidate == null) {
|
||||
throw new IllegalArgumentException(clazz.getSimpleName() + " is not a simple type");
|
||||
} else {
|
||||
return new EdmTypeInfo.Builder().setEdm(client.getCachedEdm()).setTypeExpression(bckCandidate.toString()).build();
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static void addProperties(
|
||||
final CommonEdmEnabledODataClient<?> client,
|
||||
|
@ -429,6 +492,7 @@ public final class CoreUtils {
|
|||
if (property == null || property.hasNullValue()) {
|
||||
res = null;
|
||||
} else if (property.hasComplexValue()) {
|
||||
|
||||
res = Proxy.newProxyInstance(
|
||||
Thread.currentThread().getContextClassLoader(),
|
||||
new Class<?>[] {internalRef},
|
||||
|
|
|
@ -23,9 +23,11 @@ import java.io.FileInputStream;
|
|||
import java.io.FileNotFoundException;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
|
@ -248,7 +250,10 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
|
|||
parseObj(typesBaseDir, typesPkg, "enumType", className + ".java", objs);
|
||||
}
|
||||
|
||||
final List<EdmComplexType> complexes = new ArrayList<EdmComplexType>();
|
||||
|
||||
for (EdmComplexType complex : schema.getComplexTypes()) {
|
||||
complexes.add(complex);
|
||||
final String className = utility.capitalize(complex.getName());
|
||||
objs.clear();
|
||||
objs.put("complexType", complex);
|
||||
|
@ -297,6 +302,7 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
|
|||
objs.clear();
|
||||
objs.put("container", container);
|
||||
objs.put("namespace", schema.getNamespace());
|
||||
objs.put("complexes", complexes);
|
||||
|
||||
parseObj(base, pkg, "container",
|
||||
utility.capitalize(container.getName()) + ".java", objs);
|
||||
|
|
|
@ -24,6 +24,7 @@ import org.apache.olingo.ext.proxy.api.annotations.Namespace;
|
|||
import org.apache.olingo.ext.proxy.api.annotations.EntityContainer;
|
||||
import org.apache.olingo.ext.proxy.api.annotations.Operation;
|
||||
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
|
||||
import org.apache.olingo.ext.proxy.api.annotations.Property;
|
||||
import org.apache.olingo.ext.proxy.api.Container;
|
||||
import org.apache.olingo.ext.proxy.api.OperationType;
|
||||
#foreach($ns in $namespaces)
|
||||
|
@ -104,4 +105,18 @@ public interface $utility.capitalize($container.Name) extends Container {
|
|||
#end
|
||||
#end
|
||||
}
|
||||
|
||||
#if( $complexes.size() > 0 )
|
||||
ComplexFactory complexFactory();
|
||||
|
||||
interface ComplexFactory {
|
||||
#foreach($complex in $complexes)
|
||||
#set( $type = "${namespace}.${complex.Name}" )
|
||||
@Property(name = "$complex.Name",
|
||||
type = "$type")
|
||||
$utility.getJavaType($type) new$utility.capitalize($complex.Name)();
|
||||
|
||||
#end
|
||||
}
|
||||
#end
|
||||
}
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>pojogen-maven-plugin-v3test</artifactId>
|
||||
<groupId>org.apache.olingo</groupId>
|
||||
<version>@project.version@</version>
|
||||
<name>${project.artifactId}</name>
|
||||
<description>A simple IT verifying the basic use case of pojogen-man-plugin.</description>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<artifactId>pojogen-maven-plugin</artifactId>
|
||||
<groupId>org.apache.olingo</groupId>
|
||||
<version>@project.version@</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>olingo-client-proxy</artifactId>
|
||||
<groupId>org.apache.olingo</groupId>
|
||||
<version>@project.version@</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
<version>1.8</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>process-sources</phase>
|
||||
<goals>
|
||||
<goal>add-source</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<sources>
|
||||
<source>${project.build.directory}/generated-sources</source>
|
||||
</sources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>@project.groupId@</groupId>
|
||||
<artifactId>pojogen-maven-plugin</artifactId>
|
||||
<version>@project.version@</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
|
||||
<serviceRootURL>http://localhost:9080/stub/StaticService/V30/OpenType.svc</serviceRootURL>
|
||||
<basePackage>org.apache.olingo.fit.proxy.v3.opentype</basePackage>
|
||||
</configuration>
|
||||
<id>v3pojoGen</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>v3pojoGen</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
|
@ -0,0 +1,20 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
File basepkg = new File( basedir, "target/generated-sources/ojc-plugin/org/apache/olingo/fit/proxy/v3" );
|
||||
assert basepkg.isDirectory() && basepkg.listFiles().length>0;
|
|
@ -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>
|
||||
<serviceRootURL>http://localhost:9080/stub/StaticService/V40/OpenType.svc</serviceRootURL>
|
||||
<basePackage>org.apache.olingo.fit.proxy.v4.opentype</basePackage>
|
||||
</configuration>
|
||||
<id>v4pojoGen</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>v4pojoGen</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
|
@ -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;
|
|
@ -49,19 +49,14 @@ import org.springframework.stereotype.Service;
|
|||
|
||||
@Service
|
||||
@Path("/V30/OpenType.svc")
|
||||
public class V3OpenType {
|
||||
public class V3OpenType extends V3Services {
|
||||
|
||||
private static final Pattern GUID = Pattern.compile("guid'(.*)'");
|
||||
|
||||
private final V3Services services;
|
||||
|
||||
private final Metadata openMetadata;
|
||||
|
||||
public V3OpenType() throws Exception {
|
||||
this.openMetadata = new Metadata(FSManager.instance(ODataServiceVersion.V30).
|
||||
super(new Metadata(FSManager.instance(ODataServiceVersion.V30).
|
||||
readFile("openType" + StringUtils.capitalize(Constants.get(ODataServiceVersion.V30, ConstantKey.METADATA)),
|
||||
Accept.XML), ODataServiceVersion.V30);
|
||||
this.services = new V3Services(this.openMetadata);
|
||||
Accept.XML), ODataServiceVersion.V30));
|
||||
}
|
||||
|
||||
private Response replaceServiceName(final Response response) {
|
||||
|
@ -98,13 +93,15 @@ public class V3OpenType {
|
|||
@GET
|
||||
@Path("/$metadata")
|
||||
@Produces(MediaType.APPLICATION_XML)
|
||||
@Override
|
||||
public Response getMetadata() {
|
||||
return services.getMetadata("openType" + StringUtils.capitalize(
|
||||
return super.getMetadata("openType" + StringUtils.capitalize(
|
||||
Constants.get(ODataServiceVersion.V30, ConstantKey.METADATA)));
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/{entitySetName}({entityId})")
|
||||
@Override
|
||||
public Response getEntity(
|
||||
@Context UriInfo uriInfo,
|
||||
@HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) String accept,
|
||||
|
@ -115,7 +112,7 @@ public class V3OpenType {
|
|||
@QueryParam("$select") @DefaultValue(StringUtils.EMPTY) String select) {
|
||||
|
||||
final Matcher matcher = GUID.matcher(entityId);
|
||||
return replaceServiceName(services.getEntityInternal(
|
||||
return replaceServiceName(super.getEntityInternal(
|
||||
uriInfo.getRequestUri().toASCIIString(), accept, entitySetName,
|
||||
matcher.matches() ? matcher.group(1) : entityId, format, expand, select, false));
|
||||
}
|
||||
|
@ -124,6 +121,7 @@ public class V3OpenType {
|
|||
@Path("/{entitySetName}")
|
||||
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
|
||||
@Consumes({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM})
|
||||
@Override
|
||||
public Response postNewEntity(
|
||||
@Context UriInfo uriInfo,
|
||||
@HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) String accept,
|
||||
|
@ -132,17 +130,18 @@ public class V3OpenType {
|
|||
@PathParam("entitySetName") final String entitySetName,
|
||||
final String entity) {
|
||||
|
||||
return replaceServiceName(services.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entity));
|
||||
return replaceServiceName(super.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entity));
|
||||
}
|
||||
|
||||
@DELETE
|
||||
@Path("/{entitySetName}({entityId})")
|
||||
@Override
|
||||
public Response removeEntity(
|
||||
@PathParam("entitySetName") String entitySetName,
|
||||
@PathParam("entityId") String entityId) {
|
||||
|
||||
final Matcher matcher = GUID.matcher(entityId);
|
||||
return replaceServiceName(services.removeEntity(entitySetName,
|
||||
return replaceServiceName(super.removeEntity(entitySetName,
|
||||
matcher.matches() ? matcher.group(1) : entityId));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,17 +47,12 @@ import org.springframework.stereotype.Service;
|
|||
|
||||
@Service
|
||||
@Path("/V40/OpenType.svc")
|
||||
public class V4OpenType {
|
||||
|
||||
private final V4Services services;
|
||||
|
||||
private final Metadata openMetadata;
|
||||
public class V4OpenType extends V4Services {
|
||||
|
||||
public V4OpenType() throws Exception {
|
||||
this.openMetadata = new Metadata(FSManager.instance(ODataServiceVersion.V40).
|
||||
super(new Metadata(FSManager.instance(ODataServiceVersion.V40).
|
||||
readFile("openType" + StringUtils.capitalize(Constants.get(ODataServiceVersion.V40, ConstantKey.METADATA)),
|
||||
Accept.XML), ODataServiceVersion.V40);
|
||||
this.services = new V4Services(openMetadata);
|
||||
Accept.XML), ODataServiceVersion.V40));
|
||||
}
|
||||
|
||||
private Response replaceServiceName(final Response response) {
|
||||
|
@ -94,13 +89,15 @@ public class V4OpenType {
|
|||
@GET
|
||||
@Path("/$metadata")
|
||||
@Produces(MediaType.APPLICATION_XML)
|
||||
@Override
|
||||
public Response getMetadata() {
|
||||
return services.getMetadata("openType" + StringUtils.capitalize(
|
||||
return super.getMetadata("openType" + StringUtils.capitalize(
|
||||
Constants.get(ODataServiceVersion.V40, ConstantKey.METADATA)));
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/{entitySetName}({entityId})")
|
||||
@Override
|
||||
public Response getEntity(
|
||||
@Context UriInfo uriInfo,
|
||||
@HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) String accept,
|
||||
|
@ -110,7 +107,7 @@ public class V4OpenType {
|
|||
@QueryParam("$expand") @DefaultValue(StringUtils.EMPTY) String expand,
|
||||
@QueryParam("$select") @DefaultValue(StringUtils.EMPTY) String select) {
|
||||
|
||||
return replaceServiceName(services.getEntityInternal(
|
||||
return replaceServiceName(super.getEntityInternal(
|
||||
uriInfo.getRequestUri().toASCIIString(), accept, entitySetName, entityId, format, expand, select, false));
|
||||
}
|
||||
|
||||
|
@ -118,6 +115,7 @@ public class V4OpenType {
|
|||
@Path("/{entitySetName}")
|
||||
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
|
||||
@Consumes({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM})
|
||||
@Override
|
||||
public Response postNewEntity(
|
||||
@Context UriInfo uriInfo,
|
||||
@HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) String accept,
|
||||
|
@ -126,15 +124,16 @@ public class V4OpenType {
|
|||
@PathParam("entitySetName") final String entitySetName,
|
||||
final String entity) {
|
||||
|
||||
return replaceServiceName(services.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entity));
|
||||
return replaceServiceName(super.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entity));
|
||||
}
|
||||
|
||||
@DELETE
|
||||
@Path("/{entitySetName}({entityId})")
|
||||
@Override
|
||||
public Response removeEntity(
|
||||
@PathParam("entitySetName") String entitySetName,
|
||||
@PathParam("entityId") String entityId) {
|
||||
|
||||
return replaceServiceName(services.removeEntity(entitySetName, entityId));
|
||||
return replaceServiceName(super.removeEntity(entitySetName, entityId));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -87,6 +87,7 @@ public abstract class AbstractTestITCase {
|
|||
containerFactory.getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
|
||||
container = containerFactory.getEntityContainer(DefaultContainer.class);
|
||||
assertNotNull(container);
|
||||
EntityContainerFactory.getContext().detachAll();
|
||||
}
|
||||
|
||||
protected Customer getSampleCustomerProfile(
|
||||
|
|
|
@ -0,0 +1,134 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
package org.apache.olingo.fit.proxy.v3;
|
||||
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.apache.olingo.commons.api.format.ContentType;
|
||||
import org.apache.olingo.ext.proxy.EntityContainerFactory;
|
||||
import org.apache.olingo.ext.proxy.api.annotations.EntityType;
|
||||
import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.DefaultContainer;
|
||||
import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.ContactDetails;
|
||||
import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.Row;
|
||||
import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.RowIndex;
|
||||
import org.junit.BeforeClass;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* This is the unit test class to check actions overloading.
|
||||
*/
|
||||
public class OpenTypeTestITCase extends AbstractTestITCase {
|
||||
|
||||
private static DefaultContainer otcontainer;
|
||||
|
||||
@BeforeClass
|
||||
public static void initContainer() {
|
||||
final EntityContainerFactory otcontainerFactory = EntityContainerFactory.getV3(testOpenTypeServiceRootURL);
|
||||
otcontainerFactory.getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
|
||||
otcontainer = otcontainerFactory.getEntityContainer(DefaultContainer.class);
|
||||
assertNotNull(otcontainer);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkOpenTypeEntityTypesExist() {
|
||||
assertTrue(otcontainer.getRow().newRow().getClass().getInterfaces()[0].
|
||||
getAnnotation(EntityType.class).openType());
|
||||
assertTrue(otcontainer.getRowIndex().newRowIndex().getClass().getInterfaces()[0].
|
||||
getAnnotation(EntityType.class).openType());
|
||||
assertTrue(otcontainer.getRow().newIndexedRow().getClass().getInterfaces()[0].
|
||||
getAnnotation(EntityType.class).openType());
|
||||
entityContext.detachAll();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void read() {
|
||||
Row row = otcontainer.getRow().get(UUID.fromString("71f7d0dc-ede4-45eb-b421-555a2aa1e58f"));
|
||||
assertEquals(Double.class, row.getAdditionalProperty("Double").getClass());
|
||||
assertEquals("71f7d0dc-ede4-45eb-b421-555a2aa1e58f", row.getId().toString());
|
||||
|
||||
row = otcontainer.getRow().get(UUID.fromString("672b8250-1e6e-4785-80cf-b94b572e42b3"));
|
||||
assertEquals(BigDecimal.class, row.getAdditionalProperty("Decimal").getClass());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void cud() throws ParseException {
|
||||
final Integer id = 1426;
|
||||
|
||||
RowIndex rowIndex = otcontainer.getRowIndex().newRowIndex();
|
||||
rowIndex.setId(id);
|
||||
rowIndex.addAdditionalProperty("aString", "string");
|
||||
rowIndex.addAdditionalProperty("aBoolean", true);
|
||||
rowIndex.addAdditionalProperty("aDouble", 1.5D);
|
||||
rowIndex.addAdditionalProperty("aByte", Byte.MAX_VALUE);
|
||||
rowIndex.addAdditionalProperty("aDate", Calendar.getInstance());
|
||||
|
||||
final ContactDetails contact = otcontainer.complexFactory().newContactDetails();
|
||||
contact.setFirstContacted("text".getBytes());
|
||||
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.clear();
|
||||
cal.setTime(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX").parse("2001-04-05T05:05:05.001+00:01"));
|
||||
|
||||
contact.setLastContacted(cal);
|
||||
|
||||
cal = Calendar.getInstance();
|
||||
cal.clear();
|
||||
cal.setTime(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").parse("2001-04-05T05:05:04.001"));
|
||||
contact.setContacted(cal);
|
||||
|
||||
contact.setGUID(UUID.randomUUID());
|
||||
contact.setPreferedContactTime(BigDecimal.ONE);
|
||||
contact.setByte(Short.valueOf("24"));
|
||||
contact.setSignedByte(Byte.MAX_VALUE);
|
||||
contact.setDouble(Double.valueOf(Double.MAX_VALUE));
|
||||
contact.setSingle(Float.MAX_VALUE);
|
||||
contact.setShort(Short.MAX_VALUE);
|
||||
contact.setInt(Integer.MAX_VALUE);
|
||||
rowIndex.addAdditionalProperty("aContact", contact);
|
||||
|
||||
otcontainer.flush();
|
||||
|
||||
rowIndex = otcontainer.getRowIndex().get(id);
|
||||
assertEquals(String.class, rowIndex.getAdditionalProperty("aString").getClass());
|
||||
assertEquals(Boolean.class, rowIndex.getAdditionalProperty("aBoolean").getClass());
|
||||
assertEquals(Double.class, rowIndex.getAdditionalProperty("aDouble").getClass());
|
||||
// assertEquals(Short.class, rowIndex.getAdditionalProperty("aByte").getClass()); // trova integer
|
||||
// assertEquals(Byte.MAX_VALUE, rowIndex.getAdditionalProperty("aByte"));
|
||||
// assertEquals(Calendar.class, rowIndex.getAdditionalProperty("aDate").getClass()); // trova stringa
|
||||
// assertEquals(ContactDetails.class, rowIndex.getAdditionalProperty("aContact").getClass().getInterfaces()[0]);
|
||||
|
||||
entityContext.detachAll();
|
||||
|
||||
otcontainer.getRowIndex().delete(id);
|
||||
otcontainer.flush();
|
||||
|
||||
assertNull(otcontainer.getRowIndex().get(id));
|
||||
}
|
||||
}
|
|
@ -45,9 +45,9 @@ public class PrimitiveKeysTestITCase extends AbstractTestITCase {
|
|||
|
||||
@Test
|
||||
public void readPrimitiveKeys() {
|
||||
containerFactory = EntityContainerFactory.getV3(testPrimitiveKeysServiceRootURL);
|
||||
containerFactory.getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
|
||||
final TestContext testContainer = containerFactory.getEntityContainer(TestContext.class);
|
||||
final EntityContainerFactory testContainerFactory = EntityContainerFactory.getV3(testPrimitiveKeysServiceRootURL);
|
||||
testContainerFactory.getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
|
||||
final TestContext testContainer = testContainerFactory.getEntityContainer(TestContext.class);
|
||||
assertNotNull(testContainer);
|
||||
|
||||
final EdmBoolean edmBooleanSet = testContainer.getEdmBooleanSet().get(Boolean.TRUE);
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
@ -23,6 +24,7 @@ import org.apache.olingo.ext.proxy.api.annotations.Namespace;
|
|||
import org.apache.olingo.ext.proxy.api.annotations.EntityContainer;
|
||||
import org.apache.olingo.ext.proxy.api.annotations.Operation;
|
||||
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
|
||||
import org.apache.olingo.ext.proxy.api.annotations.Property;
|
||||
import org.apache.olingo.ext.proxy.api.Container;
|
||||
import org.apache.olingo.ext.proxy.api.OperationType;
|
||||
import org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.*;
|
||||
|
@ -118,4 +120,37 @@ public interface DefaultContainer extends Container {
|
|||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
ComplexFactory complexFactory();
|
||||
|
||||
interface ComplexFactory {
|
||||
@Property(name = "ContactDetails",
|
||||
type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails")
|
||||
org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ContactDetails newContactDetails();
|
||||
|
||||
@Property(name = "Aliases",
|
||||
type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases")
|
||||
org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Aliases newAliases();
|
||||
|
||||
@Property(name = "Phone",
|
||||
type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone")
|
||||
org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone newPhone();
|
||||
|
||||
@Property(name = "AuditInfo",
|
||||
type = "Microsoft.Test.OData.Services.AstoriaDefaultService.AuditInfo")
|
||||
org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.AuditInfo newAuditInfo();
|
||||
|
||||
@Property(name = "ConcurrencyInfo",
|
||||
type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo")
|
||||
org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ConcurrencyInfo newConcurrencyInfo();
|
||||
|
||||
@Property(name = "Dimensions",
|
||||
type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Dimensions")
|
||||
org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Dimensions newDimensions();
|
||||
|
||||
@Property(name = "ComplexToCategory",
|
||||
type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ComplexToCategory")
|
||||
org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ComplexToCategory newComplexToCategory();
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
|
||||
|
|
|
@ -16,5 +16,6 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice;
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.annotations.Namespace;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.annotations.Namespace;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.annotations.Namespace;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.annotations.Namespace;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.annotations.Namespace;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.annotations.Namespace;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
@ -148,9 +149,9 @@ public interface LastLogin
|
|||
fcNSPrefix = "",
|
||||
fcNSURI = "",
|
||||
fcKeepInContent = false)
|
||||
Duration getDuration();
|
||||
BigDecimal getDuration();
|
||||
|
||||
void setDuration(final Duration _duration);
|
||||
void setDuration(final BigDecimal _duration);
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.annotations.EntityType;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.ext.proxy.api.annotations.EntityType;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
@ -148,9 +149,9 @@ public interface PageView
|
|||
fcNSPrefix = "",
|
||||
fcNSURI = "",
|
||||
fcKeepInContent = false)
|
||||
Duration getTimeSpentOnPage();
|
||||
BigDecimal getTimeSpentOnPage();
|
||||
|
||||
void setTimeSpentOnPage(final Duration _timeSpentOnPage);
|
||||
void setTimeSpentOnPage(final BigDecimal _timeSpentOnPage);
|
||||
|
||||
|
||||
@Property(name = "PageUrl",
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types;
|
||||
|
||||
import org.apache.olingo.client.api.http.HttpMethod;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue