trafodion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dbirds...@apache.org
Subject [18/50] [abbrv] incubator-trafodion git commit: update
Date Thu, 31 Mar 2016 22:16:29 GMT
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/core/sql/sqlcomp/PrivMgrMD.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/PrivMgrMD.cpp b/core/sql/sqlcomp/PrivMgrMD.cpp
index 811a71b..df0ca1c 100644
--- a/core/sql/sqlcomp/PrivMgrMD.cpp
+++ b/core/sql/sqlcomp/PrivMgrMD.cpp
@@ -159,24 +159,20 @@ PrivStatus PrivMgrMDAdmin::initializeComponentPrivileges()
    log(__FILE__, "initializing component privileges", -1);
    PrivStatus privStatus = STATUS_GOOD;
 
-   // First, let's start with a clean slate.  Drop all components as well as 
-   // their respective operations and and any privileges granted.  This should be  
-   // a NOP unless PrivMgr metadata was damaged and reintialization is occurring.
-
-   PrivMgrComponents components(metadataLocation_,pDiags_);
-   components.dropAll();
-   
-   // Next, register the component.
-
-   privStatus = components.registerComponentInternal(SQL_OPERATION_NAME,
-                                                     SQL_OPERATIONS_COMPONENT_UID,
-                                                     true,"Component for SQL operations");
-                                             
-   if (privStatus != STATUS_GOOD)
-   {
+  // First register the component.
+  PrivMgrComponents components(metadataLocation_,pDiags_);
+  bool componentExists = (components.exists(SQL_OPERATION_NAME));
+  if (!componentExists)
+  {
+    privStatus = components.registerComponentInternal(SQL_OPERATION_NAME,
+                                                      SQL_OPERATIONS_COMPONENT_UID,
+                                                      true,"Component for SQL operations");
+    if (privStatus != STATUS_GOOD)
+    {
       log(__FILE__, "ERROR: unable to register SQL_OPERATIONS component", -1);
-      return STATUS_ERROR;  
-   }
+      return STATUS_ERROR;
+    }
+  }
       
 // Component is registered, now create all the operations associated with
 // the component.  A grant from the system to the grantee (DB__ROOT) will
@@ -197,7 +193,8 @@ std::string DB__ROOTName(ComUser::getRootUserName());
                                                                PrivMgr::getSQLOperationName(operation),
                                                                codePtr,true,
                                                                PrivMgr::getSQLOperationDescription(operation),
-                                                               DB__ROOTID,DB__ROOTName,-1);
+                                                               DB__ROOTID,DB__ROOTName,-1,
+                                                               componentExists);
                                                        
       if (privStatus == STATUS_GOOD)
          operationCodes.push_back(codePtr); 
@@ -221,7 +218,8 @@ PrivMgrComponentPrivileges componentPrivileges(metadataLocation_,pDiags_);
                                                            ComUser::getRootUserID(),
                                                            ComUser::getRootUserName(),
                                                            ROOT_ROLE_ID,
-                                                           DB__ROOTROLE,-1);
+                                                           DB__ROOTROLE,-1,
+                                                           componentExists);
                                                            
    if (privStatus != STATUS_GOOD)
    {
@@ -241,7 +239,8 @@ std::vector<std::string> CSOperationCodes;
                                                            ComUser::getRootUserID(),
                                                            ComUser::getRootUserName(),
                                                            PUBLIC_USER,
-                                                           PUBLIC_AUTH_NAME,0);
+                                                           PUBLIC_AUTH_NAME,0,
+                                                           componentExists);
                                       
    if (privStatus != STATUS_GOOD)
    {
@@ -342,7 +341,6 @@ PrivStatus PrivMgrMDAdmin::initializeMetadata (
   //     If doesn't need upgrading - done
   //     else - upgrade table 
   bool populateObjectPrivs = false;
-  bool populateRoleGrants = false;
 
   try
   {
@@ -385,8 +383,6 @@ PrivStatus PrivMgrMDAdmin::initializeMetadata (
 
         if (tableDefinition.tableName == PRIVMGR_OBJECT_PRIVILEGES)
           populateObjectPrivs = true;
-        if (tableDefinition.tableName == PRIVMGR_ROLE_USAGE)
-          populateRoleGrants = true;
       }
 
       // upgrade tables
@@ -406,7 +402,7 @@ PrivStatus PrivMgrMDAdmin::initializeMetadata (
     // populate metadata tables
     PrivStatus privStatus = updatePrivMgrMetadata
       (objectsLocation,authsLocation,
-       populateObjectPrivs,populateRoleGrants);
+       populateObjectPrivs);
 
     // if error occurs, drop tables already created
     if (privStatus == STATUS_ERROR)
@@ -560,13 +556,28 @@ PrivStatus PrivMgrMDAdmin::dropMetadata (
     cliInterface.retrieveSQLDiagnostics(pDiags_);
     retcode = STATUS_ERROR;
   }
+
   CmpSeabaseDDLrole role;
-    
-  role.dropStandardRole(DB__ROOTROLE);
-  role.dropStandardRole(DB__HIVEROLE);
-  role.dropStandardRole(DB__HBASEROLE);
-  log(__FILE__, "dropped roles DB__ROOTROLE, DB_HIVEROLE, DB_HBASEROLE", -1);
-   
+  std::vector<std::string> rolesCreated;
+  int32_t numberRoles = sizeof(systemRoles)/sizeof(SystemRolesStruct);
+  for (int32_t i = 0; i < numberRoles; i++)
+  {
+    const SystemRolesStruct &roleDefinition = systemRoles[i];
+
+    // special Auth includes roles that are not registered in the metadata
+    if (roleDefinition.isSpecialAuth)
+      continue;
+
+    role.dropStandardRole(roleDefinition.roleName);
+  }
+
+  int32_t actualSize = 0;
+  char buf[500];
+  ComUser::getRoleList(buf, actualSize, 500);
+  buf[actualSize] = 0;
+  traceMsg = "dropped roles: ";
+  traceMsg + buf;
+  log(__FILE__, traceMsg,  -1);
 
 //TODO: should notify QI
   log (__FILE__, "*** drop authorization completed ***", -1);
@@ -1220,7 +1231,6 @@ int32_t diagsMark = pDiags_->mark();
   return true;
 }
 
-
 // ----------------------------------------------------------------------------
 // method: compareTableDefs
 //
@@ -1471,8 +1481,7 @@ static int32_t renameTable (
 PrivStatus PrivMgrMDAdmin::updatePrivMgrMetadata(
    const std::string &objectsLocation,
    const std::string &authsLocation,
-   const bool shouldPopulateObjectPrivs,
-   const bool shouldPopulateRoleGrants)
+   const bool shouldPopulateObjectPrivs)
    
 {
    std::string traceMsg;
@@ -1486,27 +1495,57 @@ PrivStatus PrivMgrMDAdmin::updatePrivMgrMetadata(
          return STATUS_ERROR;
    }
    
-    
+   // Create any roles.  If this is an upgrade operation, some roles may
+   // already exist, just create any new roles. If this is an initialize
+   // operation, than all system roles are created.
    CmpSeabaseDDLrole role;
-    
-   role.createStandardRole(DB__ROOTROLE,ROOT_ROLE_ID);
-   role.createStandardRole(DB__HIVEROLE,HIVE_ROLE_ID);
-   role.createStandardRole(DB__HBASEROLE,HBASE_ROLE_ID);
-   log(__FILE__, "created roles DB__ROOTROLE, DB__HIVEROLE, and DB__HBASEROLE", -1);
+   std::vector<std::string> rolesCreated;
+   int32_t numberRoles = sizeof(systemRoles)/sizeof(SystemRolesStruct);
+   for (int32_t i = 0; i < numberRoles; i++)
+   {
+     const SystemRolesStruct &roleDefinition = systemRoles[i];
+
+     // special Auth includes roles that are not registered in the metadata
+     if (roleDefinition.isSpecialAuth)
+       continue;
+
+     // returns true is role was created, false if it already existed
+     if (role.createStandardRole(roleDefinition.roleName, roleDefinition.roleID))
+       rolesCreated.push_back(roleDefinition.roleName);
+   }
+
+   // Report the number roles created
+   traceMsg = "created roles ";
+   char buf[MAX_AUTHNAME_LEN + 5];
+   char sep = ' ';
+   for (size_t i = 0; i < rolesCreated.size(); i++)
+   {
+      sprintf(buf, "%c'%s' ", sep, rolesCreated[i].c_str());
+      traceMsg.append(buf);
+      sep = ',';
+   }
+   log(__FILE__, traceMsg, -1);
    
-   if (shouldPopulateRoleGrants)
+   if (rolesCreated.size() > 0)
    {
       PrivMgrRoles role(" ",metadataLocation_,pDiags_);
                         
-      privStatus = role.populateCreatorGrants(authsLocation);
+      privStatus = role.populateCreatorGrants(authsLocation, rolesCreated);
       if (privStatus != STATUS_GOOD)
          return STATUS_ERROR;
    }
+ 
+   // If someone initializes authorization, creates some roles, then drops 
+   // authorization, these roles exist in th system metadata (e.g. AUTHS table)
+   // but all usages are lost, including the initial creator grants.
+   // See if there are any roles that exist in AUTHS but do not have creator 
+   // grants - probably should add creator grants.
+   // TBD
     
-      privStatus = initializeComponentPrivileges();
-   
-      if (privStatus != STATUS_GOOD)
-         return STATUS_ERROR;
+   privStatus = initializeComponentPrivileges();
+  
+   if (privStatus != STATUS_GOOD)
+      return STATUS_ERROR;
       
    // When new components and component operations are added
    // add an upgrade procedure

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/core/sql/sqlcomp/PrivMgrMD.h
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/PrivMgrMD.h b/core/sql/sqlcomp/PrivMgrMD.h
index a4c3f5e..c52a635 100644
--- a/core/sql/sqlcomp/PrivMgrMD.h
+++ b/core/sql/sqlcomp/PrivMgrMD.h
@@ -301,8 +301,7 @@ class PrivMgrMDAdmin : public PrivMgr
     PrivStatus updatePrivMgrMetadata(
        const std::string &objectsLocation,
        const std::string &authsLocation,
-       const bool shouldPopulateObjectPrivs,
-       const bool shouldPopulateRoleGrants);
+       const bool shouldPopulateObjectPrivs);
 
     PrivStatus upgradeMetadata (
       const PrivMgrTableStruct &tableDefinition,

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/core/sql/sqlcomp/PrivMgrRoles.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/PrivMgrRoles.cpp b/core/sql/sqlcomp/PrivMgrRoles.cpp
index 9618f95..08489a1 100644
--- a/core/sql/sqlcomp/PrivMgrRoles.cpp
+++ b/core/sql/sqlcomp/PrivMgrRoles.cpp
@@ -40,6 +40,7 @@
 // CmpCommon.h contains STMTHEAP declaration
 #include "CmpCommon.h"
 #include "CmpDDLCatErrorCodes.h"
+#include "NAUserId.h"
 #include "ComUser.h"
 #include "ComSecurityKey.h"
 
@@ -119,7 +120,9 @@ public:
    
    virtual PrivStatus insert(const PrivMgrMDRow &row);
    
-   PrivStatus insertSelect(const std::string & authsLocation); 
+   PrivStatus insertSelect(
+      const std::string & authsLocation,
+      const std::string & inClause); 
    
    PrivStatus selectAllWhere(
       const std::string & whereClause,
@@ -1296,7 +1299,9 @@ PrivStatus privStatus = myTable.selectCountWhere(whereClause,rowCount);
 // *              the diags area.                                              *
 // *                                                                           *
 // *****************************************************************************
-PrivStatus PrivMgrRoles::populateCreatorGrants(const std::string & authsLocation)
+PrivStatus PrivMgrRoles::populateCreatorGrants(
+  const std::string & authsLocation,
+  const std::vector<std::string> &rolesToAdd)
 
 {
 
@@ -1305,22 +1310,28 @@ PrivStatus PrivMgrRoles::populateCreatorGrants(const std::string & authsLocation
 
    MyTable &myTable = static_cast<MyTable &>(myTable_);
 
-   // See if the table is empty before inserting any rows
+   int32_t numberRoles = sizeof(systemRoles)/sizeof(SystemRolesStruct) - 
+                         NUMBER_SPECIAL_SYSTEM_ROLES;
+
+   // Calculate the number of roles that have already been created
+   int64_t expectedRows = numberRoles - rolesToAdd.size();
 
    std::string whereClause;
 
-   int64_t expectedRows = 0;
+   int64_t foundRows = 0;
 
-   PrivStatus privStatus = myTable.selectCountWhere(whereClause,expectedRows);
+   PrivStatus privStatus = myTable.selectCountWhere(whereClause,foundRows);
 
    if (privStatus == STATUS_ERROR)
       return privStatus;
 
-   if (expectedRows != 0)
+   if (foundRows != expectedRows)
    {
       std::string message ("Found ");
+      message += to_string((long long int)foundRows);
+      message += " rows in ROLE_USAGE table, expecting ";
       message += to_string((long long int)expectedRows);
-      message += " rows in ROLE_USAGE table, expecting 0 rows";
+      message += " rows";
       traceMsg = "ERROR: ";
       traceMsg += message;
       PrivMgr::log(__FILE__, message, -1);
@@ -1329,7 +1340,19 @@ PrivStatus PrivMgrRoles::populateCreatorGrants(const std::string & authsLocation
    }
 
    // insert the rows
-   privStatus = myTable.insertSelect(authsLocation);
+   std::string inClause (" auth_db_name in (");
+   std::string sep = "";
+   for (size_t i = 0; i < rolesToAdd.size(); i++)
+   {
+     inClause.append(sep);
+     inClause.append ("'");
+     inClause.append(rolesToAdd[i]);
+     inClause.append ("'");
+     sep = ",";
+   }
+   inClause += ")";
+
+   privStatus = myTable.insertSelect(authsLocation, inClause);
 
    if (privStatus == STATUS_ERROR)
    {
@@ -1340,7 +1363,7 @@ PrivStatus PrivMgrRoles::populateCreatorGrants(const std::string & authsLocation
       return privStatus;
    }
   
-   // make sure that the number rows inserted match the expected.
+   // make sure that the number rows inserted match the total.
    // get the number of rows inserted
    int64_t insertedRows;
 
@@ -1352,7 +1375,17 @@ PrivStatus PrivMgrRoles::populateCreatorGrants(const std::string & authsLocation
    // get number rows expected
    std::string selectStmt ("SELECT COUNT(*) FROM  ");
 
-   whereClause = " where AUTH_TYPE = 'R'";
+   int32_t actualSize = 0;
+   char buf[500];
+   if (ComUser::getRoleList(buf, actualSize, 500))
+   {
+      PRIVMGR_INTERNAL_ERROR("internal error getting role list");
+      return STATUS_ERROR;
+   }
+   whereClause = " where AUTH_TYPE = 'R' AND AUTH_DB_NAME IN (";
+   whereClause += buf;
+   whereClause += ")";
+
    selectStmt += authsLocation;
    selectStmt += " ";
    selectStmt += whereClause;
@@ -1371,9 +1404,9 @@ PrivStatus PrivMgrRoles::populateCreatorGrants(const std::string & authsLocation
    }
 
    // Check to see if rows inserted match expected rows
-   if (expectedRows != insertedRows)
+   if (numberRoles != insertedRows)
    {
-      std::string message ("Expected to insert ");
+      std::string message ("Expected to find ");
       message += to_string((long long int)expectedRows);
       message += " rows into ROLE_USAGE table, instead ";
       message += to_string((long long int)insertedRows);
@@ -1885,7 +1918,9 @@ char grantorAuthClass[3] = {0};
 // *           *: Insert failed. A CLI error is put into the diags area.       *
 // *                                                                           *
 // *****************************************************************************
-PrivStatus MyTable::insertSelect(const std::string & authsLocation)
+PrivStatus MyTable::insertSelect(
+  const std::string & authsLocation,
+  const std::string & inClause)
 
 {
 
@@ -1894,9 +1929,9 @@ char insertStatement[2000];
    sprintf(insertStatement, "INSERT INTO %s SELECT A1.AUTH_ID, A1.AUTH_DB_NAME, A1.AUTH_CREATOR,"
            "(SELECT AUTH_DB_NAME FROM %s A2 WHERE A2.auth_ID = A1.AUTH_CREATOR)," 
            "(SELECT AUTH_TYPE FROM %s A3 WHERE A3.auth_ID = A1.AUTH_CREATOR),"
-           "-2,'_SYSTEM','%c',-1 FROM %s A1 WHERE A1.AUTH_TYPE = 'R'",
+           "-2,'_SYSTEM','%c',-1 FROM %s A1 WHERE A1.AUTH_TYPE = 'R' AND %s",
            tableName_.c_str(),authsLocation.c_str(),authsLocation.c_str(), 
-           'U',authsLocation.c_str()); 
+           'U',authsLocation.c_str(), inClause.c_str()); 
                
    return CLIImmediate(insertStatement);
                   

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/core/sql/sqlcomp/PrivMgrRoles.h
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/PrivMgrRoles.h b/core/sql/sqlcomp/PrivMgrRoles.h
index eb8000b..052ce6e 100644
--- a/core/sql/sqlcomp/PrivMgrRoles.h
+++ b/core/sql/sqlcomp/PrivMgrRoles.h
@@ -93,7 +93,9 @@ public:
       
    bool isUserGrantedAnyRole(const int32_t authID);
    
-   PrivStatus populateCreatorGrants(const std::string &authsLocation);      
+   PrivStatus populateCreatorGrants(
+      const std::string &authsLocation,
+      const std::vector<std::string> &rolesToAdd);      
      
    PrivStatus revokeRole(
       const std::vector<int32_t> & roleIDs,

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/core/sql/sqlcomp/nadefaults.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/nadefaults.cpp b/core/sql/sqlcomp/nadefaults.cpp
index 37d740f..5d3d08b 100644
--- a/core/sql/sqlcomp/nadefaults.cpp
+++ b/core/sql/sqlcomp/nadefaults.cpp
@@ -2073,12 +2073,16 @@ SDDkwd__(ISO_MAPPING,           (char *)SQLCHARSETSTRING_ISO88591),
   // precision but degraded performance.
   SDDkwd__(LIMIT_MAX_NUMERIC_PRECISION,		"SYSTEM"),
 
+ // Size in bytes  used to perform garbage collection  to lob data file 
+  // default size is 5GB   . Change to adjust disk usage. 
+  DDint__(LOB_GC_LIMIT_SIZE,            "5000"),
+  
   DDint__(LOB_HDFS_PORT,                       "0"),
   DD_____(LOB_HDFS_SERVER,                 "default"), 
-   
+ 
    // Size of memoryin bytes  used to perform I/O to lob data file 
   // default size is 512MB   . Change to adjust memory usage. 
-  DDint__(LOB_MAX_CHUNK_MEM_SIZE,            "536870912"), 
+  DDint__(LOB_MAX_CHUNK_MEM_SIZE,            "512"), 
   // default size is 10 G  (10000 M)
   DDint__(LOB_MAX_SIZE,                         "10000"),
   // default size is 32000. Change this to extract more data into memory.
@@ -3295,28 +3299,30 @@ XDDkwd__(SUBQUERY_UNNESTING,			"ON"),
   DDint__(TEST_PASS_ONE_ASSERT_TASK_NUMBER,	"-1"),
   DDint__(TEST_PASS_TWO_ASSERT_TASK_NUMBER,	"-1"),
 
- XDDintN2(TIMEOUT,				"6000"),
+  XDDintN2(TIMEOUT,				"6000"),
  
- DDflt0_(TMUDF_CARDINALITY_FACTOR, "1"),
- DDflt0_(TMUDF_LEAF_CARDINALITY, "1"),
+  DDflt0_(TMUDF_CARDINALITY_FACTOR, "1"),
+  DDflt0_(TMUDF_LEAF_CARDINALITY, "1"),
 
   DDkwd__(TOTAL_RESOURCE_COSTING,               "ON"),
-
+ 
   DDint__(TRAF_ALIGNED_FORMAT_ADD_COL_METHOD,	"2"),
-
- DDkwd__(TRAF_ALIGNED_ROW_FORMAT,                 "OFF"),   
-
+ 
+  DDkwd__(TRAF_ALIGNED_ROW_FORMAT,                 "OFF"),   
+ 
   DDkwd__(TRAF_ALLOW_ESP_COLOCATION,             "OFF"),   
+ 
+  DDkwd__(TRAF_ALLOW_RESERVED_COLNAMES,          "OFF"),   
+ 
+  DDkwd__(TRAF_ALLOW_SELF_REF_CONSTR,                 "ON"),   
 
- DDkwd__(TRAF_ALLOW_SELF_REF_CONSTR,                 "ON"),   
-
- DDkwd__(TRAF_ALTER_COL_ATTRS,                 "ON"),   
+  DDkwd__(TRAF_ALTER_COL_ATTRS,                 "ON"),   
 
- DDkwd__(TRAF_BLOB_AS_VARCHAR,                 "ON"), //set to OFF to enable Lobs support  
+  DDkwd__(TRAF_BLOB_AS_VARCHAR,                 "ON"), //set to OFF to enable Lobs support  
 
- DDkwd__(TRAF_BOOTSTRAP_MD_MODE,                            "OFF"),   
+  DDkwd__(TRAF_BOOTSTRAP_MD_MODE,                            "OFF"),   
 
- DDkwd__(TRAF_CLOB_AS_VARCHAR,                 "ON"), //set to OFF to enable Lobs support  
+  DDkwd__(TRAF_CLOB_AS_VARCHAR,                 "ON"), //set to OFF to enable Lobs support  
 
   DDkwd__(TRAF_COL_LENGTH_IS_CHAR,                 "ON"),   
 
@@ -6983,6 +6989,10 @@ DefaultToken NADefaults::token(Int32 attrEnum,
 	isValid = TRUE;
       break;
 
+    case LOB_GC_LIMIT_SIZE:
+      if (tok >= 0 )
+        isValid=TRUE;
+
     case TRAF_TRANS_TYPE:
       if (tok  == DF_MVCC || tok == DF_SSCC)
         isValid = TRUE;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/core/sql/ustat/hs_cli.cpp
----------------------------------------------------------------------
diff --git a/core/sql/ustat/hs_cli.cpp b/core/sql/ustat/hs_cli.cpp
index 7af4584..de94da3 100644
--- a/core/sql/ustat/hs_cli.cpp
+++ b/core/sql/ustat/hs_cli.cpp
@@ -4762,7 +4762,7 @@ Lng32 HSinsertEmptyHist::insert()
 #else // NA_USTAT_USE_STATIC not defined, use dynamic query
     char sbuf[25];
     NAString qry = "SELECT HISTOGRAM_ID, COL_POSITION, COLUMN_NUMBER, COLCOUNT, "
-                          "cast(READ_TIME as char(19)), REASON "
+                          "cast(READ_TIME as char(19) character set iso88591), REASON "
                    "FROM ";
     qry.append(histTable_);
     qry.append(    " WHERE TABLE_UID = ");
@@ -5479,7 +5479,7 @@ static char ppStmtText[] =
 "          when LEFT_CHILD_SEQ_NUM is null then"
 "            '.  '"
 "          else"
-"            cast(cast(LEFT_CHILD_SEQ_NUM as numeric(3)) as char(3))"
+"            cast(cast(LEFT_CHILD_SEQ_NUM as numeric(3)) as char(3) character set iso88591)"
 "        end"
 ""
 // RIGHT CHILD
@@ -5487,11 +5487,11 @@ static char ppStmtText[] =
 "          when RIGHT_CHILD_SEQ_NUM is null then"
 "            '.  '"
 "          else"
-"            cast(cast(RIGHT_CHILD_SEQ_NUM as numeric(3)) as char(3))"
+"            cast(cast(RIGHT_CHILD_SEQ_NUM as numeric(3)) as char(3) character set iso88591)"
 "        end"
 ""
 // SEQUENCE NUMBER
-"      , cast(cast(SEQ_NUM as numeric(3)) as char(3))"
+"      , cast(cast(SEQ_NUM as numeric(3)) as char(3) character set iso88591)"
 ""
 // OPERATOR
 "      , cast(substring(lower(OPERATOR) from 1 for 20) as char(20))"
@@ -5722,13 +5722,13 @@ static char ppStmtText[] =
 "            from 1 for 20) as char(20))"
 ""
 // CARDINALITY
-"      , CAST(CARDINALITY AS CHAR(11))"
+"      , CAST(CARDINALITY AS CHAR(11) character set iso88591)"
 ""
 // OPERATOR COST
-"      , CAST(OPERATOR_COST AS CHAR(11))"
+"      , CAST(OPERATOR_COST AS CHAR(11) character set iso88591)"
 ""
 // TOTAL COST
-"      , CAST(TOTAL_COST AS CHAR(11))"
+"      , CAST(TOTAL_COST AS CHAR(11) character set iso88591)"
 ""
 "        FROM TABLE(EXPLAIN(NULL, '";
 
@@ -5751,6 +5751,8 @@ Lng32 printPlan(SQLSTMT_ID *stmt)
 
     HSLogMan *LM = HSLogMan::Instance();
 
+    HSFuncExecQuery("CQD DEFAULT_CHARSET 'ISO88591'"); // to avoid buffer overruns in row
+
     NAString ppStmtStr = ppStmtText;
     ppStmtStr.append((char *)stmt->identifier).append("')) ORDER BY SEQ_NUM DESC;");
 
@@ -5794,11 +5796,15 @@ Lng32 printPlan(SQLSTMT_ID *stmt)
             LM->Log(LM->msg);
           }
         else if (retcode != 100)
-          HSLogError(retcode);
+          {
+            HSFuncExecQuery("CQD DEFAULT_CHARSET RESET");
+            HSLogError(retcode);
+          }
       }
 
     // ppStmtId will be closed by ~HSCursor if closeStmtNeeded_ is set.
 
+    HSFuncExecQuery("CQD DEFAULT_CHARSET RESET");
     return retcode;
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/core/sql/ustat/hs_globals.cpp
----------------------------------------------------------------------
diff --git a/core/sql/ustat/hs_globals.cpp b/core/sql/ustat/hs_globals.cpp
index ff984e1..c323865 100644
--- a/core/sql/ustat/hs_globals.cpp
+++ b/core/sql/ustat/hs_globals.cpp
@@ -7743,7 +7743,7 @@ Lng32 HSGlobalsClass::groupListFromTable(HSColGroupStruct*& groupList,
 #else // NA_USTAT_USE_STATIC not defined, use dynamic query
     char sbuf[25];
     NAString qry = "SELECT HISTOGRAM_ID, COL_POSITION, COLUMN_NUMBER, COLCOUNT, "
-                          "cast(READ_TIME as char(19)), REASON "
+                          "cast(READ_TIME as char(19) character set iso88591), REASON "
                    "FROM ";
     qry.append(hstogram_table->data());
     qry.append(    " WHERE TABLE_UID = ");

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/Makefile
----------------------------------------------------------------------
diff --git a/dcs/Makefile b/dcs/Makefile
index 715e6ed..9245415 100644
--- a/dcs/Makefile
+++ b/dcs/Makefile
@@ -52,6 +52,8 @@ LICENSE: ../licenses/LICENSE-dcs
 
 NOTICE: ../NOTICE
 	cp -f $? $@
+	# Add notice file from jython 2.5.3
+	cat ../licenses/not-dcs-bin >> $@
 
 clean:
 	-$(MAVEN) clean | grep ERROR

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/bin/dcs
----------------------------------------------------------------------
diff --git a/dcs/bin/dcs b/dcs/bin/dcs
index 5c506fe..84246d0 100755
--- a/dcs/bin/dcs
+++ b/dcs/bin/dcs
@@ -21,26 +21,6 @@
 #
 #* @@@ END COPYRIGHT @@@
 # */
-#/**
-# * Copyright 2007 The Apache Software Foundation
-# *
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements.  See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership.  The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License.  You may obtain a copy of the License at
-# *
-# *     http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-# */
-# 
 # The dcs command script.  
 #
 # Environment Variables:

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/bin/dcs-config.sh
----------------------------------------------------------------------
diff --git a/dcs/bin/dcs-config.sh b/dcs/bin/dcs-config.sh
index 023521a..aec9e57 100755
--- a/dcs/bin/dcs-config.sh
+++ b/dcs/bin/dcs-config.sh
@@ -21,27 +21,6 @@
 # # @@@ END COPYRIGHT @@@
 # */
 #
-#/**
-# * Copyright 2007 The Apache Software Foundation
-# *
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements.  See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership.  The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License.  You may obtain a copy of the License at
-# *
-# *     http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-# */
-
-#
 # should not be executable directly
 # also should not be passed any arguments, since we need original $*
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/bin/dcs-daemon.sh
----------------------------------------------------------------------
diff --git a/dcs/bin/dcs-daemon.sh b/dcs/bin/dcs-daemon.sh
index 0061aec..530d356 100755
--- a/dcs/bin/dcs-daemon.sh
+++ b/dcs/bin/dcs-daemon.sh
@@ -21,27 +21,6 @@
 #
 # @@@ END COPYRIGHT @@@
 # */
-#
-#/**
-# * Copyright 2007 The Apache Software Foundation
-# *
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements.  See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership.  The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License.  You may obtain a copy of the License at
-# *
-# *     http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-# */
-# 
 # Runs a DCS command as a daemon.
 #
 # Environment Variables

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/bin/dcs-daemons.sh
----------------------------------------------------------------------
diff --git a/dcs/bin/dcs-daemons.sh b/dcs/bin/dcs-daemons.sh
index 09fc671..1af1cad 100755
--- a/dcs/bin/dcs-daemons.sh
+++ b/dcs/bin/dcs-daemons.sh
@@ -22,26 +22,6 @@
 # @@@ END COPYRIGHT @@@
 # */
 #
-#/**
-# * Copyright 2007 The Apache Software Foundation
-# *
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements.  See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership.  The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License.  You may obtain a copy of the License at
-# *
-# *     http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-# */
-# 
 
 usage="Usage: dcs-daemons.sh [--config <dcs-confdir>] \
  [--hosts serversfile] [start|stop] command args..."

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/pom.xml
----------------------------------------------------------------------
diff --git a/dcs/pom.xml b/dcs/pom.xml
index 1fb2938..e9b6d11 100644
--- a/dcs/pom.xml
+++ b/dcs/pom.xml
@@ -86,9 +86,9 @@
       </releases>
     </repository>
     <repository>
-      <id>codehaus</id>
-      <name>Codehaus Public</name>
-      <url>http://repository.codehaus.org/</url>
+      <id>codehaus-mule</id>
+      <name>Codehaus Mule Public</name>
+      <url>https://repository-master.mulesoft.org/nexus/content/groups/public/</url>
       <snapshots>
         <enabled>false</enabled>
       </snapshots>
@@ -182,13 +182,6 @@
                              outputdir="${generated.sources}/java"
                              package="org.trafodion.dcs.generated.server"
                              webxml="${build.webapps}/server/WEB-INF/web.xml"/>
-<!-- 
-                <mkdir dir="${build.webapps}/rest/WEB-INF"/>
-                <jspcompiler uriroot="${src.webapps}/rest"
-                             outputdir="${generated.sources}/java"
-                             package="org.trafodion.dcs.generated.rest"
-                             webxml="${build.webapps}/rest/WEB-INF/web.xml"/>
--->
               <exec executable="sh">
                   <arg line="${basedir}/src/saveVersion.sh ${project.version} ${generated.sources}/java"/>
                 </exec>
@@ -498,7 +491,7 @@
   	<compileSource>1.6</compileSource>
     
   	<!-- Dependencies -->
-    <hadoop.version>2.6.0</hadoop.version>
+        <hadoop.version>${env.HADOOP_DEP_VER}</hadoop.version>
   	<commons-cli.version>1.2</commons-cli.version>
   	<commons-codec.version>1.4</commons-codec.version>
   	<commons-io.version>2.1</commons-io.version>
@@ -508,7 +501,7 @@
   	<commons-configuration.version>1.6</commons-configuration.version>
   	<metrics-core.version>2.1.2</metrics-core.version>
   	<guava.version>11.0.2</guava.version>
-  	<jackson.version>1.8.8</jackson.version>
+  	<jackson.version>1.9.13</jackson.version>
   	<jasper.version>5.5.23</jasper.version>
   	<jamon.runtime.version>2.4.0</jamon.runtime.version>
   	<jaxb-api.version>2.1</jaxb-api.version>
@@ -516,7 +509,7 @@
   	<jetty.jspapi.version>6.1.14</jetty.jspapi.version>
   	<jersey.version>1.8</jersey.version>
   	<junit.version>4.10</junit.version>
-  	<slf4j.version>1.4.3</slf4j.version>
+  	<slf4j.version>1.4.3</slf4j.version> 
   	<log4j.version>1.2.16</log4j.version>
   	<zookeeper.version>3.4.5</zookeeper.version>
   	<jython-standalone.version>2.5.3</jython-standalone.version>
@@ -566,16 +559,6 @@
     </dependency>
     
     <!-- General dependencies -->
-  	<dependency>
-      <groupId>com.yammer.metrics</groupId>
-      <artifactId>metrics-core</artifactId>
-      <version>${metrics-core.version}</version>
-  	</dependency>
-  	<dependency>
-      <groupId>com.google.guava</groupId>
-      <artifactId>guava</artifactId>
-      <version>${guava.version}</version>
-  	</dependency>
     <dependency>
 	  <groupId>org.python</groupId>
 	  <artifactId>jython-standalone</artifactId>
@@ -587,26 +570,11 @@
       <version>${commons-cli.version}</version>
   	</dependency>
     <dependency>
-      <groupId>commons-configuration</groupId>
-      <artifactId>commons-configuration</artifactId>
-      <version>${commons-configuration.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-      <version>${commons-codec.version}</version>
-    </dependency>
-    <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
       <version>${commons-io.version}</version>
     </dependency>
     <dependency>
-      <groupId>commons-lang</groupId>
-      <artifactId>commons-lang</artifactId>
-      <version>${commons-lang.version}</version>
-    </dependency>
-    <dependency>
       <groupId>commons-logging</groupId>
       <artifactId>commons-logging</artifactId>
       <version>${commons-logging.version}</version>
@@ -671,34 +639,14 @@
       <version>${jetty.jspapi.version}</version>
     </dependency>
     <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>servlet-api-2.5</artifactId>
-      <version>${jetty.jspapi.version}</version>
+      <groupId>displaytag</groupId>
+      <artifactId>displaytag</artifactId>
+      <version>${displaytag.version}</version>
     </dependency>
     <!-- While jackson is also a dependency of both jersey and avro, these
          can bring in jars from different, incompatible versions. We force
          the same version with these dependencies -->
     <dependency>
-      <groupId>org.codehaus.jackson</groupId>
-      <artifactId>jackson-core-asl</artifactId>
-      <version>${jackson.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.jackson</groupId>
-      <artifactId>jackson-mapper-asl</artifactId>
-      <version>${jackson.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.jackson</groupId>
-      <artifactId>jackson-jaxrs</artifactId>
-      <version>${jackson.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.jackson</groupId>
-      <artifactId>jackson-xc</artifactId>
-      <version>${jackson.version}</version>
-    </dependency>
-    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
       <version>${slf4j.version}</version>
@@ -708,98 +656,13 @@
       <artifactId>slf4j-log4j12</artifactId>
       <version>${slf4j.version}</version>
     </dependency>
-    <dependency>
-      <!--If this is not in the runtime lib, we get odd
-      "2009-02-27 11:38:39.504::WARN:  failed jsp
-       java.lang.NoSuchFieldError: IS_SECURITY_ENABLED"
-       exceptions out of jetty deploying webapps.
-       St.Ack Thu May 20 01:04:41 PDT 2010
-      -->
-      <groupId>tomcat</groupId>
-      <artifactId>jasper-compiler</artifactId>
-      <version>${jasper.version}</version>
-      <scope>runtime</scope>
-      <exclusions>
-        <exclusion>
-          <groupId>javax.servlet</groupId>
-          <artifactId>jsp-api</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>javax.servlet</groupId>
-          <artifactId>servlet-api</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>ant</groupId>
-          <artifactId>ant</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>tomcat</groupId>
-      <artifactId>jasper-runtime</artifactId>
-      <version>${jasper.version}</version>
-      <scope>runtime</scope>
-      <exclusions>
-       <exclusion>
-          <groupId>javax.servlet</groupId>
-          <artifactId>jsp-api</artifactId>
-        </exclusion>          
-        <exclusion>
-          <groupId>javax.servlet</groupId>
-          <artifactId>servlet-api</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
+
     <dependency>
       <groupId>org.jamon</groupId>
       <artifactId>jamon-runtime</artifactId>
       <version>${jamon.runtime.version}</version>
     </dependency>
-
-    <!-- REST dependencies -->
-    <dependency>
-      <groupId>com.sun.jersey</groupId>
-      <artifactId>jersey-core</artifactId>
-      <version>${jersey.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.sun.jersey</groupId>
-      <artifactId>jersey-json</artifactId>
-      <version>${jersey.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.sun.jersey</groupId>
-      <artifactId>jersey-server</artifactId>
-      <version>${jersey.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>javax.xml.bind</groupId>
-      <artifactId>jaxb-api</artifactId>
-      <version>${jaxb-api.version}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>javax.xml.stream</groupId>
-          <artifactId>stax-api</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.jettison</groupId>
-      <artifactId>jettison</artifactId>
-      <version>${jettison.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>displaytag</groupId>
-      <artifactId>displaytag</artifactId>
-      <version>${displaytag.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>displaytag</groupId>
-      <artifactId>displaytag-export-poi</artifactId>
-      <version>${displaytag.version}</version>
-    </dependency> 
   </dependencies>
-  
   <profiles>
     <!-- JDBC drivers needed for compile, but not site docs 
 	 This allows turning off dependency on command line (-P '!jdbc') -->

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/src/assembly/all.xml
----------------------------------------------------------------------
diff --git a/dcs/src/assembly/all.xml b/dcs/src/assembly/all.xml
index 34f2636..391cf11 100644
--- a/dcs/src/assembly/all.xml
+++ b/dcs/src/assembly/all.xml
@@ -78,10 +78,13 @@
       <outputDirectory>/lib</outputDirectory>
       <unpack>false</unpack>
       <scope>runtime</scope>
-      <excludes>
-        <exclude>tomcat:jasper-runtime</exclude>
-        <exclude>org.trafodion:dcs</exclude>
-      </excludes>
+      <includes>
+         <include>displaytag:displaytag</include>
+         <include>org.python:jython-standalone</include>
+         <include>org.slf4j:slf4j-log4j12</include>
+         <include>org.slf4j:slf4j-api</include>
+         <include>org.mortbay.jetty</include>
+      </includes>
       <fileMode>0644</fileMode>
       <directoryMode>0644</directoryMode>
     </dependencySet>

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/src/main/java/org/trafodion/dcs/master/DcsMaster.java
----------------------------------------------------------------------
diff --git a/dcs/src/main/java/org/trafodion/dcs/master/DcsMaster.java b/dcs/src/main/java/org/trafodion/dcs/master/DcsMaster.java
index 1c35065..719c3d3 100644
--- a/dcs/src/main/java/org/trafodion/dcs/master/DcsMaster.java
+++ b/dcs/src/main/java/org/trafodion/dcs/master/DcsMaster.java
@@ -61,7 +61,6 @@ import org.trafodion.dcs.util.VersionInfo;
 import org.trafodion.dcs.zookeeper.ZkClient;
 import org.trafodion.dcs.zookeeper.ZKConfig;
 import org.trafodion.dcs.master.listener.ListenerService;
-import org.trafodion.dcs.rest.DcsRest;
 
 public class DcsMaster implements Runnable {
     private static final Log LOG = LogFactory.getLog(DcsMaster.class);
@@ -74,7 +73,6 @@ public class DcsMaster implements Runnable {
     private int port;
     private int portRange;
     private InfoServer infoServer;
-    private DcsRest restServer;
     private String serverName;
     private int infoPort;
     private long startTime;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/src/main/java/org/trafodion/dcs/master/MasterStatusServlet.java
----------------------------------------------------------------------
diff --git a/dcs/src/main/java/org/trafodion/dcs/master/MasterStatusServlet.java b/dcs/src/main/java/org/trafodion/dcs/master/MasterStatusServlet.java
index 6b02123..4a031b8 100644
--- a/dcs/src/main/java/org/trafodion/dcs/master/MasterStatusServlet.java
+++ b/dcs/src/main/java/org/trafodion/dcs/master/MasterStatusServlet.java
@@ -19,27 +19,7 @@ specific language governing permissions and limitations
 under the License.
 
 * @@@ END COPYRIGHT @@@
- */
-/**
- * Copyright 2007 The Apache Software Foundation
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
+*/
 package org.trafodion.dcs.master;
 
 import java.io.IOException;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/src/main/java/org/trafodion/dcs/rest/DcsRest.java
----------------------------------------------------------------------
diff --git a/dcs/src/main/java/org/trafodion/dcs/rest/DcsRest.java b/dcs/src/main/java/org/trafodion/dcs/rest/DcsRest.java
deleted file mode 100644
index 046b308..0000000
--- a/dcs/src/main/java/org/trafodion/dcs/rest/DcsRest.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/**
-* @@@ START COPYRIGHT @@@
-
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-
-* @@@ END COPYRIGHT @@@
- */
-/**
- * Copyright 2011 The Apache Software Foundation
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.trafodion.dcs.rest;
-
-import java.util.List;
-import java.util.ArrayList;
-import java.io.IOException;
-import java.lang.InterruptedException;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
-import org.apache.commons.cli.ParseException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.net.DNS;
-
-import org.trafodion.dcs.util.DcsConfiguration;
-import org.trafodion.dcs.util.Strings;
-import org.trafodion.dcs.util.VersionInfo;
-
-import org.mortbay.jetty.Connector;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.nio.SelectChannelConnector;
-import org.mortbay.jetty.servlet.Context;
-import org.mortbay.jetty.servlet.ServletHolder;
-import org.mortbay.thread.QueuedThreadPool;
-
-import com.sun.jersey.spi.container.servlet.ServletContainer;
-
-public class DcsRest implements Runnable, RestConstants {  
-	private static final Log LOG = LogFactory.getLog(DcsRest.class.getName());
-	private Configuration conf;
-	private Thread thrd;
-	private String[] args;
-	private RESTServlet servlet;
-	
-	private static void printUsageAndExit(Options options, int exitCode) {
-		HelpFormatter formatter = new HelpFormatter();
-		formatter.printHelp("bin/dcs rest start", "", options,
-				"\nTo run the REST server as a daemon, execute " +
-				"bin/dcs-daemon.sh start|stop rest [--infoport <port>] [-p <port>] [-ro]\n", true);
-		System.exit(exitCode);
-	}
-
-	public DcsRest(String[] args) {
-		this.args = args;
-		conf = DcsConfiguration.create();
-		
-		Options options = new Options();
-		options.addOption("p", "port", true, "Port to bind to [default: 8080]");
-		options.addOption("ro", "readonly", false, "Respond only to GET HTTP " +
-		"method requests [default: false]");
-		options.addOption(null, "infoport", true, "Port for web UI");
-		
-		try {
-			servlet = RESTServlet.getInstance(conf);
-		} catch (IOException e) {
-			LOG.error("Exception " + e);
-			e.printStackTrace();
-		}
-		
-		CommandLine commandLine = null;
-		try {
-			commandLine = new PosixParser().parse(options, args);
-		} catch (ParseException e) {
-			LOG.error("Could not parse: ", e);
-			printUsageAndExit(options, -1);
-		}
-
-		// check for user-defined port setting, if so override the conf
-		if (commandLine != null && commandLine.hasOption("port")) {
-			String val = commandLine.getOptionValue("port");
-			servlet.getConfiguration().setInt("dcs.rest.port", Integer.valueOf(val));
-			LOG.debug("port set to " + val);
-		}
-
-		// check if server should only process GET requests, if so override the conf
-		if (commandLine != null && commandLine.hasOption("readonly")) {
-			servlet.getConfiguration().setBoolean("dcs.rest.readonly", true);
-			LOG.debug("readonly set to true");
-		}
-
-		// check for user-defined info server port setting, if so override the conf
-		if (commandLine != null && commandLine.hasOption("infoport")) {
-			String val = commandLine.getOptionValue("infoport");
-			servlet.getConfiguration().setInt("dcs.rest.info.port", Integer.valueOf(val));
-			LOG.debug("Web UI port set to " + val);
-		}
-
-		@SuppressWarnings("unchecked")
-		List<String> remainingArgs = commandLine != null ?	commandLine.getArgList() : new ArrayList<String>();
-		if (remainingArgs.size() != 1) {
-			printUsageAndExit(options, 1);
-		}
-
-		String command = remainingArgs.get(0);
-		if ("start".equals(command)) {
-			// continue and start container
-		} else if ("stop".equals(command)) {
-			System.exit(1);
-		} else {
-			printUsageAndExit(options, 1);
-		}
-		
-		thrd = new Thread(this);
-		thrd.start();	
-	}
-	
-	public DcsRest(Configuration conf) {
-		try {
-			servlet = RESTServlet.getInstance(conf);
-		} catch (IOException e) {
-			LOG.error("Exception " + e);
-			e.printStackTrace();
-			return;
-		}
-		
-		thrd = new Thread(this);
-		thrd.start();	
-	}
-
-	public void run() {
-		VersionInfo.logVersion();
-		
-		// set up the Jersey servlet container for Jetty
-		ServletHolder sh = new ServletHolder(ServletContainer.class);
-		sh.setInitParameter(
-				"com.sun.jersey.config.property.resourceConfigClass",
-				ResourceConfig.class.getCanonicalName());
-		sh.setInitParameter("com.sun.jersey.config.property.packages","org.trafodion.dcs.rest");
-
-		// set up Jetty and run the embedded server
-		Server server = new Server();
-
-		Connector connector = new SelectChannelConnector();
-		connector.setPort(servlet.getConfiguration().getInt("dcs.rest.port", 8080));
-		connector.setHost(servlet.getConfiguration().get("dcs.rest.host", "0.0.0.0"));
-
-		server.addConnector(connector);
-
-		// Set the default max thread number to 100 to limit
-		// the number of concurrent requests so that REST server doesn't OOM easily.
-		// Jetty set the default max thread number to 250, if we don't set it.
-		//
-		// Our default min thread number 2 is the same as that used by Jetty.
-		int maxThreads = servlet.getConfiguration().getInt("dcs.rest.threads.max", 100);
-		int minThreads = servlet.getConfiguration().getInt("dcs.rest.threads.min", 2);
-		QueuedThreadPool threadPool = new QueuedThreadPool(maxThreads);
-		threadPool.setMinThreads(minThreads);
-		server.setThreadPool(threadPool);
-		server.setSendServerVersion(false);
-		server.setSendDateHeader(false);
-		server.setStopAtShutdown(true);
-
-		Context context = new Context(server, "/", Context.SESSIONS);
-		context.addServlet(sh, "/*");
-		
-		try {
-			server.start();
-			server.join();
-		} catch (InterruptedException e) {
-			LOG.error("InterruptedException " + e);
-		} catch (Exception e) {
-			LOG.error("Exception " + e);
-		}
-	}
-
-	public static void main(String[] args) throws Exception {
-		DcsRest server = new DcsRest(args);
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/src/main/java/org/trafodion/dcs/rest/GetStatusResponse.java
----------------------------------------------------------------------
diff --git a/dcs/src/main/java/org/trafodion/dcs/rest/GetStatusResponse.java b/dcs/src/main/java/org/trafodion/dcs/rest/GetStatusResponse.java
deleted file mode 100644
index c8ee6c4..0000000
--- a/dcs/src/main/java/org/trafodion/dcs/rest/GetStatusResponse.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
-* @@@ START COPYRIGHT @@@
-
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-
-* @@@ END COPYRIGHT @@@
- */
-package org.trafodion.dcs.rest;
-
-import java.io.IOException;
-
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlRootElement
-public class GetStatusResponse {
-	private String workloadId;
-	
-	public GetStatusResponse(){
-	};
-	
-	public GetStatusResponse(String value){
-		workloadId = value;
-	};
-	
-	@XmlElement
-	public String getWorkloadId() {
-		return workloadId;
-	}
-	
-	public void setWorkloadId(String value) {
-		this.workloadId = value;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/src/main/java/org/trafodion/dcs/rest/RESTServlet.java
----------------------------------------------------------------------
diff --git a/dcs/src/main/java/org/trafodion/dcs/rest/RESTServlet.java b/dcs/src/main/java/org/trafodion/dcs/rest/RESTServlet.java
deleted file mode 100644
index 13016b4..0000000
--- a/dcs/src/main/java/org/trafodion/dcs/rest/RESTServlet.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/**
-* @@@ START COPYRIGHT @@@
-
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-
-* @@@ END COPYRIGHT @@@
- */
-/**
- * Copyright 2007 The Apache Software Foundation
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.trafodion.dcs.rest;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.util.StringTokenizer;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.HashMap; 
-import java.util.Map;
-
-import org.trafodion.dcs.Constants;
-import org.trafodion.dcs.rest.ServerConnector;
-import org.trafodion.dcs.rest.RestConstants;
-import org.trafodion.dcs.zookeeper.ZkClient;
-
-import org.apache.zookeeper.KeeperException;
-import org.apache.zookeeper.data.Stat;
-import org.apache.zookeeper.ZooDefs;
-
-import org.apache.hadoop.conf.Configuration;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-/**
- * Singleton class encapsulating global REST servlet state and functions.
- */
-public class RESTServlet implements RestConstants {
-	private static final Log LOG = LogFactory.getLog(RESTServlet.class);
-	private static RESTServlet INSTANCE;
-	private final Configuration conf;
-	private static ZkClient zkc;
-	private String parentZnode;
-	private Map<String, ServerConnector> m = new HashMap<String, ServerConnector>();
-
-	/**
-	 * @return the RESTServlet singleton instance
-	 * @throws IOException
-	 */
-	public synchronized static RESTServlet getInstance() 
-	throws IOException {
-		assert(INSTANCE != null);
-		return INSTANCE;
-	}
-
-	/**
-	 * @param conf Existing configuration to use in rest servlet
-	 * @return the RESTServlet singleton instance
-	 * @throws IOException
-	 */
-	public synchronized static RESTServlet getInstance(Configuration conf)
-	throws IOException {
-		if (INSTANCE == null) {
-			INSTANCE = new RESTServlet(conf);
-		}
-		return INSTANCE;
-	}
-	
-	public ZkClient getZk(){
-		return this.zkc;
-	}
-	
-	public String getParentZnode(){
-		return this.parentZnode;
-	}
-
-	public synchronized static void stop() {
-		if (INSTANCE != null)  INSTANCE = null;
-	}
-
-	/**
-	 * Constructor with existing configuration
-	 * @param conf existing configuration
-	 * @throws IOException.
-	 */
-	RESTServlet(Configuration conf) throws IOException {
-		this.conf = conf;
-		this.parentZnode = conf.get(Constants.ZOOKEEPER_ZNODE_PARENT,Constants.DEFAULT_ZOOKEEPER_ZNODE_PARENT);	   	
-
-	}
-
-	private void openZk() throws IOException {
-		try {
-			if(zkc == null)  
-				zkc = new ZkClient();//CTRL-C...set sessionTimeout,maxRetries,retryIntervalMillis
-			zkc.connect();
-		} catch (InterruptedException e) {
-			LOG.error(e);
-		} 
-	}
-
-	public synchronized List<String> getChildren(String znode) throws IOException {
-		List<String> s = null;
-		
-		try {
-			openZk();
-			s = zkc.getChildren(znode,null);
-		} catch (InterruptedException e) {
-			LOG.error(e);
-		} catch (KeeperException e) {
-			LOG.error(e);
-		} catch (NullPointerException e) {
-			LOG.error(e);
-		}
-		
-		return s;
-	}
-	
-	public synchronized List<String> getMaster() throws IOException {
-		return getChildren(parentZnode + Constants.DEFAULT_ZOOKEEPER_ZNODE_MASTER);
-	} 
-	public synchronized List<String> getRunning() throws IOException {
-		return getChildren(parentZnode + Constants.DEFAULT_ZOOKEEPER_ZNODE_SERVERS_RUNNING);
-	}	
-	public synchronized List<String> getRegistered() throws IOException {
-		return getChildren(parentZnode + Constants.DEFAULT_ZOOKEEPER_ZNODE_SERVERS_REGISTERED);
-	} 
-
-	Configuration getConfiguration() {
-		return conf;
-	}
-
-	/**
-	 * Helper method to determine if server should
-	 * only respond to GET HTTP method requests.
-	 * @return boolean for server read-only state
-	 */
-	boolean isReadOnly() {
-		return getConfiguration().getBoolean("dcs.rest.readonly", false);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/src/main/java/org/trafodion/dcs/rest/ResourceBase.java
----------------------------------------------------------------------
diff --git a/dcs/src/main/java/org/trafodion/dcs/rest/ResourceBase.java b/dcs/src/main/java/org/trafodion/dcs/rest/ResourceBase.java
deleted file mode 100644
index 00d64eb..0000000
--- a/dcs/src/main/java/org/trafodion/dcs/rest/ResourceBase.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
-* @@@ START COPYRIGHT @@@
-
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-
-* @@@ END COPYRIGHT @@@
- */
-package org.trafodion.dcs.rest;
-
-import java.io.IOException;
-
-public class ResourceBase implements RestConstants {
-
-  RESTServlet servlet;
-
-  public ResourceBase() throws IOException {
-    servlet = RESTServlet.getInstance();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/src/main/java/org/trafodion/dcs/rest/ResourceConfig.java
----------------------------------------------------------------------
diff --git a/dcs/src/main/java/org/trafodion/dcs/rest/ResourceConfig.java b/dcs/src/main/java/org/trafodion/dcs/rest/ResourceConfig.java
deleted file mode 100644
index 32a211e..0000000
--- a/dcs/src/main/java/org/trafodion/dcs/rest/ResourceConfig.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
-* @@@ START COPYRIGHT @@@
-
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-
-* @@@ END COPYRIGHT @@@
- */
-package org.trafodion.dcs.rest;
-
-import com.sun.jersey.api.core.PackagesResourceConfig;
-
-public class ResourceConfig extends PackagesResourceConfig {
-  public ResourceConfig() {
-	  super("org.trafodion.dcs.rest");
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/src/main/java/org/trafodion/dcs/rest/RestConstants.java
----------------------------------------------------------------------
diff --git a/dcs/src/main/java/org/trafodion/dcs/rest/RestConstants.java b/dcs/src/main/java/org/trafodion/dcs/rest/RestConstants.java
deleted file mode 100644
index 1eee4df..0000000
--- a/dcs/src/main/java/org/trafodion/dcs/rest/RestConstants.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
-* @@@ START COPYRIGHT @@@
-
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-
-* @@@ END COPYRIGHT @@@
- */
-/**
- * Copyright 2007 The Apache Software Foundation
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.trafodion.dcs.rest;
-
-/**
- * Common constants for org.trafodion.dcs.rest
- */
-public interface RestConstants {
-  public static final String VERSION_STRING = "0.0.2";
-
-  public static final int DEFAULT_MAX_AGE = 60 * 60 * 4;  // 4 hours
-
-  public static final int DEFAULT_LISTEN_PORT = 8080;
-
-  public static final String MIMETYPE_TEXT = "text/plain";
-  public static final String MIMETYPE_HTML = "text/html";
-  public static final String MIMETYPE_XML = "text/xml";
-  public static final String MIMETYPE_BINARY = "application/octet-stream";
-  public static final String MIMETYPE_PROTOBUF = "application/x-protobuf";
-  public static final String MIMETYPE_PROTOBUF_IETF = "application/protobuf";
-  public static final String MIMETYPE_JSON = "application/json";
-
-  public static final String CRLF = "\r\n";
-}

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/src/main/java/org/trafodion/dcs/rest/RootResource.java
----------------------------------------------------------------------
diff --git a/dcs/src/main/java/org/trafodion/dcs/rest/RootResource.java b/dcs/src/main/java/org/trafodion/dcs/rest/RootResource.java
deleted file mode 100644
index eb9d0dc..0000000
--- a/dcs/src/main/java/org/trafodion/dcs/rest/RootResource.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
-* @@@ START COPYRIGHT @@@
-
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-
-* @@@ END COPYRIGHT @@@
- */
-package org.trafodion.dcs.rest;
-
-import java.io.*;
-import java.util.*;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.CacheControl;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import javax.ws.rs.core.Response.ResponseBuilder;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.trafodion.dcs.Constants;
-import org.trafodion.dcs.util.Bytes;
-import org.trafodion.dcs.rest.RestConstants;
-
-@Path("/")
-public class RootResource extends ResourceBase {
-	private static final Log LOG = LogFactory.getLog(RootResource.class);
-
-	static CacheControl cacheControl;
-	static {
-		cacheControl = new CacheControl();
-		cacheControl.setNoCache(true);
-		cacheControl.setNoTransform(false);
-	}
-
-	public RootResource() throws IOException {
-		super();
-	}
-	
-	@GET
-	@Produces({MIMETYPE_TEXT, MIMETYPE_XML, MIMETYPE_JSON})
-	public Response get(final @Context UriInfo uriInfo) {
-		if (LOG.isDebugEnabled()) {
-			LOG.debug("GET " + uriInfo.getAbsolutePath());
-		}
-		
-		try {
-			return new WorkloadResource().get(uriInfo);
-		} catch (IOException e) {
-			return Response.status(Response.Status.SERVICE_UNAVAILABLE)
-			.type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
-			.build();
-		}
-
-	}
-
-	@Path("/v1/servers")
-	public ServerResource getServerResource() throws IOException {
-		//To test:
-		//curl -v -X GET -H "Accept: application/json" http://<DcsMaster IP address>:8080/v1/servers
-		//
-		return new ServerResource();
-	}
-	
-	@Path("/v1/workloads")
-	public WorkloadResource getWorkloadResource() throws IOException { 
-		//To test:
-		//curl -v -X GET -H "Accept: application/json" http://<DcsMaster IP address>:8080/v1/workloads
-		//
-		return new WorkloadResource();
-	}
-
-	@Path("/v1/version")
-	public VersionResource getVersionResource() throws IOException {
-		//To test:
-		//curl -v -X GET -H "Accept: application/json" http://<DcsMaster IP address>:8080/v1/version
-		//
-		return new VersionResource();
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/src/main/java/org/trafodion/dcs/rest/ServerConnector.java
----------------------------------------------------------------------
diff --git a/dcs/src/main/java/org/trafodion/dcs/rest/ServerConnector.java b/dcs/src/main/java/org/trafodion/dcs/rest/ServerConnector.java
deleted file mode 100644
index 35cafd9..0000000
--- a/dcs/src/main/java/org/trafodion/dcs/rest/ServerConnector.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
-* @@@ START COPYRIGHT @@@
-
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-
-* @@@ END COPYRIGHT @@@
- */
-package org.trafodion.dcs.rest;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.util.StringTokenizer;
-import java.util.List;
-import java.util.Iterator;
-import java.util.HashMap; 
-import java.util.Map;
-
-//import org.apache.avro.ipc.NettyTransceiver;
-//import org.apache.avro.ipc.Transceiver;
-//import org.apache.avro.ipc.specific.SpecificRequestor;
-//import org.apache.avro.AvroRemoteException;
-
-import org.trafodion.dcs.Constants;
-import org.trafodion.dcs.rest.RestConstants;
-import org.trafodion.dcs.zookeeper.ZkClient;
-
-import org.apache.zookeeper.KeeperException;
-import org.apache.zookeeper.data.Stat;
-import org.apache.zookeeper.ZooDefs;
-
-import org.apache.hadoop.conf.Configuration;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-
-public class ServerConnector {
-	private static final Log LOG = LogFactory.getLog(ServerConnector.class);
-//	private Transceiver transceiver;
-//	private Workload client;
-//	private WorkloadListRequest request;
-/*
-	public ServerConnector(String ipAddr,int port) throws IOException {
-		try {
-			transceiver = new NettyTransceiver(new InetSocketAddress(ipAddr,port));
-			client = SpecificRequestor.getClient(Workload.class, transceiver);
-//			request = WorkloadListRequest.newBuilder().build();
-
-		} catch (AvroRemoteException e) {
-			LOG.error(e);
-		} 
-	}
-	
-	public WorkloadListResponse getWorkloadListResponse() {
-		WorkloadListResponse response = null;
-		try {
-			response = client.list(request);
-		} catch (AvroRemoteException e) {
-			LOG.error(e);
-		} 
-		return response;
-	}
-*/	
-}

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/src/main/java/org/trafodion/dcs/rest/ServerResource.java
----------------------------------------------------------------------
diff --git a/dcs/src/main/java/org/trafodion/dcs/rest/ServerResource.java b/dcs/src/main/java/org/trafodion/dcs/rest/ServerResource.java
deleted file mode 100644
index 5a39050..0000000
--- a/dcs/src/main/java/org/trafodion/dcs/rest/ServerResource.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/**********************************************************************
-* @@@ START COPYRIGHT @@@
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements.  See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership.  The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License.  You may obtain a copy of the License at
-*
-*   http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied.  See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*
-* @@@ END COPYRIGHT @@@
-**********************************************************************/
-
-package org.trafodion.dcs.rest;
-
-import java.io.*;
-import java.util.*;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.CacheControl;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import javax.ws.rs.core.Response.ResponseBuilder;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.apache.zookeeper.ZooDefs;
-import org.apache.zookeeper.data.Stat;
-
-import org.trafodion.dcs.Constants;
-import org.trafodion.dcs.util.Bytes;
-import org.trafodion.dcs.zookeeper.ZkClient;
-import org.trafodion.dcs.rest.RestConstants;
-import org.trafodion.dcs.rest.model.ServerModel;
-
-public class ServerResource extends ResourceBase {
-	private static final Log LOG =
-		LogFactory.getLog(ServerResource.class);
-
-	static CacheControl cacheControl;
-	static {
-		cacheControl = new CacheControl();
-		cacheControl.setNoCache(true);
-		cacheControl.setNoTransform(false);
-	}
-
-	/**
-* @@@ START COPYRIGHT @@@
-
-	Licensed to the Apache Software Foundation (ASF) under one
-	or more contributor license agreements.  See the NOTICE file
-	distributed with this work for additional information
-	regarding copyright ownership.  The ASF licenses this file
-	to you under the Apache License, Version 2.0 (the
-	"License"); you may not use this file except in compliance
-	with the License.  You may obtain a copy of the License at
-
-	  http://www.apache.org/licenses/LICENSE-2.0
-
-	Unless required by applicable law or agreed to in writing,
-	software distributed under the License is distributed on an
-	"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-	KIND, either express or implied.  See the License for the
-	specific language governing permissions and limitations
-	under the License.
-
-* @@@ END COPYRIGHT @@@
-	 */
-	public ServerResource() throws IOException {
-		super();
-	}
-
-	@GET
-	@Produces({MIMETYPE_TEXT, MIMETYPE_XML, MIMETYPE_JSON})
-	public Response get(final @Context UriInfo uriInfo) {
-		if (LOG.isDebugEnabled()) {
-			LOG.debug("GET " + uriInfo.getAbsolutePath());
-		}
-
-		try {
-			List<String> master = servlet.getMaster();
-			List<String> running = servlet.getRunning();
-			List<String> registered = servlet.getRegistered();
-		    
-			ZkClient zkc = servlet.getZk();
-			Stat stat = null;
-			
-		    ServerModel model = new ServerModel();
-		    
-			String data = null;
-
-			if(master != null){
-				for(String znode: master) {
-					data = null;
-					try {
-						data = Bytes.toString(zkc.getData(servlet.getParentZnode() + Constants.DEFAULT_ZOOKEEPER_ZNODE_MASTER + "/" + znode, false, stat));
-					} catch (Exception e) {
-						LOG.error(e);
-					}
-
-					ServerModel.DcsMaster dcsMaster = model.addDcsMaster(znode,data);
-
-					if(running != null){
-						Collections.sort(running);
-						data = null;
-						for(String znodeRun: running) {
-							try {
-								data = Bytes.toString(zkc.getData(servlet.getParentZnode() + Constants.DEFAULT_ZOOKEEPER_ZNODE_SERVERS_RUNNING + "/" + znodeRun, false, stat));
-							} catch (Exception e) {
-								LOG.error(e);
-							}
-							
-							ServerModel.DcsServer dcsServer = dcsMaster.addDcsServer(znodeRun,data);
-
-							if(registered != null){
-								Collections.sort(registered);
-								data = null;
-								for(String znodeReg: registered) {
-									try {
-										data = Bytes.toString(zkc.getData(servlet.getParentZnode() + Constants.DEFAULT_ZOOKEEPER_ZNODE_SERVERS_REGISTERED + "/" + znodeReg, false, stat));
-									} catch (Exception e) {
-										LOG.error(e);
-									}
-									
-									dcsServer.addTrafodionServer(znodeReg,data);
-								}
-							}
-						}
-					}
-				}
-			}
-			
-			ResponseBuilder response = Response.ok(model);
-			response.cacheControl(cacheControl);
-			return response.build();
-		} catch (IOException e) {
-			return Response.status(Response.Status.SERVICE_UNAVAILABLE)
-			.type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
-			.build();
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/src/main/java/org/trafodion/dcs/rest/VersionResource.java
----------------------------------------------------------------------
diff --git a/dcs/src/main/java/org/trafodion/dcs/rest/VersionResource.java b/dcs/src/main/java/org/trafodion/dcs/rest/VersionResource.java
deleted file mode 100644
index caa7985..0000000
--- a/dcs/src/main/java/org/trafodion/dcs/rest/VersionResource.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/**********************************************************************
-* @@@ START COPYRIGHT @@@
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements.  See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership.  The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License.  You may obtain a copy of the License at
-*
-*   http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied.  See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*
-* @@@ END COPYRIGHT @@@
-**********************************************************************/
-
-package org.trafodion.dcs.rest;
-
-import java.io.IOException;
-
-import javax.servlet.ServletContext;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.CacheControl;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import javax.ws.rs.core.Response.ResponseBuilder;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.trafodion.dcs.rest.model.VersionModel;
-
-/**
-* @@@ START COPYRIGHT @@@
-
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-
-* @@@ END COPYRIGHT @@@
- */
-public class VersionResource extends ResourceBase {
-
-  private static final Log LOG = LogFactory.getLog(VersionResource.class);
-
-  static CacheControl cacheControl;
-  static {
-    cacheControl = new CacheControl();
-    cacheControl.setNoCache(true);
-    cacheControl.setNoTransform(false);
-  }
-
-  /**
-   * Constructor
-   * @throws IOException
-   */
-  public VersionResource() throws IOException {
-    super();
-  }
-
-  /**
-   * Build a response for a version request.
-   * @param context servlet context
-   * @param uriInfo (JAX-RS context variable) request URL
-   * @return a response for a version request 
-   */
- 
-  @GET
-  @Produces({MIMETYPE_TEXT, MIMETYPE_XML, MIMETYPE_JSON})
-  public Response get(final @Context ServletContext context, 
-      final @Context UriInfo uriInfo) {
-    if (LOG.isDebugEnabled()) {
-      LOG.debug("GET " + uriInfo.getAbsolutePath());
-    }
-    //servlet.getMetrics().incrementRequests(1);
-    ResponseBuilder response = Response.ok(new VersionModel(context));
-    response.cacheControl(cacheControl);
-    //servlet.getMetrics().incrementSucessfulGetRequests(1);
-    return response.build();
-  }
- 
-  /**
-   * Dispatch to StorageClusterVersionResource
-   */
-/*  
-  @Path("cluster")
-  public StorageClusterVersionResource getClusterVersionResource() 
-      throws IOException {
-    return new StorageClusterVersionResource();
-  }
-*/
-  /**
-   * Dispatch <tt>/version/rest</tt> to self.
-   */
-  @Path("rest")
-  public VersionResource getVersionResource() {
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/681cad66/dcs/src/main/java/org/trafodion/dcs/rest/WorkloadResource.java
----------------------------------------------------------------------
diff --git a/dcs/src/main/java/org/trafodion/dcs/rest/WorkloadResource.java b/dcs/src/main/java/org/trafodion/dcs/rest/WorkloadResource.java
deleted file mode 100644
index 6a17110..0000000
--- a/dcs/src/main/java/org/trafodion/dcs/rest/WorkloadResource.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/**********************************************************************
-* @@@ START COPYRIGHT @@@
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements.  See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership.  The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License.  You may obtain a copy of the License at
-*
-*   http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied.  See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*
-* @@@ END COPYRIGHT @@@
-**********************************************************************/
-package org.trafodion.dcs.rest;
-
-import java.io.*;
-import java.util.*;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.CacheControl;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import javax.ws.rs.core.Response.ResponseBuilder;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.trafodion.dcs.Constants;
-import org.trafodion.dcs.util.Bytes;
-import org.trafodion.dcs.script.ScriptManager;
-import org.trafodion.dcs.script.ScriptContext;
-import org.trafodion.dcs.rest.model.WorkloadListModel;
-import org.trafodion.dcs.rest.model.WorkloadModel;
-
-import org.codehaus.jettison.json.JSONArray;
-import org.codehaus.jettison.json.JSONException;
-import org.codehaus.jettison.json.JSONObject;
-
-public class WorkloadResource extends ResourceBase {
-	private static final Log LOG =
-		LogFactory.getLog(WorkloadResource.class);
-
-	static CacheControl cacheControl;
-	static {
-		cacheControl = new CacheControl();
-		cacheControl.setNoCache(true);
-		cacheControl.setNoTransform(false);
-	}
-
-	/**
-* @@@ START COPYRIGHT @@@
-
-	Licensed to the Apache Software Foundation (ASF) under one
-	or more contributor license agreements.  See the NOTICE file
-	distributed with this work for additional information
-	regarding copyright ownership.  The ASF licenses this file
-	to you under the Apache License, Version 2.0 (the
-	"License"); you may not use this file except in compliance
-	with the License.  You may obtain a copy of the License at
-
-	  http://www.apache.org/licenses/LICENSE-2.0
-
-	Unless required by applicable law or agreed to in writing,
-	software distributed under the License is distributed on an
-	"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-	KIND, either express or implied.  See the License for the
-	specific language governing permissions and limitations
-	under the License.
-
-* @@@ END COPYRIGHT @@@
-	 */
-	public WorkloadResource() throws IOException {
-		super();
-
-	}
-
-	@GET
-	@Produces({MIMETYPE_TEXT, MIMETYPE_XML, MIMETYPE_JSON})
-	public Response get(final @Context UriInfo uriInfo) {
-		if (LOG.isDebugEnabled()) {
-			LOG.debug("GET " + uriInfo.getAbsolutePath());
-		}
-
-		try {
-//			ScriptContext scriptContext = new ScriptContext();
-//			scriptContext.setScriptName(Constants.JDBCT2UTIL_SCRIPT_NAME);
-//			scriptContext.setCommand(Constants.TRAFODION_REPOS_METRIC_SESSION_TABLE);
-
-			try {
-//				ScriptManager.getInstance().runScript(scriptContext);//This will block while script is running
-			} catch (Exception e) {
-				e.printStackTrace();
-				throw new IOException(e);
-			}
-
-//			StringBuilder sb = new StringBuilder();
-//			sb.append("exit code [" + scriptContext.getExitCode() + "]");
-//			if(! scriptContext.getStdOut().toString().isEmpty()) 
-//				sb.append(", stdout [" + scriptContext.getStdOut().toString() + "]");
-//			if(! scriptContext.getStdErr().toString().isEmpty())
-//				sb.append(", stderr [" + scriptContext.getStdErr().toString() + "]");
-//			LOG.info(sb.toString());
-			
-			JSONArray workloadList = null;
-
-//			try {
-//				if(scriptContext.getExitCode() == 0 && (! scriptContext.getStdOut().toString().isEmpty())) {
-//					workloadList = new JSONArray(scriptContext.getStdOut().toString());
-//				}
-//			} catch (Exception e) {
-//				e.printStackTrace();
-//				LOG.error(e.getMessage());
-//				throw new IOException(e);
-//			}			
-
-			ResponseBuilder response = Response.ok(workloadList);
-			response.cacheControl(cacheControl);
-			return response.build();
-		} catch (IOException e) {
-			return Response.status(Response.Status.SERVICE_UNAVAILABLE)
-			.type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
-			.build();
-		}
-	}
-
-}
\ No newline at end of file


Mime
View raw message