[OLINGO-946] Use LinkedHashMap in JPA EdmProvider
diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/edm/ODataJPAEdmProvider.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/edm/ODataJPAEdmProvider.java
index 49ccad7..4d0554d 100644
--- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/edm/ODataJPAEdmProvider.java
+++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/edm/ODataJPAEdmProvider.java
@@ -20,6 +20,7 @@
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.List;
import org.apache.olingo.odata2.api.edm.FullQualifiedName;
@@ -54,22 +55,22 @@
private HashMap<String, FunctionImport> functionImports;
public ODataJPAEdmProvider() {
- entityTypes = new HashMap<String, EntityType>();
- entityContainerInfos = new HashMap<String, EntityContainerInfo>();
- complexTypes = new HashMap<String, ComplexType>();
- associations = new HashMap<String, Association>();
- functionImports = new HashMap<String, FunctionImport>();
+ entityTypes = new LinkedHashMap<String, EntityType>();
+ entityContainerInfos = new LinkedHashMap<String, EntityContainerInfo>();
+ complexTypes = new LinkedHashMap<String, ComplexType>();
+ associations = new LinkedHashMap<String, Association>();
+ functionImports = new LinkedHashMap<String, FunctionImport>();
}
public ODataJPAEdmProvider(final ODataJPAContext oDataJPAContext) {
if (oDataJPAContext == null) {
throw new IllegalArgumentException(ODataJPAException.ODATA_JPACTX_NULL);
}
- entityTypes = new HashMap<String, EntityType>();
- entityContainerInfos = new HashMap<String, EntityContainerInfo>();
- complexTypes = new HashMap<String, ComplexType>();
- associations = new HashMap<String, Association>();
- functionImports = new HashMap<String, FunctionImport>();
+ entityTypes = new LinkedHashMap<String, EntityType>();
+ entityContainerInfos = new LinkedHashMap<String, EntityContainerInfo>();
+ complexTypes = new LinkedHashMap<String, ComplexType>();
+ associations = new LinkedHashMap<String, Association>();
+ functionImports = new LinkedHashMap<String, FunctionImport>();
jpaEdmModel = ODataJPAFactory.createFactory().getJPAAccessFactory().getJPAEdmModelView(oDataJPAContext);
}
diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmSchema.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmSchema.java
index f27accd..8ee00ca 100644
--- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmSchema.java
+++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmSchema.java
@@ -20,6 +20,7 @@
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.List;
import org.apache.olingo.odata2.api.edm.provider.Association;
@@ -47,7 +48,7 @@
private JPAEdmComplexTypeView complexTypeView;
private JPAEdmEntityContainerView entityContainerView;
private JPAEdmAssociationView associationView = null;
- private HashMap<Class<?>, String[]> customOperations = null;
+ private LinkedHashMap<Class<?>, String[]> customOperations = null;
public JPAEdmSchema(final JPAEdmModelView modelView) {
super(modelView);
@@ -200,7 +201,7 @@
@Override
public void registerOperations(final Class<?> customClass, final String[] methodNames) {
if (customOperations == null) {
- customOperations = new HashMap<Class<?>, String[]>();
+ customOperations = new LinkedHashMap<Class<?>, String[]>();
}
customOperations.put(customClass, methodNames);
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/edm/ODataJPAEdmProviderTest.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/edm/ODataJPAEdmProviderTest.java
index 75d849b..ec44186 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/edm/ODataJPAEdmProviderTest.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/edm/ODataJPAEdmProviderTest.java
@@ -34,6 +34,7 @@
import org.apache.olingo.odata2.api.edm.provider.AssociationSet;
import org.apache.olingo.odata2.api.edm.provider.ComplexType;
import org.apache.olingo.odata2.api.edm.provider.EntityContainerInfo;
+import org.apache.olingo.odata2.api.edm.provider.EntityType;
import org.apache.olingo.odata2.api.edm.provider.Schema;
import org.apache.olingo.odata2.api.exception.ODataException;
import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPAModelException;
@@ -313,8 +314,7 @@
@Test
public void testGetEntityTypeWithBuffer() {
- HashMap<String, org.apache.olingo.odata2.api.edm.provider.EntityType> entityTypes =
- new HashMap<String, org.apache.olingo.odata2.api.edm.provider.EntityType>();
+ HashMap<String, EntityType> entityTypes = new HashMap<String, EntityType>();
org.apache.olingo.odata2.api.edm.provider.EntityType entity =
new org.apache.olingo.odata2.api.edm.provider.EntityType();
entity.setName("SalesOrderHeader");