Skip to content

Commit

Permalink
change entity name, fields, and read simple configurations
Browse files Browse the repository at this point in the history
  • Loading branch information
vjain committed Jun 24, 2015
1 parent 5470ed9 commit 388d6cf
Show file tree
Hide file tree
Showing 10 changed files with 314 additions and 115 deletions.
20 changes: 11 additions & 9 deletions src/main/java/com/redhat/lightblue/hook/publish/PublishHook.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import com.redhat.lightblue.config.LightblueFactoryAware;
import com.redhat.lightblue.crud.InsertionRequest;
import com.redhat.lightblue.hook.publish.model.Event;
import com.redhat.lightblue.hook.publish.model.EventIdentity;
import com.redhat.lightblue.hook.publish.model.Identity;
import com.redhat.lightblue.hooks.CRUDHook;
import com.redhat.lightblue.hooks.HookDoc;
import com.redhat.lightblue.metadata.EntityMetadata;
Expand All @@ -33,7 +33,7 @@ public class PublishHook implements CRUDHook, LightblueFactoryAware {
private final Logger LOGGER = LoggerFactory.getLogger(PublishHook.class);

public static final String HOOK_NAME = "publishHook";
public static final String ENTITY_NAME = "publish";
public static final String ENTITY_NAME = "esbEvents";
public static final String ERR_MISSING_ID = HOOK_NAME + ":MissingID";

private LightblueFactory lightblueFactory;
Expand All @@ -59,16 +59,18 @@ public void processHook(EntityMetadata entityMetadata, HookConfiguration hookCon
for (HookDoc doc : docs) {
Event event = new Event();

event.setEntityName(doc.getEntityMetadata().getName());
event.setVersionText(doc.getEntityMetadata().getVersion().getValue());

event.setEntityName(publishHookConfiguration.getEntityName());

This comment has been minimized.

Copy link
@dcrissman

dcrissman Jul 20, 2015

Member

Why do we need the entityName set in the configuration, when we already have access to it on the document?

This comment has been minimized.

Copy link
@dcrissman

dcrissman Jul 20, 2015

Member

I created a PR (#22) to switch this back. We can discuss further there if needed.

event.setRootEntityName(publishHookConfiguration.getRootEntityName());
event.setEndSystem(publishHookConfiguration.getEndSystem());
event.setVersion(doc.getEntityMetadata().getVersion().getValue());

This comment has been minimized.

Copy link
@dcrissman

dcrissman Jul 20, 2015

Member

If you are going to require the entityName is specified in the hook definition, then we should do the same here.

event.setPriorityValue(Integer.parseInt(publishHookConfiguration.getDefaultPriority()));
event.setCreatedBy(HOOK_NAME);
event.setCreationDate(new Date());

event.setLastUpdatedBy(HOOK_NAME);
event.setLastUpdateDate(new Date());

event.setCRUDOperation(doc.getCRUDOperation().toString());
event.setOperation(doc.getCRUDOperation().toString());

event.setStatus("unprocessed");

Expand All @@ -86,9 +88,9 @@ else if (doc.getPostDoc() != null) {
throw Error.get(ERR_MISSING_ID, "path:" + p.toString());
}

EventIdentity identity = new EventIdentity();
identity.setFieldText(p.toString());
identity.setValueText(node.asText());
Identity identity = new Identity();
identity.setField(p.toString());
identity.setValue(node.asText());
event.addIdentities(identity);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,36 @@

import com.redhat.lightblue.metadata.HookConfiguration;

/**
*
* @author vrjain
*/
public class PublishHookConfiguration implements HookConfiguration {

private static final long serialVersionUID = -2297815875083279355L;
private final String entityName;
private final String rootEntityName;
private final String endSystem;
private final String defaultPriority;

public PublishHookConfiguration(String entityName, String rootEntityName, String endSystem, String defaultPriority) {
this.entityName = entityName;
this.rootEntityName = rootEntityName;
this.endSystem = endSystem;
this.defaultPriority = defaultPriority;
}

public String getEntityName() {
return entityName;
}
public String getRootEntityName() {
return rootEntityName;
}
public String getEndSystem() {
return endSystem;
}
public String getDefaultPriority() {
return defaultPriority;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@
import com.redhat.lightblue.metadata.parser.MetadataParser;

public class PublishHookConfigurationParser<T> implements HookConfigurationParser<T> {
public static final String PROPERTY_ENTITY_NAME = "entityName";
public static final String PROPERTY_ROOT_ENTITY_NAME = "rootEntityName";
public static final String PROPERTY_END_SYSTEM = "endSystem";
public static final String PROPERTY_DEFAULT_PRIORITY = "defaultPriority";

@Override
public String getName() {
Expand All @@ -18,14 +22,24 @@ public CRUDHook getCRUDHook() {
}

@Override
public void convert(MetadataParser<T> parser, T emptyNode, HookConfiguration object) {
// TODO Auto-generated method stub

public void convert(MetadataParser<T> p, T emptyNode, HookConfiguration object) {
if (object instanceof PublishHookConfiguration) {
PublishHookConfiguration c = (PublishHookConfiguration) object;
p.putValue(emptyNode, PROPERTY_ENTITY_NAME, c.getEntityName());
p.putValue(emptyNode, PROPERTY_ROOT_ENTITY_NAME, c.getRootEntityName());
p.putValue(emptyNode, PROPERTY_END_SYSTEM, c.getEndSystem());
p.putValue(emptyNode, PROPERTY_DEFAULT_PRIORITY, c.getDefaultPriority());
}
}

@Override
public HookConfiguration parse(String name, MetadataParser<T> parser, T node) {
return new PublishHookConfiguration();
String entityName = parser.getRequiredStringProperty(node, PROPERTY_ENTITY_NAME);
String rootEntityName = parser.getRequiredStringProperty(node, PROPERTY_ROOT_ENTITY_NAME);
String endSystem = parser.getRequiredStringProperty(node, PROPERTY_END_SYSTEM);
String defaultPriority = parser.getRequiredStringProperty(node, PROPERTY_DEFAULT_PRIORITY);

return new PublishHookConfiguration(entityName, rootEntityName, endSystem, defaultPriority);
}

}
136 changes: 100 additions & 36 deletions src/main/java/com/redhat/lightblue/hook/publish/model/Event.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,25 @@
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.redhat.lightblue.metadata.types.DateType;

public class Event {

private String entityName;
private String versionText;
private String createdBy;
private final List<Identity> identity = new ArrayList<>();
private String rootEntityName;
private final List<Identity> rootIdentity = new ArrayList<>();
private String endSystem;
private String status;
private String operation;
private String eventSource;
private Integer priorityValue;
private Date creationDate;
private String createdBy;
private Date lastUpdateDate;
private String lastUpdatedBy;
private String CRUDOperation;
private final List<EventIdentity> identity = new ArrayList<>();
private String status;
private String version;
private final List<Header> headers = new ArrayList<>();
private String notes;

public String getEntityName() {
Expand All @@ -30,31 +35,99 @@ public void setEntityName(String entityName) {
this.entityName = entityName;
}

public String getVersionText() {
return versionText;
public List<Identity> getIdentity() {
return identity;
}

public void setVersionText(String versionText) {
this.versionText = versionText;
public void addIdentities(Collection<Identity> identities) {
this.identity.addAll(identities);
}

public String getCreatedBy() {
return createdBy;
public void addIdentities(Identity... identities) {
for (Identity id : identities) {
this.identity.add(id);
}
}

public String getRootEntityName() {
return rootEntityName;
}

public void setRootEntityName(String entityName) {
this.rootEntityName = entityName;
}

public List<Identity> getRootIdentity() {
return rootIdentity;
}

public void addRootIdentities(Collection<Identity> identities) {
this.rootIdentity.addAll(identities);
}

public void addRootIdentities(Identity... identities) {
for (Identity id : identities) {
this.rootIdentity.add(id);
}
}

public String getEndSystem() {
return endSystem;
}

public void setEndSystem(String endSystem) {
this.endSystem = endSystem;
}

public String getStatus() {
return status;
}

public void setStatus(String status) {
this.status = status;
}

public String getOperation() {
return operation;
}

public void setOperation(String operation) {
this.operation = operation;
}

public String getEventSource() {
return eventSource;
}

public void setEventSource(String eventSource) {
this.eventSource = eventSource;
}

public Integer getPriorityValue() {
return priorityValue;
}

public void setPriorityValue(Integer priorityValue) {
this.priorityValue = priorityValue;
}

@JsonFormat(pattern = DateType.DATE_FORMAT_STR)
public Date getCreationDate() {
return creationDate;
}

public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}

public void setCreationDate(Date creationDate) {
this.creationDate = creationDate;
}

public String getCreatedBy() {
return createdBy;
}

public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}

@JsonFormat(pattern = DateType.DATE_FORMAT_STR)
public Date getLastUpdateDate() {
return lastUpdateDate;
Expand All @@ -72,37 +145,28 @@ public void setLastUpdatedBy(String lastUpdatedBy) {
this.lastUpdatedBy = lastUpdatedBy;
}

@JsonProperty("CRUDOperation")
public String getCRUDOperation() {
return CRUDOperation;
public String getVersion() {
return version;
}

public void setCRUDOperation(String CRUDOperation) {
this.CRUDOperation = CRUDOperation;
public void setVersion(String version) {
this.version = version;
}

public List<EventIdentity> getIdentity() {
return identity;
public List<Header> getHeaders() {
return headers;
}

public void addIdentities(Collection<EventIdentity> eventIdentities) {
identity.addAll(eventIdentities);
public void addHeaders(Collection<Header> headers) {
headers.addAll(headers);
}

public void addIdentities(EventIdentity... eventIdentities) {
for (EventIdentity id : eventIdentities) {
identity.add(id);
public void addHeaders(Header... headers) {
for (Header header : headers) {
this.headers.add(header);
}
}

public String getStatus() {
return status;
}

public void setStatus(String status) {
this.status = status;
}

public String getNotes() {
return notes;
}
Expand Down

This file was deleted.

24 changes: 24 additions & 0 deletions src/main/java/com/redhat/lightblue/hook/publish/model/Header.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.redhat.lightblue.hook.publish.model;

public class Header {

private String name;
private String value;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.redhat.lightblue.hook.publish.model;

public class Identity {

private String field;
private String value;

public String getField() {
return field;
}

public void setField(String field) {
this.field = field;
}

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}

}
Loading

0 comments on commit 388d6cf

Please sign in to comment.