-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/7909/
-----------------------------------------------------------

(Updated Nov. 9, 2012, 7:04 a.m.)


Review request for hcatalog, Alan Gates and Francis Liu.


Changes
-------

Slight modification:

1. MessageHelper::getMessage() wasn't being exercised in tests. (It was also a 
non-static function.) Fixed both.
2. Renamed the Partition-event type strings in HCatConsts. Made them more 
uniform.
3. Fixed minor indentation.


Description
-------

In 0.4.1, the NotificationListener listens for metastore operations and emits 
JMS notifications containing the entire metastore-objects 
(Database/Table/Partitions) in Java-serialized form. The assumption at the time 
was that consumers might need access to the whole object. This policy poses a 
couple of problems:
1. The notifications are verbose, since it conveys a bunch of information 
that's available from querying the metastore anyway.
2. Consumers of these JMS notifications (e.g. Oozie) would now be dependent on 
the Java class definitions of metastore-objects. If they change, Oozie would 
also need to be restarted (with updated libs), to consume the notifications.
Ideally, the notifications should convey only the minimum information that 
identifies the metastore-change unambiguously. (Everything else can be queried 
for.) They should be backward compatible. If new fields are added, existing 
consumers shouldn't break (unless they intend to consume the new fields). Also, 
the notification-format ought to be pluggable.
For the initial rework, we're proposing to use a JSON-string to represent the 
notification-content. We're also proposing a helper-class for the likes of 
Oozie to use, that converts the strings to POJOs, in a backward-compatible 
fashion.


This addresses bug HCATALOG-546.
    https://issues.apache.org/jira/browse/HCATALOG-546


Diffs (updated)
-----

  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/common/HCatConstants.java
 1406411 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/listener/NotificationListener.java
 1406411 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/AddPartitionMessage.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/CreateDatabaseMessage.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/CreateTableMessage.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/DropDatabaseMessage.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/DropPartitionMessage.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/DropTableMessage.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/HCatEventMessage.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/MessageDeserializer.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/MessageFactory.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/jms/MessageHelper.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/json/JSONAddPartitionMessage.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/json/JSONCreateDatabaseMessage.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/json/JSONCreateTableMessage.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/json/JSONDropDatabaseMessage.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/json/JSONDropPartitionMessage.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/json/JSONDropTableMessage.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/json/JSONMessageDeserializer.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/java/org/apache/hcatalog/messaging/json/JSONMessageFactory.java
 PRE-CREATION 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/test/org/apache/hcatalog/listener/TestMsgBusConnection.java
 1406411 
  
http://svn.apache.org/repos/asf/incubator/hcatalog/branches/branch-0.4/src/test/org/apache/hcatalog/listener/TestNotificationListener.java
 1406411 

Diff: https://reviews.apache.org/r/7909/diff/


Testing
-------


Thanks,

Mithun Radhakrishnan

Reply via email to