minor, user and acl jason serializer

Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/cfac81bf
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/cfac81bf
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/cfac81bf

Branch: refs/heads/master
Commit: cfac81bffc22e1fb320c9fd6efe8c4e4ffd219a5
Parents: bf87169
Author: Roger Shi <[email protected]>
Authored: Wed Jun 21 15:45:28 2017 +0800
Committer: Hongbin Ma <[email protected]>
Committed: Wed Jun 21 16:27:16 2017 +0800

----------------------------------------------------------------------
 .../apache/kylin/rest/service/AclService.java   | 45 +++++---------------
 .../rest/service/AclTableMigrationTool.java     |  7 +--
 .../apache/kylin/rest/service/UserService.java  | 37 +++-------------
 3 files changed, 21 insertions(+), 68 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/cfac81bf/server-base/src/main/java/org/apache/kylin/rest/service/AclService.java
----------------------------------------------------------------------
diff --git 
a/server-base/src/main/java/org/apache/kylin/rest/service/AclService.java 
b/server-base/src/main/java/org/apache/kylin/rest/service/AclService.java
index 6292c00..02b8e9f 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/AclService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/AclService.java
@@ -18,8 +18,6 @@
 
 package org.apache.kylin.rest.service;
 
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
 import java.io.IOException;
 import java.lang.reflect.Field;
 import java.util.ArrayList;
@@ -29,10 +27,10 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.RootPersistentEntity;
 import org.apache.kylin.common.persistence.Serializer;
-import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.rest.exception.BadRequestException;
 import org.apache.kylin.rest.exception.InternalErrorException;
 import org.apache.kylin.rest.msg.Message;
@@ -79,6 +77,8 @@ public class AclService implements MutableAclService {
 
     public static final String DIR_PREFIX = "/acl/";
 
+    public static final Serializer<AclRecord> SERIALIZER = new 
JsonSerializer<>(AclRecord.class);
+
     @Autowired
     protected PermissionGrantingStrategy permissionGrantingStrategy;
 
@@ -107,7 +107,8 @@ public class AclService implements MutableAclService {
     public List<ObjectIdentity> findChildren(ObjectIdentity parentIdentity) {
         List<ObjectIdentity> oids = new ArrayList<ObjectIdentity>();
         try {
-            List<AclRecord> allAclRecords = 
aclStore.getAllResources(String.valueOf(DIR_PREFIX), AclRecord.class, 
AclRecordSerializer.getInstance());
+            List<AclRecord> allAclRecords = 
aclStore.getAllResources(String.valueOf(DIR_PREFIX), AclRecord.class,
+                    SERIALIZER);
             for (AclRecord record : allAclRecords) {
                 DomainObjectInfo parent = record.getParentDomainObjectInfo();
                 if (parent != null && 
parent.getId().equals(String.valueOf(parentIdentity.getIdentifier()))) {
@@ -148,7 +149,8 @@ public class AclService implements MutableAclService {
         Map<ObjectIdentity, Acl> aclMaps = new HashMap<ObjectIdentity, Acl>();
         try {
             for (ObjectIdentity oid : oids) {
-                AclRecord record = 
aclStore.getResource(getQueryKeyById(String.valueOf(oid.getIdentifier())), 
AclRecord.class, AclRecordSerializer.getInstance());
+                AclRecord record = 
aclStore.getResource(getQueryKeyById(String.valueOf(oid.getIdentifier())),
+                        AclRecord.class, SERIALIZER);
                 if (record != null) {
                     SidInfo owner = record.getOwnerInfo();
                     Sid ownerSid = (null == owner) ? null : 
(owner.isPrincipal() ? new PrincipalSid(owner.getSid()) : new 
GrantedAuthoritySid(owner.getSid()));
@@ -191,7 +193,8 @@ public class AclService implements MutableAclService {
         PrincipalSid sid = new PrincipalSid(auth);
         try {
             AclRecord record = new AclRecord(new 
DomainObjectInfo(objectIdentity), null, new SidInfo(sid), true, null);
-            
aclStore.putResource(getQueryKeyById(String.valueOf(objectIdentity.getIdentifier())),
 record, 0, AclRecordSerializer.getInstance());
+            
aclStore.putResource(getQueryKeyById(String.valueOf(objectIdentity.getIdentifier())),
 record, 0,
+                    SERIALIZER);
             logger.debug("ACL of " + objectIdentity + " created 
successfully.");
         } catch (IOException e) {
             throw new InternalErrorException(e);
@@ -228,7 +231,7 @@ public class AclService implements MutableAclService {
 
         try {
             String id = 
getQueryKeyById(String.valueOf(mutableAcl.getObjectIdentity().getIdentifier()));
-            AclRecord record = aclStore.getResource(id, AclRecord.class, 
AclRecordSerializer.getInstance());
+            AclRecord record = aclStore.getResource(id, AclRecord.class, 
SERIALIZER);
             aclStore.deleteResource(id);
             if (mutableAcl.getParentAcl() != null) {
                 record.setParentDomainObjectInfo(new 
DomainObjectInfo(mutableAcl.getParentAcl().getObjectIdentity()));
@@ -249,7 +252,7 @@ public class AclService implements MutableAclService {
                 AceInfo aceInfo = new AceInfo(ace);
                 allAceInfo.put(String.valueOf(aceInfo.getSidInfo().getSid()), 
aceInfo);
             }
-            aclStore.putResource(id, record, 0, 
AclRecordSerializer.getInstance());
+            aclStore.putResource(id, record, 0, SERIALIZER);
             logger.debug("ACL of " + mutableAcl.getObjectIdentity() + " 
updated successfully.");
         } catch (IOException e) {
             throw new InternalErrorException(e);
@@ -307,32 +310,6 @@ public class AclService implements MutableAclService {
     public static String getQueryKeyById(String id) {
         return DIR_PREFIX + id;
     }
-
-    protected static class AclRecordSerializer implements 
Serializer<AclRecord> {
-
-        private static final AclRecordSerializer serializer = new 
AclRecordSerializer();
-
-        AclRecordSerializer() {
-
-        }
-
-        public static AclRecordSerializer getInstance() {
-            return serializer;
-        }
-
-        @Override
-        public void serialize(AclRecord obj, DataOutputStream out) throws 
IOException {
-            String jsonStr = JsonUtil.writeValueAsString(obj);
-            out.writeUTF(jsonStr);
-        }
-
-        @Override
-        public AclRecord deserialize(DataInputStream in) throws IOException {
-            String jsonStr = in.readUTF();
-            return JsonUtil.readValue(jsonStr, AclRecord.class);
-        }
-    }
-
 }
 
 @SuppressWarnings("serial")

http://git-wip-us.apache.org/repos/asf/kylin/blob/cfac81bf/server-base/src/main/java/org/apache/kylin/rest/service/AclTableMigrationTool.java
----------------------------------------------------------------------
diff --git 
a/server-base/src/main/java/org/apache/kylin/rest/service/AclTableMigrationTool.java
 
b/server-base/src/main/java/org/apache/kylin/rest/service/AclTableMigrationTool.java
index 428c556..fc50410 100644
--- 
a/server-base/src/main/java/org/apache/kylin/rest/service/AclTableMigrationTool.java
+++ 
b/server-base/src/main/java/org/apache/kylin/rest/service/AclTableMigrationTool.java
@@ -128,7 +128,7 @@ public class AclTableMigrationTool {
                         record.setEntriesInheriting(getInheriting(result));
                         record.setAllAceInfo(getAllAceInfo(result));
                         
store.deleteResource(AclService.getQueryKeyById(object.getId()));
-                        
store.putResource(AclService.getQueryKeyById(object.getId()), record, 0, 
AclService.AclRecordSerializer.getInstance());
+                        
store.putResource(AclService.getQueryKeyById(object.getId()), record, 0, 
AclService.SERIALIZER);
                         result = rs.next();
                     }
                 }
@@ -147,7 +147,8 @@ public class AclTableMigrationTool {
                         User user = hbaseRowToUser(result);
                         UserInfo userInfo = convert(user);
                         
store.deleteResource(UserService.getId(userInfo.getUsername()));
-                        
store.putResource(UserService.getId(userInfo.getUsername()), userInfo, 0, 
UserService.UserInfoSerializer.getInstance());
+                        
store.putResource(UserService.getId(userInfo.getUsername()), userInfo, 0,
+                                UserService.SERIALIZER);
                         result = rs.next();
                     }
                 }
@@ -190,7 +191,7 @@ public class AclTableMigrationTool {
 
     private DomainObjectInfo getDomainObjectInfoFromRs(Result result) {
         String type = 
String.valueOf(result.getValue(Bytes.toBytes(AclConstant.ACL_INFO_FAMILY), 
Bytes.toBytes(AclConstant.ACL_INFO_FAMILY_TYPE_COLUMN)));
-        String id = String.valueOf(result.getRow());
+        String id = new String(result.getRow());
         DomainObjectInfo newInfo = new DomainObjectInfo();
         newInfo.setId(id);
         newInfo.setType(type);

http://git-wip-us.apache.org/repos/asf/kylin/blob/cfac81bf/server-base/src/main/java/org/apache/kylin/rest/service/UserService.java
----------------------------------------------------------------------
diff --git 
a/server-base/src/main/java/org/apache/kylin/rest/service/UserService.java 
b/server-base/src/main/java/org/apache/kylin/rest/service/UserService.java
index 9adfcb8..e803040 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/UserService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/UserService.java
@@ -18,8 +18,6 @@
 
 package org.apache.kylin.rest.service;
 
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
@@ -27,9 +25,9 @@ import java.util.List;
 import javax.annotation.PostConstruct;
 
 import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.Serializer;
-import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.rest.exception.InternalErrorException;
 import org.apache.kylin.rest.msg.Message;
 import org.apache.kylin.rest.msg.MsgPicker;
@@ -51,6 +49,8 @@ public class UserService implements UserDetailsManager {
 
     public static final String DIR_PREFIX = "/user/";
 
+    public static final Serializer<UserInfo> SERIALIZER = new 
JsonSerializer<>(UserInfo.class);
+
     protected ResourceStore aclStore;
 
     @PostConstruct
@@ -70,7 +70,7 @@ public class UserService implements UserDetailsManager {
         try {
             deleteUser(user.getUsername());
             String id = getId(user.getUsername());
-            aclStore.putResource(id, new UserInfo(user), 0, 
UserInfoSerializer.getInstance());
+            aclStore.putResource(id, new UserInfo(user), 0, SERIALIZER);
             logger.debug("update user : {}", user.getUsername());
         } catch (IOException e) {
             throw new InternalErrorException(e);
@@ -107,7 +107,7 @@ public class UserService implements UserDetailsManager {
     public UserDetails loadUserByUsername(String userName) throws 
UsernameNotFoundException {
         Message msg = MsgPicker.getMsg();
         try {
-            UserInfo userInfo = aclStore.getResource(getId(userName), 
UserInfo.class, UserInfoSerializer.getInstance());
+            UserInfo userInfo = aclStore.getResource(getId(userName), 
UserInfo.class, SERIALIZER);
             if (userInfo == null) {
                 throw new 
UsernameNotFoundException(String.format(msg.getUSER_NOT_FOUND(), userName));
             }
@@ -132,7 +132,7 @@ public class UserService implements UserDetailsManager {
 
     public List<UserDetails> listUsers() throws IOException {
         List<UserDetails> all = new ArrayList<UserDetails>();
-        List<UserInfo> userInfos = aclStore.getAllResources(DIR_PREFIX, 
UserInfo.class, UserInfoSerializer.getInstance());
+        List<UserInfo> userInfos = aclStore.getAllResources(DIR_PREFIX, 
UserInfo.class, SERIALIZER);
         for (UserInfo info : userInfos) {
             all.add(wrap(info));
         }
@@ -154,29 +154,4 @@ public class UserService implements UserDetailsManager {
         return new User(userInfo.getUsername(), userInfo.getPassword(), 
authorities);
     }
 
-    public static class UserInfoSerializer implements Serializer<UserInfo> {
-
-        private static final UserInfoSerializer serializer = new 
UserInfoSerializer();
-
-        private UserInfoSerializer() {
-
-        }
-
-        public static UserInfoSerializer getInstance() {
-            return serializer;
-        }
-
-        @Override
-        public void serialize(UserInfo userInfo, DataOutputStream out) throws 
IOException {
-            String json = JsonUtil.writeValueAsString(userInfo);
-            out.writeUTF(json);
-        }
-
-        @Override
-        public UserInfo deserialize(DataInputStream in) throws IOException {
-            String json = in.readUTF();
-            return JsonUtil.readValue(json, UserInfo.class);
-        }
-    }
-
 }

Reply via email to