Fix integration tests. Remove Hibernate Sort annotations as a collection name can change and this breaks the Set semantics

This commit is contained in:
Tom Desair
2017-05-22 15:06:44 +02:00
committed by Tim Donohue
parent cc3342894b
commit 027a5a68f9
3 changed files with 29 additions and 19 deletions

View File

@@ -86,8 +86,7 @@ public class Collection extends DSpaceObject implements DSpaceObjectLegacySuppor
joinColumns = {@JoinColumn(name = "collection_id") }, joinColumns = {@JoinColumn(name = "collection_id") },
inverseJoinColumns = {@JoinColumn(name = "community_id") } inverseJoinColumns = {@JoinColumn(name = "community_id") }
) )
@Sort(type = SortType.COMPARATOR, comparator = NameAscendingComparator.class) private Set<Community> communities = new HashSet<>();
private Set<Community> communities = new TreeSet<>(new NameAscendingComparator());
@Transient @Transient
private transient CollectionService collectionService; private transient CollectionService collectionService;
@@ -268,7 +267,10 @@ public class Collection extends DSpaceObject implements DSpaceObjectLegacySuppor
public List<Community> getCommunities() throws SQLException public List<Community> getCommunities() throws SQLException
{ {
// We return a copy because we do not want people to add elements to this collection directly. // We return a copy because we do not want people to add elements to this collection directly.
return Arrays.asList(communities.toArray(new Community[]{})); // We return a list to maintain backwards compatibility
Community[] output = communities.toArray(new Community[]{});
Arrays.sort(output, new NameAscendingComparator());
return Arrays.asList(output);
} }
void addCommunity(Community community) { void addCommunity(Community community) {
@@ -276,7 +278,7 @@ public class Collection extends DSpaceObject implements DSpaceObjectLegacySuppor
setModified(); setModified();
} }
void removeCommunity(Community community){ void removeCommunity(Community community) {
this.communities.remove(community); this.communities.remove(community);
setModified(); setModified();
} }

View File

@@ -48,16 +48,13 @@ public class Community extends DSpaceObject implements DSpaceObjectLegacySupport
joinColumns = {@JoinColumn(name = "parent_comm_id") }, joinColumns = {@JoinColumn(name = "parent_comm_id") },
inverseJoinColumns = {@JoinColumn(name = "child_comm_id") } inverseJoinColumns = {@JoinColumn(name = "child_comm_id") }
) )
@Sort(type = SortType.COMPARATOR, comparator = NameAscendingComparator.class) private Set<Community> subCommunities = new HashSet<>();
private Set<Community> subCommunities = new TreeSet<Community>(new NameAscendingComparator());
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "subCommunities") @ManyToMany(fetch = FetchType.LAZY, mappedBy = "subCommunities")
@Sort(type = SortType.COMPARATOR, comparator = NameAscendingComparator.class) private Set<Community> parentCommunities = new HashSet<>();
private Set<Community> parentCommunities = new TreeSet<Community>(new NameAscendingComparator());;
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "communities", cascade = {CascadeType.PERSIST}) @ManyToMany(fetch = FetchType.LAZY, mappedBy = "communities", cascade = {CascadeType.PERSIST})
@Sort(type = SortType.COMPARATOR, comparator = NameAscendingComparator.class) private Set<Collection> collections = new HashSet<>();
private Set<Collection> collections =new TreeSet<Collection>(new NameAscendingComparator());;
@OneToOne @OneToOne
@JoinColumn(name = "admin") @JoinColumn(name = "admin")
@@ -148,7 +145,10 @@ public class Community extends DSpaceObject implements DSpaceObjectLegacySupport
public List<Collection> getCollections() public List<Collection> getCollections()
{ {
// We return a copy because we do not want people to add elements to this collection directly. // We return a copy because we do not want people to add elements to this collection directly.
return Arrays.asList(collections.toArray(new Collection[]{})); // We return a list to maintain backwards compatibility
Collection[] output = collections.toArray(new Collection[]{});
Arrays.sort(output, new NameAscendingComparator());
return Arrays.asList(output);
} }
void addCollection(Collection collection) void addCollection(Collection collection)
@@ -171,7 +171,10 @@ public class Community extends DSpaceObject implements DSpaceObjectLegacySupport
public List<Community> getSubcommunities() public List<Community> getSubcommunities()
{ {
// We return a copy because we do not want people to add elements to this collection directly. // We return a copy because we do not want people to add elements to this collection directly.
return Arrays.asList(subCommunities.toArray(new Community[]{})); // We return a list to maintain backwards compatibility
Community[] output = subCommunities.toArray(new Community[]{});
Arrays.sort(output, new NameAscendingComparator());
return Arrays.asList(output);
} }
/** /**
@@ -183,7 +186,10 @@ public class Community extends DSpaceObject implements DSpaceObjectLegacySupport
public List<Community> getParentCommunities() public List<Community> getParentCommunities()
{ {
// We return a copy because we do not want people to add elements to this collection directly. // We return a copy because we do not want people to add elements to this collection directly.
return Arrays.asList(parentCommunities.toArray(new Community[]{})); // We return a list to maintain backwards compatibility
Community[] output = parentCommunities.toArray(new Community[]{});
Arrays.sort(output, new NameAscendingComparator());
return Arrays.asList(output);
} }
void addParentCommunity(Community parentCommunity) { void addParentCommunity(Community parentCommunity) {
@@ -191,13 +197,13 @@ public class Community extends DSpaceObject implements DSpaceObjectLegacySupport
} }
void clearParentCommunities(){ void clearParentCommunities(){
this.parentCommunities.clear(); parentCommunities.clear();
this.parentCommunities = null;
} }
public void removeParentCommunity(Community parentCommunity) public void removeParentCommunity(Community parentCommunity)
{ {
this.parentCommunities.remove(parentCommunity); parentCommunities.remove(parentCommunity);
setModified();
} }
/** /**

View File

@@ -79,8 +79,7 @@ public class Item extends DSpaceObject implements DSpaceObjectLegacySupport
joinColumns = {@JoinColumn(name = "item_id") }, joinColumns = {@JoinColumn(name = "item_id") },
inverseJoinColumns = {@JoinColumn(name = "collection_id") } inverseJoinColumns = {@JoinColumn(name = "collection_id") }
) )
@Sort(type = SortType.COMPARATOR, comparator = NameAscendingComparator.class) private final Set<Collection> collections = new HashSet<>();
private final Set<Collection> collections = new TreeSet<>(new NameAscendingComparator());
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "items") @ManyToMany(fetch = FetchType.LAZY, mappedBy = "items")
private final List<Bundle> bundles = new ArrayList<>(); private final List<Bundle> bundles = new ArrayList<>();
@@ -233,7 +232,10 @@ public class Item extends DSpaceObject implements DSpaceObjectLegacySupport
public List<Collection> getCollections() public List<Collection> getCollections()
{ {
// We return a copy because we do not want people to add elements to this collection directly. // We return a copy because we do not want people to add elements to this collection directly.
return Arrays.asList(collections.toArray(new Collection[]{})); // We return a list to maintain backwards compatibility
Collection[] output = collections.toArray(new Collection[]{});
Arrays.sort(output, new NameAscendingComparator());
return Arrays.asList(output);
} }
void addCollection(Collection collection) void addCollection(Collection collection)