Skip to content

Commit

Permalink
Incremental changes related to hashcod/version refactoring based on c…
Browse files Browse the repository at this point in the history
…ode review
  • Loading branch information
dima767 committed Aug 14, 2018
1 parent d0de567 commit 221133d
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ public ResponseEntity<?> unableToParseJson(Exception ex) {
@Transactional(readOnly = true)
public ResponseEntity<?> getAll() {
List<MetadataResolver> resolvers = positionOrderContainerService.getAllMetadataResolversInDefinedOrderOrUnordered();
resolvers.forEach(MetadataResolver::updateVersion);
return ResponseEntity.ok(resolvers);
}

Expand All @@ -86,7 +85,6 @@ public ResponseEntity<?> getOne(@PathVariable String resourceId) {
if (resolver == null) {
return ResponseEntity.notFound().build();
}
resolver.updateVersion();
return ResponseEntity.ok(resolver);
}

Expand All @@ -103,11 +101,9 @@ public ResponseEntity<?> create(@RequestBody MetadataResolver newResolver) {
}

newResolver.convertFiltersFromTransientRepresentationIfNecessary();
resolverRepository.save(newResolver);
MetadataResolver persistedResolver = resolverRepository.findByResourceId(newResolver.getResourceId());
MetadataResolver persistedResolver = resolverRepository.save(newResolver);
positionOrderContainerService.appendPositionOrderForNew(persistedResolver);

persistedResolver.updateVersion();
persistedResolver.convertFiltersIntoTransientRepresentationIfNecessary();
return ResponseEntity.created(getResourceUriFor(persistedResolver)).body(persistedResolver);
}
Expand All @@ -119,9 +115,9 @@ public ResponseEntity<?> update(@PathVariable String resourceId, @RequestBody Me
if (existingResolver == null) {
return ResponseEntity.notFound().build();
}
if (existingResolver.hashCode() != updatedResolver.getVersion()) {
if (existingResolver.getVersion() != updatedResolver.getVersion()) {
log.info("Metadata Resolver version conflict. Latest resolver in database version: {}. Resolver version sent from UI: {}",
existingResolver.hashCode(), updatedResolver.getVersion());
existingResolver.getVersion(), updatedResolver.getVersion());
return ResponseEntity.status(HttpStatus.CONFLICT).build();
}

Expand All @@ -133,10 +129,8 @@ public ResponseEntity<?> update(@PathVariable String resourceId, @RequestBody Me
updatedResolver.setAudId(existingResolver.getAudId());

updatedResolver.convertFiltersFromTransientRepresentationIfNecessary();
resolverRepository.save(updatedResolver);
MetadataResolver persistedResolver = resolverRepository.findByResourceId(updatedResolver.getResourceId());
MetadataResolver persistedResolver = resolverRepository.save(updatedResolver);

persistedResolver.updateVersion();
persistedResolver.convertFiltersFromTransientRepresentationIfNecessary();
return ResponseEntity.ok(persistedResolver);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers;

import com.fasterxml.jackson.annotation.JsonGetter;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
Expand Down Expand Up @@ -73,10 +74,14 @@ public class MetadataResolver extends AbstractAuditable {
private List<MetadataFilter> metadataFilters = new ArrayList<>();

@Transient
private int version;

public void updateVersion() {
this.version = hashCode();
private Integer version;

@JsonGetter("version")
public int getVersion() {
if (this.version != null && this.version != 0 ) {
return this.version;
}
return this.hashCode();
}

public void convertFiltersIntoTransientRepresentationIfNecessary() {
Expand Down

0 comments on commit 221133d

Please sign in to comment.