http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/server-base/src/main/java/org/apache/kylin/rest/security/MockHTable.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/MockHTable.java b/server-base/src/main/java/org/apache/kylin/rest/security/MockHTable.java index 831b7b4..972eea9 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/security/MockHTable.java +++ b/server-base/src/main/java/org/apache/kylin/rest/security/MockHTable.java @@ -51,6 +51,7 @@ import org.apache.hadoop.hbase.client.Append; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Durability; import org.apache.hadoop.hbase.client.Get; +import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.client.Increment; import org.apache.hadoop.hbase.client.Mutation; import org.apache.hadoop.hbase.client.Put; @@ -59,7 +60,6 @@ import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Row; import org.apache.hadoop.hbase.client.RowMutations; import org.apache.hadoop.hbase.client.Scan; -import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.client.coprocessor.Batch; import org.apache.hadoop.hbase.filter.CompareFilter; import org.apache.hadoop.hbase.filter.Filter; @@ -95,11 +95,9 @@ public class MockHTable implements Table { private final String tableName; private final List<String> columnFamilies = new ArrayList<>(); - private NavigableMap<byte[], NavigableMap<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>>> data = new TreeMap<>( - Bytes.BYTES_COMPARATOR); + private NavigableMap<byte[], NavigableMap<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>>> data = new TreeMap<>(Bytes.BYTES_COMPARATOR); - private static List<KeyValue> toKeyValue(byte[] row, - NavigableMap<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>> rowdata, int maxVersions) { + private static List<KeyValue> toKeyValue(byte[] row, NavigableMap<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>> rowdata, int maxVersions) { return toKeyValue(row, rowdata, 0, Long.MAX_VALUE, maxVersions); } @@ -164,9 +162,7 @@ public class MockHTable implements Table { throw new RuntimeException(this.getClass() + " does NOT implement this method."); } - private static List<KeyValue> toKeyValue(byte[] row, - NavigableMap<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>> rowdata, long timestampStart, - long timestampEnd, int maxVersions) { + private static List<KeyValue> toKeyValue(byte[] row, NavigableMap<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>> rowdata, long timestampStart, long timestampEnd, int maxVersions) { List<KeyValue> ret = new ArrayList<KeyValue>(); for (byte[] family : rowdata.keySet()) for (byte[] qualifier : rowdata.get(family).keySet()) { @@ -241,14 +237,12 @@ public class MockHTable implements Table { } @Override - public <R> void batchCallback(List<? extends Row> actions, Object[] results, Batch.Callback<R> callback) - throws IOException, InterruptedException { + public <R> void batchCallback(List<? extends Row> actions, Object[] results, Batch.Callback<R> callback) throws IOException, InterruptedException { } @Override - public <R> Object[] batchCallback(List<? extends Row> actions, Batch.Callback<R> callback) - throws IOException, InterruptedException { + public <R> Object[] batchCallback(List<? extends Row> actions, Batch.Callback<R> callback) throws IOException, InterruptedException { return new Object[0]; } @@ -273,12 +267,10 @@ public class MockHTable implements Table { for (byte[] qualifier : qualifiers) { if (qualifier == null) qualifier = "".getBytes(); - if (!data.get(row).containsKey(family) || !data.get(row).get(family).containsKey(qualifier) - || data.get(row).get(family).get(qualifier).isEmpty()) + if (!data.get(row).containsKey(family) || !data.get(row).get(family).containsKey(qualifier) || data.get(row).get(family).get(qualifier).isEmpty()) continue; Map.Entry<Long, byte[]> timestampAndValue = data.get(row).get(family).get(qualifier).lastEntry(); - kvs.add(new KeyValue(row, family, qualifier, timestampAndValue.getKey(), - timestampAndValue.getValue())); + kvs.add(new KeyValue(row, family, qualifier, timestampAndValue.getKey(), timestampAndValue.getValue())); } } } @@ -327,8 +319,7 @@ public class MockHTable implements Table { List<KeyValue> kvs = null; if (!scan.hasFamilies()) { - kvs = toKeyValue(row, data.get(row), scan.getTimeRange().getMin(), scan.getTimeRange().getMax(), - scan.getMaxVersions()); + kvs = toKeyValue(row, data.get(row), scan.getTimeRange().getMin(), scan.getTimeRange().getMax(), scan.getMaxVersions()); } else { kvs = new ArrayList<KeyValue>(); for (byte[] family : scan.getFamilyMap().keySet()) { @@ -482,19 +473,16 @@ public class MockHTable implements Table { @Override public void put(Put put) throws IOException { byte[] row = put.getRow(); - NavigableMap<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>> rowData = forceFind(data, row, - new TreeMap<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>>(Bytes.BYTES_COMPARATOR)); + NavigableMap<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>> rowData = forceFind(data, row, new TreeMap<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>>(Bytes.BYTES_COMPARATOR)); for (byte[] family : put.getFamilyMap().keySet()) { if (columnFamilies.contains(new String(family)) == false) { throw new RuntimeException("Not Exists columnFamily : " + new String(family)); } - NavigableMap<byte[], NavigableMap<Long, byte[]>> familyData = forceFind(rowData, family, - new TreeMap<byte[], NavigableMap<Long, byte[]>>(Bytes.BYTES_COMPARATOR)); + NavigableMap<byte[], NavigableMap<Long, byte[]>> familyData = forceFind(rowData, family, new TreeMap<byte[], NavigableMap<Long, byte[]>>(Bytes.BYTES_COMPARATOR)); for (KeyValue kv : put.getFamilyMap().get(family)) { kv.updateLatestStamp(Bytes.toBytes(System.currentTimeMillis())); byte[] qualifier = kv.getQualifier(); - NavigableMap<Long, byte[]> qualifierData = forceFind(familyData, qualifier, - new TreeMap<Long, byte[]>()); + NavigableMap<Long, byte[]> qualifierData = forceFind(familyData, qualifier, new TreeMap<Long, byte[]>()); qualifierData.put(kv.getTimestamp(), kv.getValue()); } } @@ -513,13 +501,9 @@ public class MockHTable implements Table { private boolean check(byte[] row, byte[] family, byte[] qualifier, byte[] value) { if (value == null || value.length == 0) - return !data.containsKey(row) || !data.get(row).containsKey(family) - || !data.get(row).get(family).containsKey(qualifier); + return !data.containsKey(row) || !data.get(row).containsKey(family) || !data.get(row).get(family).containsKey(qualifier); else - return data.containsKey(row) && data.get(row).containsKey(family) - && data.get(row).get(family).containsKey(qualifier) - && !data.get(row).get(family).get(qualifier).isEmpty() - && Arrays.equals(data.get(row).get(family).get(qualifier).lastEntry().getValue(), value); + return data.containsKey(row) && data.get(row).containsKey(family) && data.get(row).get(family).containsKey(qualifier) && !data.get(row).get(family).get(qualifier).isEmpty() && Arrays.equals(data.get(row).get(family).get(qualifier).lastEntry().getValue(), value); } /** @@ -535,8 +519,7 @@ public class MockHTable implements Table { } @Override - public boolean checkAndPut(byte[] bytes, byte[] bytes1, byte[] bytes2, CompareFilter.CompareOp compareOp, - byte[] bytes3, Put put) throws IOException { + public boolean checkAndPut(byte[] bytes, byte[] bytes1, byte[] bytes2, CompareFilter.CompareOp compareOp, byte[] bytes3, Put put) throws IOException { return false; } @@ -589,8 +572,7 @@ public class MockHTable implements Table { * {@inheritDoc} */ @Override - public boolean checkAndDelete(byte[] row, byte[] family, byte[] qualifier, byte[] value, Delete delete) - throws IOException { + public boolean checkAndDelete(byte[] row, byte[] family, byte[] qualifier, byte[] value, Delete delete) throws IOException { if (check(row, family, qualifier, value)) { delete(delete); return true; @@ -599,8 +581,7 @@ public class MockHTable implements Table { } @Override - public boolean checkAndDelete(byte[] bytes, byte[] bytes1, byte[] bytes2, CompareFilter.CompareOp compareOp, - byte[] bytes3, Delete delete) throws IOException { + public boolean checkAndDelete(byte[] bytes, byte[] bytes1, byte[] bytes2, CompareFilter.CompareOp compareOp, byte[] bytes3, Delete delete) throws IOException { return false; } @@ -621,8 +602,7 @@ public class MockHTable implements Table { } @Override - public long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount, Durability durability) - throws IOException { + public long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount, Durability durability) throws IOException { return 0; } @@ -640,15 +620,13 @@ public class MockHTable implements Table { } @Override - public <T extends Service, R> Map<byte[], R> coprocessorService(Class<T> service, byte[] startKey, byte[] endKey, - Batch.Call<T, R> callable) throws ServiceException, Throwable { + public <T extends Service, R> Map<byte[], R> coprocessorService(Class<T> service, byte[] startKey, byte[] endKey, Batch.Call<T, R> callable) throws ServiceException, Throwable { throw new NotImplementedException(); } @Override - public <T extends Service, R> void coprocessorService(Class<T> service, byte[] startKey, byte[] endKey, - Batch.Call<T, R> callable, Batch.Callback<R> callback) throws ServiceException, Throwable { + public <T extends Service, R> void coprocessorService(Class<T> service, byte[] startKey, byte[] endKey, Batch.Call<T, R> callable, Batch.Callback<R> callback) throws ServiceException, Throwable { throw new NotImplementedException(); } @@ -671,24 +649,20 @@ public class MockHTable implements Table { } @Override - public <R extends Message> Map<byte[], R> batchCoprocessorService(Descriptors.MethodDescriptor methodDescriptor, - Message request, byte[] startKey, byte[] endKey, R responsePrototype) throws ServiceException, Throwable { + public <R extends Message> Map<byte[], R> batchCoprocessorService(Descriptors.MethodDescriptor methodDescriptor, Message request, byte[] startKey, byte[] endKey, R responsePrototype) throws ServiceException, Throwable { throw new NotImplementedException(); } @Override - public <R extends Message> void batchCoprocessorService(Descriptors.MethodDescriptor methodDescriptor, - Message request, byte[] startKey, byte[] endKey, R responsePrototype, Batch.Callback<R> callback) - throws ServiceException, Throwable { + public <R extends Message> void batchCoprocessorService(Descriptors.MethodDescriptor methodDescriptor, Message request, byte[] startKey, byte[] endKey, R responsePrototype, Batch.Callback<R> callback) throws ServiceException, Throwable { throw new NotImplementedException(); } //@Override (only since 0.98.8) - public boolean checkAndMutate(byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, - byte[] value, RowMutations mutation) throws IOException { + public boolean checkAndMutate(byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, byte[] value, RowMutations mutation) throws IOException { throw new NotImplementedException(); } -} +} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/server-base/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java b/server-base/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java index 983b2ec..095b74a 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java +++ b/server-base/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java @@ -47,8 +47,7 @@ public class PasswordPlaceholderConfigurer extends PropertyPlaceholderConfigurer /** * thisIsAsecretKey */ - private static byte[] key = { 0x74, 0x68, 0x69, 0x73, 0x49, 0x73, 0x41, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, - 0x65, 0x79 }; + private static byte[] key = { 0x74, 0x68, 0x69, 0x73, 0x49, 0x73, 0x41, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79 }; /** * The PasswordPlaceholderConfigurer will read Kylin properties as the Spring resource @@ -113,8 +112,7 @@ public class PasswordPlaceholderConfigurer extends PropertyPlaceholderConfigurer } private static void printUsage() { - System.out.println( - "Usage: java org.apache.kylin.rest.security.PasswordPlaceholderConfigurer <EncryptMethod> <your_password>"); + System.out.println("Usage: java org.apache.kylin.rest.security.PasswordPlaceholderConfigurer <EncryptMethod> <your_password>"); System.out.println("EncryptMethod: AES or BCrypt"); } http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java b/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java index 6c2f765..98cef3a 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java +++ b/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java @@ -51,8 +51,7 @@ public class RealAclHBaseStorage implements AclHBaseStorage { return aclTableName; } else if (clazz == LegacyUserService.class) { userTableName = tableNameBase + USER_TABLE_NAME; - HBaseConnection.createHTableIfNeeded(hbaseUrl, userTableName, USER_AUTHORITY_FAMILY, - QueryService.USER_QUERY_FAMILY); + HBaseConnection.createHTableIfNeeded(hbaseUrl, userTableName, USER_AUTHORITY_FAMILY, QueryService.USER_QUERY_FAMILY); return userTableName; } else { throw new IllegalStateException("prepareHBaseTable for unknown class: " + clazz); http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/server-base/src/main/java/org/apache/kylin/rest/security/UnauthorisedEntryPoint.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/UnauthorisedEntryPoint.java b/server-base/src/main/java/org/apache/kylin/rest/security/UnauthorisedEntryPoint.java index 06fdb00..253bae3 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/security/UnauthorisedEntryPoint.java +++ b/server-base/src/main/java/org/apache/kylin/rest/security/UnauthorisedEntryPoint.java @@ -37,8 +37,7 @@ import org.springframework.stereotype.Component; @Component(value = "unauthorisedEntryPoint") public class UnauthorisedEntryPoint implements AuthenticationEntryPoint { - public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) - throws IOException, ServletException { + public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException { response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized"); } http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/server-base/src/main/java/org/apache/kylin/rest/service/AccessService.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/AccessService.java b/server-base/src/main/java/org/apache/kylin/rest/service/AccessService.java index 52c539d..9ae372a 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/AccessService.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/AccessService.java @@ -306,8 +306,7 @@ public class AccessService { // Cause there is a circle reference in AccessControlEntry, it needs to // set acl to null as a workaround. for (AccessControlEntry ace : acl.getEntries()) { - accessControlEntities - .add(new AccessEntryResponse(ace.getId(), ace.getSid(), ace.getPermission(), ace.isGranting())); + accessControlEntities.add(new AccessEntryResponse(ace.getId(), ace.getSid(), ace.getPermission(), ace.isGranting())); } return accessControlEntities; @@ -323,8 +322,7 @@ public class AccessService { Message msg = MsgPicker.getMsg(); // Can't revoke admin permission from domain object owner - if (acl.getOwner().equals(acl.getEntries().get(indexOfAce).getSid()) - && BasePermission.ADMINISTRATION.equals(acl.getEntries().get(indexOfAce).getPermission())) { + if (acl.getOwner().equals(acl.getEntries().get(indexOfAce).getSid()) && BasePermission.ADMINISTRATION.equals(acl.getEntries().get(indexOfAce).getPermission())) { throw new ForbiddenException(msg.getREVOKE_ADMIN_PERMISSION()); } } http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/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 5bbfe83..6292c00 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 @@ -107,8 +107,7 @@ 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, AclRecordSerializer.getInstance()); for (AclRecord record : allAclRecords) { DomainObjectInfo parent = record.getParentDomainObjectInfo(); if (parent != null && parent.getId().equals(String.valueOf(parentIdentity.getIdentifier()))) { @@ -149,13 +148,10 @@ 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, AclRecordSerializer.getInstance()); if (record != null) { SidInfo owner = record.getOwnerInfo(); - Sid ownerSid = (null == owner) ? null - : (owner.isPrincipal() ? new PrincipalSid(owner.getSid()) - : new GrantedAuthoritySid(owner.getSid())); + Sid ownerSid = (null == owner) ? null : (owner.isPrincipal() ? new PrincipalSid(owner.getSid()) : new GrantedAuthoritySid(owner.getSid())); boolean entriesInheriting = record.isEntriesInheriting(); Acl parentAcl = null; @@ -165,8 +161,7 @@ public class AclService implements MutableAclService { parentAcl = readAclById(parentObject, null); } - AclImpl acl = new AclImpl(oid, oid.getIdentifier(), aclAuthorizationStrategy, - permissionGrantingStrategy, parentAcl, null, entriesInheriting, ownerSid); + AclImpl acl = new AclImpl(oid, oid.getIdentifier(), aclAuthorizationStrategy, permissionGrantingStrategy, parentAcl, null, entriesInheriting, ownerSid); genAces(sids, record, acl); aclMaps.put(oid, acl); @@ -196,8 +191,7 @@ 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, AclRecordSerializer.getInstance()); logger.debug("ACL of " + objectIdentity + " created successfully."); } catch (IOException e) { throw new InternalErrorException(e); @@ -263,8 +257,7 @@ public class AclService implements MutableAclService { return (MutableAcl) readAclById(mutableAcl.getObjectIdentity()); } - protected void genAces(List<Sid> sids, AclRecord record, AclImpl acl) - throws JsonParseException, JsonMappingException, IOException { + protected void genAces(List<Sid> sids, AclRecord record, AclImpl acl) throws JsonParseException, JsonMappingException, IOException { List<AceInfo> aceInfos = new ArrayList<AceInfo>(); Map<String, AceInfo> allAceInfos = record.getAllAceInfo(); if (allAceInfos != null) { @@ -294,10 +287,8 @@ public class AclService implements MutableAclService { AceInfo aceInfo = aceInfos.get(i); if (null != aceInfo) { - Sid sid = aceInfo.getSidInfo().isPrincipal() ? new PrincipalSid(aceInfo.getSidInfo().getSid()) - : new GrantedAuthoritySid(aceInfo.getSidInfo().getSid()); - AccessControlEntry ace = new AccessControlEntryImpl(Long.valueOf(i), acl, sid, - aclPermissionFactory.buildFromMask(aceInfo.getPermissionMask()), true, false, false); + Sid sid = aceInfo.getSidInfo().isPrincipal() ? new PrincipalSid(aceInfo.getSidInfo().getSid()) : new GrantedAuthoritySid(aceInfo.getSidInfo().getSid()); + AccessControlEntry ace = new AccessControlEntryImpl(Long.valueOf(i), acl, sid, aclPermissionFactory.buildFromMask(aceInfo.getPermissionMask()), true, false, false); newAces.add(ace); } } @@ -365,8 +356,7 @@ class AclRecord extends RootPersistentEntity { public AclRecord() { } - public AclRecord(DomainObjectInfo domainObjectInfo, DomainObjectInfo parentDomainObjectInfo, SidInfo ownerInfo, - boolean entriesInheriting, Map<String, AceInfo> allAceInfo) { + public AclRecord(DomainObjectInfo domainObjectInfo, DomainObjectInfo parentDomainObjectInfo, SidInfo ownerInfo, boolean entriesInheriting, Map<String, AceInfo> allAceInfo) { this.domainObjectInfo = domainObjectInfo; this.parentDomainObjectInfo = parentDomainObjectInfo; this.ownerInfo = ownerInfo; http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/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 4aeb450..d88ca74 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 @@ -54,13 +54,11 @@ public class AclTableMigrationTool { private static final Serializer<SidInfo> sidSerializer = new Serializer<SidInfo>(SidInfo.class); - private static final Serializer<DomainObjectInfo> domainObjSerializer = new Serializer<DomainObjectInfo>( - DomainObjectInfo.class); + private static final Serializer<DomainObjectInfo> domainObjSerializer = new Serializer<DomainObjectInfo>(DomainObjectInfo.class); private static final Serializer<AceInfo> aceSerializer = new Serializer<AceInfo>(AceInfo.class); - private static final Serializer<UserGrantedAuthority[]> ugaSerializer = new Serializer<UserGrantedAuthority[]>( - UserGrantedAuthority[].class); + private static final Serializer<UserGrantedAuthority[]> ugaSerializer = new Serializer<UserGrantedAuthority[]>(UserGrantedAuthority[].class); public static final String MIGRATE_OK_PREFIX = AclService.DIR_PREFIX + "MIGRATE_OK_"; @@ -72,8 +70,7 @@ public class AclTableMigrationTool { return; } else { if (!kylinConfig.getServerMode().equals("all")) { - throw new IllegalStateException( - "Please make sure that you have config kylin.server.mode=all before migrating data"); + throw new IllegalStateException("Please make sure that you have config kylin.server.mode=all before migrating data"); } logger.info("Start to migrate acl table data"); ResourceStore store = ResourceStore.getStore(kylinConfig); @@ -132,8 +129,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.AclRecordSerializer.getInstance()); result = rs.next(); } } @@ -152,8 +148,7 @@ 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.UserInfoSerializer.getInstance()); result = rs.next(); } } @@ -176,8 +171,7 @@ public class AclTableMigrationTool { return store.exists(MIGRATE_OK_PREFIX + tableName); } - private void convertToResourceStore(KylinConfig kylinConfig, String tableName, ResourceStore store, - ResultConverter converter) throws IOException { + private void convertToResourceStore(KylinConfig kylinConfig, String tableName, ResourceStore store, ResultConverter converter) throws IOException { Table table = null; ResultScanner rs = null; @@ -186,8 +180,7 @@ public class AclTableMigrationTool { table = HBaseConnection.get(kylinConfig.getStorageUrl()).getTable(TableName.valueOf(tableName)); rs = table.getScanner(scan); converter.convertResult(rs, store); - store.putResource(MIGRATE_OK_PREFIX + tableName, new StringEntity(tableName + " migrated"), - StringEntity.serializer); + store.putResource(MIGRATE_OK_PREFIX + tableName, new StringEntity(tableName + " migrated"), StringEntity.serializer); } finally { IOUtils.closeQuietly(rs); IOUtils.closeQuietly(table); @@ -196,8 +189,7 @@ public class AclTableMigrationTool { } private DomainObjectInfo getDomainObjectInfoFromRs(Result result) { - String type = String.valueOf(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), - Bytes.toBytes(LegacyAclService.ACL_INFO_FAMILY_TYPE_COLUMN))); + String type = String.valueOf(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(LegacyAclService.ACL_INFO_FAMILY_TYPE_COLUMN))); String id = String.valueOf(result.getRow()); DomainObjectInfo newInfo = new DomainObjectInfo(); newInfo.setId(id); @@ -206,21 +198,17 @@ public class AclTableMigrationTool { } private DomainObjectInfo getParentDomainObjectInfoFromRs(Result result) throws IOException { - DomainObjectInfo parentInfo = domainObjSerializer - .deserialize(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), - Bytes.toBytes(LegacyAclService.ACL_INFO_FAMILY_PARENT_COLUMN))); + DomainObjectInfo parentInfo = domainObjSerializer.deserialize(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(LegacyAclService.ACL_INFO_FAMILY_PARENT_COLUMN))); return parentInfo; } private boolean getInheriting(Result result) { - boolean entriesInheriting = Bytes.toBoolean(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), - Bytes.toBytes(LegacyAclService.ACL_INFO_FAMILY_ENTRY_INHERIT_COLUMN))); + boolean entriesInheriting = Bytes.toBoolean(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(LegacyAclService.ACL_INFO_FAMILY_ENTRY_INHERIT_COLUMN))); return entriesInheriting; } private SidInfo getOwnerSidInfo(Result result) throws IOException { - SidInfo owner = sidSerializer.deserialize(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), - Bytes.toBytes(LegacyAclService.ACL_INFO_FAMILY_OWNER_COLUMN))); + SidInfo owner = sidSerializer.deserialize(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(LegacyAclService.ACL_INFO_FAMILY_OWNER_COLUMN))); return owner; } @@ -257,8 +245,7 @@ public class AclTableMigrationTool { String username = Bytes.toString(result.getRow()); - byte[] valueBytes = result.getValue(Bytes.toBytes(AclHBaseStorage.USER_AUTHORITY_FAMILY), - Bytes.toBytes(AclHBaseStorage.USER_AUTHORITY_COLUMN)); + byte[] valueBytes = result.getValue(Bytes.toBytes(AclHBaseStorage.USER_AUTHORITY_FAMILY), Bytes.toBytes(AclHBaseStorage.USER_AUTHORITY_COLUMN)); UserGrantedAuthority[] deserialized = ugaSerializer.deserialize(valueBytes); String password = ""; http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/server-base/src/main/java/org/apache/kylin/rest/service/BadQueryDetector.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/BadQueryDetector.java b/server-base/src/main/java/org/apache/kylin/rest/service/BadQueryDetector.java index 3e4bf01..64f91b1 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/BadQueryDetector.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/BadQueryDetector.java @@ -95,8 +95,7 @@ public class BadQueryDetector extends Thread { notifiers.add(notifier); } - private void notify(String adj, float runningSec, long startTime, String project, String sql, String user, - Thread t) { + private void notify(String adj, float runningSec, long startTime, String project, String sql, String user, Thread t) { for (Notifier notifier : notifiers) { try { notifier.badQueryFound(adj, runningSec, startTime, project, sql, user, t); @@ -141,8 +140,7 @@ public class BadQueryDetector extends Thread { for (Entry e : entries) { float runningSec = (float) (now - e.startTime) / 1000; if (runningSec >= alertRunningSec) { - notify("Slow", runningSec, e.startTime, e.sqlRequest.getProject(), e.sqlRequest.getSql(), e.user, - e.thread); + notify("Slow", runningSec, e.startTime, e.sqlRequest.getProject(), e.sqlRequest.getSql(), e.user, e.thread); dumpStackTrace(e.thread); } else { break; // entries are sorted by startTime @@ -173,16 +171,13 @@ public class BadQueryDetector extends Thread { } public interface Notifier { - void badQueryFound(String adj, float runningSec, long startTime, String project, String sql, String user, - Thread t); + void badQueryFound(String adj, float runningSec, long startTime, String project, String sql, String user, Thread t); } private class LoggerNotifier implements Notifier { @Override - public void badQueryFound(String adj, float runningSec, long startTime, String project, String sql, String user, - Thread t) { - logger.info("{} query has been running {} seconds (project:{}, thread: 0x{}, user:{}) -- {}", adj, - runningSec, project, Long.toHexString(t.getId()), user, sql); + public void badQueryFound(String adj, float runningSec, long startTime, String project, String sql, String user, Thread t) { + logger.info("{} query has been running {} seconds (project:{}, thread: 0x{}, user:{}) -- {}", adj, runningSec, project, Long.toHexString(t.getId()), user, sql); } } @@ -212,23 +207,18 @@ public class BadQueryDetector extends Thread { } @Override - public void badQueryFound(String adj, float runningSec, long startTime, String project, String sql, String user, - Thread t) { + public void badQueryFound(String adj, float runningSec, long startTime, String project, String sql, String user, Thread t) { try { long cachingSeconds = (kylinConfig.getBadQueryDefaultAlertingSeconds() + 1) * 30L; Pair<Long, String> sqlPair = new Pair<>(startTime, sql); if (!cacheQueue.contains(sqlPair)) { - badQueryManager.addEntryToProject(sql, startTime, adj, runningSec, serverHostname, t.getName(), - user, project); + badQueryManager.addEntryToProject(sql, startTime, adj, runningSec, serverHostname, t.getName(), user, project); cacheQueue.add(sqlPair); - while (!cacheQueue.isEmpty() - && (System.currentTimeMillis() - cacheQueue.first().getFirst() > cachingSeconds * 1000 - || cacheQueue.size() > kylinConfig.getBadQueryHistoryNum() * 3)) { + while (!cacheQueue.isEmpty() && (System.currentTimeMillis() - cacheQueue.first().getFirst() > cachingSeconds * 1000 || cacheQueue.size() > kylinConfig.getBadQueryHistoryNum() * 3)) { cacheQueue.pollFirst(); } } else { - badQueryManager.updateEntryToProject(sql, startTime, adj, runningSec, serverHostname, t.getName(), - user, project); + badQueryManager.updateEntryToProject(sql, startTime, adj, runningSec, serverHostname, t.getName(), user, project); } } catch (IOException e) { logger.error("Error in bad query persistence.", e); http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/server-base/src/main/java/org/apache/kylin/rest/service/CacheService.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/CacheService.java b/server-base/src/main/java/org/apache/kylin/rest/service/CacheService.java index 47033b3..96b34ed 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/CacheService.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/CacheService.java @@ -70,8 +70,7 @@ public class CacheService extends BasicService { } @Override - public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) - throws IOException { + public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { if ("cube".equals(entity) && event == Event.UPDATE) { final String cubeName = cacheKey; new Thread() { // do not block the event broadcast thread http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java b/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java index c04eef0..22baabe 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java @@ -114,8 +114,7 @@ public class CubeService extends BasicService { if (modelName != null) { for (CubeInstance cubeInstance : cubeInstances) { - boolean isCubeMatch = cubeInstance.getDescriptor().getModelName().toLowerCase() - .equals(modelName.toLowerCase()); + boolean isCubeMatch = cubeInstance.getDescriptor().getModelName().toLowerCase().equals(modelName.toLowerCase()); if (isCubeMatch) { filterModelCubes.add(cubeInstance); } @@ -126,8 +125,7 @@ public class CubeService extends BasicService { List<CubeInstance> filterCubes = new ArrayList<CubeInstance>(); for (CubeInstance cubeInstance : filterModelCubes) { - boolean isCubeMatch = (null == cubeName) - || cubeInstance.getName().toLowerCase().contains(cubeName.toLowerCase()); + boolean isCubeMatch = (null == cubeName) || cubeInstance.getName().toLowerCase().contains(cubeName.toLowerCase()); if (isCubeMatch) { filterCubes.add(cubeInstance); @@ -137,8 +135,7 @@ public class CubeService extends BasicService { return filterCubes; } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'MANAGEMENT')") + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'MANAGEMENT')") public CubeInstance updateCubeCost(CubeInstance cube, int cost) throws IOException { if (cube.getCost() == cost) { @@ -226,8 +223,7 @@ public class CubeService extends BasicService { if (projectDataModel.getType() == RealizationType.CUBE) { CubeInstance cube = getCubeManager().getCube(projectDataModel.getRealization()); if (cube == null) { - logger.error("Project " + projectName + " contains realization " + projectDataModel.getRealization() - + " which is not found by CubeManager"); + logger.error("Project " + projectName + " contains realization " + projectDataModel.getRealization() + " which is not found by CubeManager"); continue; } if (cube.equals(target)) { @@ -238,14 +234,11 @@ public class CubeService extends BasicService { return false; } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'MANAGEMENT')") - public CubeDesc updateCubeAndDesc(CubeInstance cube, CubeDesc desc, String newProjectName, boolean forceUpdate) - throws IOException { + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'MANAGEMENT')") + public CubeDesc updateCubeAndDesc(CubeInstance cube, CubeDesc desc, String newProjectName, boolean forceUpdate) throws IOException { Message msg = MsgPicker.getMsg(); - final List<CubingJob> cubingJobs = jobService.listAllCubingJobs(cube.getName(), null, - EnumSet.of(ExecutableState.READY, ExecutableState.RUNNING)); + final List<CubingJob> cubingJobs = jobService.listAllCubingJobs(cube.getName(), null, EnumSet.of(ExecutableState.READY, ExecutableState.RUNNING)); if (!cubingJobs.isEmpty()) { throw new BadRequestException(String.format(msg.getDISCARD_JOB_FIRST(), cube.getName())); } @@ -264,21 +257,18 @@ public class CubeService extends BasicService { ProjectManager projectManager = getProjectManager(); if (!isCubeInProject(newProjectName, cube)) { String owner = SecurityContextHolder.getContext().getAuthentication().getName(); - ProjectInstance newProject = projectManager.moveRealizationToProject(RealizationType.CUBE, cube.getName(), - newProjectName, owner); + ProjectInstance newProject = projectManager.moveRealizationToProject(RealizationType.CUBE, cube.getName(), newProjectName, owner); accessService.inherit(cube, newProject); } return updatedCubeDesc; } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'MANAGEMENT')") + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'MANAGEMENT')") public void deleteCube(CubeInstance cube) throws IOException { Message msg = MsgPicker.getMsg(); - final List<CubingJob> cubingJobs = jobService.listAllCubingJobs(cube.getName(), null, - EnumSet.of(ExecutableState.READY, ExecutableState.RUNNING, ExecutableState.ERROR)); + final List<CubingJob> cubingJobs = jobService.listAllCubingJobs(cube.getName(), null, EnumSet.of(ExecutableState.READY, ExecutableState.RUNNING, ExecutableState.ERROR)); if (!cubingJobs.isEmpty()) { throw new BadRequestException(String.format(msg.getDISCARD_JOB_FIRST(), cube.getName())); } @@ -303,8 +293,7 @@ public class CubeService extends BasicService { * @throws IOException * @throws JobException */ - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')") + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')") public CubeInstance purgeCube(CubeInstance cube) throws IOException { Message msg = MsgPicker.getMsg(); @@ -326,8 +315,7 @@ public class CubeService extends BasicService { * @throws IOException * @throws JobException */ - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')") + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')") public CubeInstance disableCube(CubeInstance cube) throws IOException { Message msg = MsgPicker.getMsg(); @@ -356,8 +344,7 @@ public class CubeService extends BasicService { * @return * @throws IOException */ - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')") + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')") public CubeInstance enableCube(CubeInstance cube) throws IOException { Message msg = MsgPicker.getMsg(); @@ -372,14 +359,12 @@ public class CubeService extends BasicService { throw new BadRequestException(String.format(msg.getNO_READY_SEGMENT(), cubeName)); } - final List<CubingJob> cubingJobs = jobService.listAllCubingJobs(cube.getName(), null, - EnumSet.of(ExecutableState.READY, ExecutableState.RUNNING)); + final List<CubingJob> cubingJobs = jobService.listAllCubingJobs(cube.getName(), null, EnumSet.of(ExecutableState.READY, ExecutableState.RUNNING)); if (!cubingJobs.isEmpty()) { throw new BadRequestException(msg.getENABLE_WITH_RUNNING_JOB()); } if (!cube.getDescriptor().checkSignature()) { - throw new BadRequestException( - String.format(msg.getINCONSISTENT_CUBE_DESC_SIGNATURE(), cube.getDescriptor())); + throw new BadRequestException(String.format(msg.getINCONSISTENT_CUBE_DESC_SIGNATURE(), cube.getDescriptor())); } try { @@ -409,8 +394,7 @@ public class CubeService extends BasicService { } } - metrics.increase("aveStorage", - (metrics.get("totalCubes") == 0) ? 0 : metrics.get("totalStorage") / metrics.get("totalCubes")); + metrics.increase("aveStorage", (metrics.get("totalCubes") == 0) ? 0 : metrics.get("totalStorage") / metrics.get("totalCubes")); return metrics; } @@ -451,31 +435,26 @@ public class CubeService extends BasicService { return hr; } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')") + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')") public void updateCubeNotifyList(CubeInstance cube, List<String> notifyList) throws IOException { CubeDesc desc = cube.getDescriptor(); desc.setNotifyList(notifyList); getCubeDescManager().updateCubeDesc(desc); } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')") - public CubeInstance rebuildLookupSnapshot(CubeInstance cube, String segmentName, String lookupTable) - throws IOException { + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')") + public CubeInstance rebuildLookupSnapshot(CubeInstance cube, String segmentName, String lookupTable) throws IOException { CubeSegment seg = cube.getSegment(segmentName, SegmentStatusEnum.READY); getCubeManager().buildSnapshotTable(seg, lookupTable); return cube; } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')") + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')") public CubeInstance deleteSegment(CubeInstance cube, String segmentName) throws IOException { Message msg = MsgPicker.getMsg(); - if (!segmentName.equals(cube.getSegments().get(0).getName()) - && !segmentName.equals(cube.getSegments().get(cube.getSegments().size() - 1).getName())) { + if (!segmentName.equals(cube.getSegments().get(0).getName()) && !segmentName.equals(cube.getSegments().get(cube.getSegments().size() - 1).getName())) { throw new BadRequestException(String.format(msg.getDELETE_NOT_FIRST_LAST_SEG(), segmentName)); } CubeSegment toDelete = null; @@ -525,8 +504,7 @@ public class CubeService extends BasicService { public void updateOnNewSegmentReady(String cubeName) { final KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv(); String serverMode = kylinConfig.getServerMode(); - if (Constant.SERVER_MODE_JOB.equals(serverMode.toLowerCase()) - || Constant.SERVER_MODE_ALL.equals(serverMode.toLowerCase())) { + if (Constant.SERVER_MODE_JOB.equals(serverMode.toLowerCase()) || Constant.SERVER_MODE_ALL.equals(serverMode.toLowerCase())) { CubeInstance cube = getCubeManager().getCube(cubeName); if (cube != null) { CubeSegment seg = cube.getLatestBuiltSegment(); @@ -584,8 +562,7 @@ public class CubeService extends BasicService { cube = getCubeManager().getCube(cubeName); Pair<Long, Long> offsets = getCubeManager().autoMergeCubeSegments(cube); if (offsets != null) { - CubeSegment newSeg = getCubeManager().mergeSegments(cube, 0, 0, offsets.getFirst(), - offsets.getSecond(), true); + CubeSegment newSeg = getCubeManager().mergeSegments(cube, 0, 0, offsets.getFirst(), offsets.getSecond(), true); logger.debug("Will submit merge job on " + newSeg); DefaultChainedExecutable job = EngineFactory.createBatchMergeJob(newSeg, "SYSTEM"); getExecutableManager().addJob(job); http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/server-base/src/main/java/org/apache/kylin/rest/service/DiagnosisService.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/DiagnosisService.java b/server-base/src/main/java/org/apache/kylin/rest/service/DiagnosisService.java index 2067b34..35b018c 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/DiagnosisService.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/DiagnosisService.java @@ -52,8 +52,7 @@ public class DiagnosisService extends BasicService { File[] files = destDir.listFiles(); if (files == null) { - throw new BadRequestException( - String.format(msg.getDIAG_PACKAGE_NOT_AVAILABLE(), destDir.getAbsolutePath())); + throw new BadRequestException(String.format(msg.getDIAG_PACKAGE_NOT_AVAILABLE(), destDir.getAbsolutePath())); } for (File subDir : files) { if (subDir.isDirectory()) { http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/server-base/src/main/java/org/apache/kylin/rest/service/DomainObjectInfo.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/DomainObjectInfo.java b/server-base/src/main/java/org/apache/kylin/rest/service/DomainObjectInfo.java index 524a426..f07a65e 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/DomainObjectInfo.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/DomainObjectInfo.java @@ -20,6 +20,7 @@ package org.apache.kylin.rest.service; import org.springframework.security.acls.model.ObjectIdentity; + class DomainObjectInfo { private String id; private String type; http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/server-base/src/main/java/org/apache/kylin/rest/service/EncodingService.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/EncodingService.java b/server-base/src/main/java/org/apache/kylin/rest/service/EncodingService.java index 9eccddc..f3742de 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/EncodingService.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/EncodingService.java @@ -42,16 +42,13 @@ public class EncodingService extends BasicService { Message msg = MsgPicker.getMsg(); if (dataType.isIntegerFamily()) { - return Lists.newArrayList(BooleanDimEnc.ENCODING_NAME, DateDimEnc.ENCODING_NAME, TimeDimEnc.ENCODING_NAME, - DictionaryDimEnc.ENCODING_NAME, IntegerDimEnc.ENCODING_NAME); + return Lists.newArrayList(BooleanDimEnc.ENCODING_NAME, DateDimEnc.ENCODING_NAME, TimeDimEnc.ENCODING_NAME, DictionaryDimEnc.ENCODING_NAME, IntegerDimEnc.ENCODING_NAME); } else if (dataType.isNumberFamily()) { //numbers include integers return Lists.newArrayList(DictionaryDimEnc.ENCODING_NAME); } else if (dataType.isDateTimeFamily()) { - return Lists.newArrayList(DateDimEnc.ENCODING_NAME, TimeDimEnc.ENCODING_NAME, - DictionaryDimEnc.ENCODING_NAME); + return Lists.newArrayList(DateDimEnc.ENCODING_NAME, TimeDimEnc.ENCODING_NAME, DictionaryDimEnc.ENCODING_NAME); } else if (dataType.isStringFamily()) { - return Lists.newArrayList(BooleanDimEnc.ENCODING_NAME, DictionaryDimEnc.ENCODING_NAME, - FixedLenDimEnc.ENCODING_NAME, // + return Lists.newArrayList(BooleanDimEnc.ENCODING_NAME, DictionaryDimEnc.ENCODING_NAME, FixedLenDimEnc.ENCODING_NAME, // FixedLenHexDimEnc.ENCODING_NAME, IntegerDimEnc.ENCODING_NAME); } else { throw new BadRequestException(String.format(msg.getVALID_ENCODING_NOT_AVAILABLE(), dataType)); http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/server-base/src/main/java/org/apache/kylin/rest/service/HybridService.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/HybridService.java b/server-base/src/main/java/org/apache/kylin/rest/service/HybridService.java index 5b1ba2d..acb82b5 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/HybridService.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/HybridService.java @@ -42,8 +42,7 @@ public class HybridService extends BasicService { private static final Logger logger = LoggerFactory.getLogger(HybridService.class); @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or " + Constant.ACCESS_HAS_ROLE_MODELER) - public HybridInstance createHybridCube(String hybridName, String projectName, String modelName, - String[] cubeNames) { + public HybridInstance createHybridCube(String hybridName, String projectName, String modelName, String[] cubeNames) { List<String> args = new ArrayList<String>(); args.add("-name"); args.add(hybridName); @@ -64,10 +63,8 @@ public class HybridService extends BasicService { return getHybridInstance(hybridName); } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'MANAGEMENT')") - public HybridInstance updateHybridCube(String hybridName, String projectName, String modelName, - String[] cubeNames) { + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'MANAGEMENT')") + public HybridInstance updateHybridCube(String hybridName, String projectName, String modelName, String[] cubeNames) { List<String> args = new ArrayList<String>(); args.add("-name"); args.add(hybridName); @@ -88,8 +85,7 @@ public class HybridService extends BasicService { return getHybridInstance(hybridName); } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'MANAGEMENT')") + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'MANAGEMENT')") public void deleteHybridCube(String hybridName, String projectName, String modelName) { List<String> args = new ArrayList<String>(); args.add("-name"); http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java b/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java index 4741a24..056f7b1 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java @@ -107,8 +107,7 @@ public class JobService extends BasicService implements InitializingBean { TimeZone.setDefault(tzone); final KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv(); - final Scheduler<AbstractExecutable> scheduler = (Scheduler<AbstractExecutable>) SchedulerFactory - .scheduler(kylinConfig.getSchedulerType()); + final Scheduler<AbstractExecutable> scheduler = (Scheduler<AbstractExecutable>) SchedulerFactory.scheduler(kylinConfig.getSchedulerType()); jobLock = (JobLock) ClassUtil.newInstance(kylinConfig.getJobControllerLock()); @@ -155,22 +154,22 @@ public class JobService extends BasicService implements InitializingBean { Message msg = MsgPicker.getMsg(); switch (status) { - case DISCARDED: - return ExecutableState.DISCARDED; - case ERROR: - return ExecutableState.ERROR; - case FINISHED: - return ExecutableState.SUCCEED; - case NEW: - return ExecutableState.READY; - case PENDING: - return ExecutableState.READY; - case RUNNING: - return ExecutableState.RUNNING; - case STOPPED: - return ExecutableState.STOPPED; - default: - throw new BadRequestException(String.format(msg.getILLEGAL_EXECUTABLE_STATE(), status)); + case DISCARDED: + return ExecutableState.DISCARDED; + case ERROR: + return ExecutableState.ERROR; + case FINISHED: + return ExecutableState.SUCCEED; + case NEW: + return ExecutableState.READY; + case PENDING: + return ExecutableState.READY; + case RUNNING: + return ExecutableState.RUNNING; + case STOPPED: + return ExecutableState.STOPPED; + default: + throw new BadRequestException(String.format(msg.getILLEGAL_EXECUTABLE_STATE(), status)); } } @@ -178,30 +177,28 @@ public class JobService extends BasicService implements InitializingBean { Message msg = MsgPicker.getMsg(); switch (timeFilter) { - case LAST_ONE_DAY: - calendar.add(Calendar.DAY_OF_MONTH, -1); - return calendar.getTimeInMillis(); - case LAST_ONE_WEEK: - calendar.add(Calendar.WEEK_OF_MONTH, -1); - return calendar.getTimeInMillis(); - case LAST_ONE_MONTH: - calendar.add(Calendar.MONTH, -1); - return calendar.getTimeInMillis(); - case LAST_ONE_YEAR: - calendar.add(Calendar.YEAR, -1); - return calendar.getTimeInMillis(); - case ALL: - return 0; - default: - throw new BadRequestException(String.format(msg.getILLEGAL_TIME_FILTER(), timeFilter)); + case LAST_ONE_DAY: + calendar.add(Calendar.DAY_OF_MONTH, -1); + return calendar.getTimeInMillis(); + case LAST_ONE_WEEK: + calendar.add(Calendar.WEEK_OF_MONTH, -1); + return calendar.getTimeInMillis(); + case LAST_ONE_MONTH: + calendar.add(Calendar.MONTH, -1); + return calendar.getTimeInMillis(); + case LAST_ONE_YEAR: + calendar.add(Calendar.YEAR, -1); + return calendar.getTimeInMillis(); + case ALL: + return 0; + default: + throw new BadRequestException(String.format(msg.getILLEGAL_TIME_FILTER(), timeFilter)); } } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')") + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')") public JobInstance submitJob(CubeInstance cube, long startDate, long endDate, long startOffset, long endOffset, // - Map<Integer, Long> sourcePartitionOffsetStart, Map<Integer, Long> sourcePartitionOffsetEnd, - CubeBuildTypeEnum buildType, boolean force, String submitter) throws IOException { + Map<Integer, Long> sourcePartitionOffsetStart, Map<Integer, Long> sourcePartitionOffsetEnd, CubeBuildTypeEnum buildType, boolean force, String submitter) throws IOException { Message msg = MsgPicker.getMsg(); if (cube.getStatus() == RealizationStatusEnum.DESCBROKEN) { @@ -215,8 +212,7 @@ public class JobService extends BasicService implements InitializingBean { try { if (buildType == CubeBuildTypeEnum.BUILD) { ISource source = SourceFactory.getSource(cube); - SourcePartition sourcePartition = new SourcePartition(startDate, endDate, startOffset, endOffset, - sourcePartitionOffsetStart, sourcePartitionOffsetEnd); + SourcePartition sourcePartition = new SourcePartition(startDate, endDate, startOffset, endOffset, sourcePartitionOffsetStart, sourcePartitionOffsetEnd); sourcePartition = source.enrichSourcePartitionBeforeBuild(cube, sourcePartition); newSeg = getCubeManager().appendSegment(cube, sourcePartition); job = EngineFactory.createBatchCubingJob(newSeg, submitter); @@ -234,8 +230,7 @@ public class JobService extends BasicService implements InitializingBean { } catch (Exception e) { if (newSeg != null) { - logger.error("Job submission might failed for NEW segment {}, will clean the NEW segment from cube", - newSeg.getName()); + logger.error("Job submission might failed for NEW segment {}, will clean the NEW segment from cube", newSeg.getName()); try { // Remove this segments CubeUpdate cubeBuilder = new CubeUpdate(cube); @@ -261,8 +256,7 @@ public class JobService extends BasicService implements InitializingBean { Message msg = MsgPicker.getMsg(); if (!cube.getDescriptor().checkSignature()) - throw new BadRequestException( - String.format(msg.getINCONSISTENT_CUBE_DESC_SIGNATURE(), cube.getDescriptor())); + throw new BadRequestException(String.format(msg.getINCONSISTENT_CUBE_DESC_SIGNATURE(), cube.getDescriptor())); } public JobInstance getJobInstance(String uuid) { @@ -302,20 +296,17 @@ public class JobService extends BasicService implements InitializingBean { return result; } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#job, 'ADMINISTRATION') or hasPermission(#job, 'OPERATION') or hasPermission(#job, 'MANAGEMENT')") + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#job, 'ADMINISTRATION') or hasPermission(#job, 'OPERATION') or hasPermission(#job, 'MANAGEMENT')") public void resumeJob(JobInstance job) { getExecutableManager().resumeJob(job.getId()); } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#job, 'ADMINISTRATION') or hasPermission(#job, 'OPERATION') or hasPermission(#job, 'MANAGEMENT')") + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#job, 'ADMINISTRATION') or hasPermission(#job, 'OPERATION') or hasPermission(#job, 'MANAGEMENT')") public void rollbackJob(JobInstance job, String stepId) { getExecutableManager().rollbackJob(job.getId(), stepId); } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#job, 'ADMINISTRATION') or hasPermission(#job, 'OPERATION') or hasPermission(#job, 'MANAGEMENT')") + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#job, 'ADMINISTRATION') or hasPermission(#job, 'OPERATION') or hasPermission(#job, 'MANAGEMENT')") public JobInstance cancelJob(JobInstance job) throws IOException { if (null == job.getRelatedCube() || null == getCubeManager().getCube(job.getRelatedCube())) { getExecutableManager().discardJob(job.getId()); @@ -338,15 +329,13 @@ public class JobService extends BasicService implements InitializingBean { return job; } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#job, 'ADMINISTRATION') or hasPermission(#job, 'OPERATION') or hasPermission(#job, 'MANAGEMENT')") + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#job, 'ADMINISTRATION') or hasPermission(#job, 'OPERATION') or hasPermission(#job, 'MANAGEMENT')") public JobInstance pauseJob(JobInstance job) { getExecutableManager().pauseJob(job.getId()); return job; } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#job, 'ADMINISTRATION') or hasPermission(#job, 'OPERATION') or hasPermission(#job, 'MANAGEMENT')") + @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#job, 'ADMINISTRATION') or hasPermission(#job, 'OPERATION') or hasPermission(#job, 'MANAGEMENT')") public void dropJob(JobInstance job) throws IOException { cancelJob(job); getExecutableManager().deleteJob(job.getId()); @@ -356,9 +345,7 @@ public class JobService extends BasicService implements InitializingBean { * currently only support substring match * @return */ - public List<JobInstance> searchJobs(final String cubeNameSubstring, final String projectName, - final List<JobStatusEnum> statusList, final Integer limitValue, final Integer offsetValue, - final JobTimeFilterEnum timeFilter) { + public List<JobInstance> searchJobs(final String cubeNameSubstring, final String projectName, final List<JobStatusEnum> statusList, final Integer limitValue, final Integer offsetValue, final JobTimeFilterEnum timeFilter) { Integer limit = (null == limitValue) ? 30 : limitValue; Integer offset = (null == offsetValue) ? 0 : offsetValue; List<JobInstance> jobs = searchJobs(cubeNameSubstring, projectName, statusList, timeFilter); @@ -375,8 +362,7 @@ public class JobService extends BasicService implements InitializingBean { return jobs.subList(offset, offset + limit); } - public List<JobInstance> searchJobs(final String cubeNameSubstring, final String projectName, - final List<JobStatusEnum> statusList, final JobTimeFilterEnum timeFilter) { + public List<JobInstance> searchJobs(final String cubeNameSubstring, final String projectName, final List<JobStatusEnum> statusList, final JobTimeFilterEnum timeFilter) { Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); long timeStartInMillis = getTimeStartInMillis(calendar, timeFilter); @@ -384,81 +370,69 @@ public class JobService extends BasicService implements InitializingBean { long timeEndInMillis = Long.MAX_VALUE; Set<ExecutableState> states = convertStatusEnumToStates(statusList); final Map<String, Output> allOutputs = getExecutableManager().getAllOutputs(timeStartInMillis, timeEndInMillis); - return Lists - .newArrayList( - FluentIterable - .from(searchCubingJobs(cubeNameSubstring, projectName, states, timeStartInMillis, - timeEndInMillis, allOutputs, false)) - .transform(new Function<CubingJob, JobInstance>() { - @Override - public JobInstance apply(CubingJob cubingJob) { - return JobInfoConverter.parseToJobInstance(cubingJob, allOutputs); - } - })); + return Lists.newArrayList(FluentIterable.from(searchCubingJobs(cubeNameSubstring, projectName, states, timeStartInMillis, timeEndInMillis, allOutputs, false)).transform(new Function<CubingJob, JobInstance>() { + @Override + public JobInstance apply(CubingJob cubingJob) { + return JobInfoConverter.parseToJobInstance(cubingJob, allOutputs); + } + })); } - public List<CubingJob> searchCubingJobs(final String cubeName, final String projectName, - final Set<ExecutableState> statusList, long timeStartInMillis, long timeEndInMillis, - final Map<String, Output> allOutputs, final boolean cubeNameExactMatch) { - List<CubingJob> results = Lists.newArrayList(FluentIterable.from( - getExecutableManager().getAllAbstractExecutables(timeStartInMillis, timeEndInMillis, CubingJob.class)) - .filter(new Predicate<AbstractExecutable>() { - @Override - public boolean apply(AbstractExecutable executable) { - if (executable instanceof CubingJob) { - if (StringUtils.isEmpty(cubeName)) { - return true; - } - String executableCubeName = CubingExecutableUtil.getCubeName(executable.getParams()); - if (executableCubeName == null) - return true; - if (cubeNameExactMatch) - return executableCubeName.equalsIgnoreCase(cubeName); - else - return executableCubeName.toLowerCase().contains(cubeName.toLowerCase()); - } else { - return false; - } - } - }).transform(new Function<AbstractExecutable, CubingJob>() { - @Override - public CubingJob apply(AbstractExecutable executable) { - return (CubingJob) executable; - } - }).filter(Predicates.and(new Predicate<CubingJob>() { - @Override - public boolean apply(CubingJob executable) { - if (null == projectName || null == getProjectManager().getProject(projectName)) { - return true; - } else { - return projectName.equals(executable.getProjectName()); - } - } - }, new Predicate<CubingJob>() { - @Override - public boolean apply(CubingJob executable) { - try { - Output output = allOutputs.get(executable.getId()); - ExecutableState state = output.getState(); - boolean ret = statusList.contains(state); - return ret; - } catch (Exception e) { - throw e; - } + public List<CubingJob> searchCubingJobs(final String cubeName, final String projectName, final Set<ExecutableState> statusList, long timeStartInMillis, long timeEndInMillis, final Map<String, Output> allOutputs, final boolean cubeNameExactMatch) { + List<CubingJob> results = Lists.newArrayList(FluentIterable.from(getExecutableManager().getAllAbstractExecutables(timeStartInMillis, timeEndInMillis, CubingJob.class)).filter(new Predicate<AbstractExecutable>() { + @Override + public boolean apply(AbstractExecutable executable) { + if (executable instanceof CubingJob) { + if (StringUtils.isEmpty(cubeName)) { + return true; } - }))); + String executableCubeName = CubingExecutableUtil.getCubeName(executable.getParams()); + if (executableCubeName == null) + return true; + if (cubeNameExactMatch) + return executableCubeName.equalsIgnoreCase(cubeName); + else + return executableCubeName.toLowerCase().contains(cubeName.toLowerCase()); + } else { + return false; + } + } + }).transform(new Function<AbstractExecutable, CubingJob>() { + @Override + public CubingJob apply(AbstractExecutable executable) { + return (CubingJob) executable; + } + }).filter(Predicates.and(new Predicate<CubingJob>() { + @Override + public boolean apply(CubingJob executable) { + if (null == projectName || null == getProjectManager().getProject(projectName)) { + return true; + } else { + return projectName.equals(executable.getProjectName()); + } + } + }, new Predicate<CubingJob>() { + @Override + public boolean apply(CubingJob executable) { + try { + Output output = allOutputs.get(executable.getId()); + ExecutableState state = output.getState(); + boolean ret = statusList.contains(state); + return ret; + } catch (Exception e) { + throw e; + } + } + }))); return results; } - public List<CubingJob> listAllCubingJobs(final String cubeName, final String projectName, - final Set<ExecutableState> statusList) { - return searchCubingJobs(cubeName, projectName, statusList, 0L, Long.MAX_VALUE, - getExecutableManager().getAllOutputs(), true); + public List<CubingJob> listAllCubingJobs(final String cubeName, final String projectName, final Set<ExecutableState> statusList) { + return searchCubingJobs(cubeName, projectName, statusList, 0L, Long.MAX_VALUE, getExecutableManager().getAllOutputs(), true); } public List<CubingJob> listAllCubingJobs(final String cubeName, final String projectName) { - return searchCubingJobs(cubeName, projectName, EnumSet.allOf(ExecutableState.class), 0L, Long.MAX_VALUE, - getExecutableManager().getAllOutputs(), true); + return searchCubingJobs(cubeName, projectName, EnumSet.allOf(ExecutableState.class), 0L, Long.MAX_VALUE, getExecutableManager().getAllOutputs(), true); } } http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/server-base/src/main/java/org/apache/kylin/rest/service/KafkaConfigService.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/KafkaConfigService.java b/server-base/src/main/java/org/apache/kylin/rest/service/KafkaConfigService.java index a5af1fe..0dbe6f2 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/KafkaConfigService.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/KafkaConfigService.java @@ -51,8 +51,7 @@ public class KafkaConfigService extends BasicService { return kafkaConfigs; } - public List<KafkaConfig> getKafkaConfigs(final String kafkaConfigName, final Integer limit, final Integer offset) - throws IOException { + public List<KafkaConfig> getKafkaConfigs(final String kafkaConfigName, final Integer limit, final Integer offset) throws IOException { List<KafkaConfig> kafkaConfigs; kafkaConfigs = listAllKafkaConfigs(kafkaConfigName); http://git-wip-us.apache.org/repos/asf/kylin/blob/19585846/server-base/src/main/java/org/apache/kylin/rest/service/LegacyAclService.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/LegacyAclService.java b/server-base/src/main/java/org/apache/kylin/rest/service/LegacyAclService.java index 77877e9..8ab6ebe 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/LegacyAclService.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/LegacyAclService.java @@ -128,17 +128,14 @@ public class LegacyAclService implements MutableAclService { htable = aclHBaseStorage.getTable(aclTableName); Scan scan = new Scan(); - SingleColumnValueFilter parentFilter = new SingleColumnValueFilter( - Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_PARENT_COLUMN), - CompareOp.EQUAL, domainObjSerializer.serialize(new DomainObjectInfo(parentIdentity))); + SingleColumnValueFilter parentFilter = new SingleColumnValueFilter(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_PARENT_COLUMN), CompareOp.EQUAL, domainObjSerializer.serialize(new DomainObjectInfo(parentIdentity))); parentFilter.setFilterIfMissing(true); scan.setFilter(parentFilter); ResultScanner scanner = htable.getScanner(scan); for (Result result = scanner.next(); result != null; result = scanner.next()) { String id = Bytes.toString(result.getRow()); - String type = Bytes.toString(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), - Bytes.toBytes(ACL_INFO_FAMILY_TYPE_COLUMN))); + String type = Bytes.toString(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_TYPE_COLUMN))); oids.add(new ObjectIdentityImpl(type, id)); } @@ -184,27 +181,18 @@ public class LegacyAclService implements MutableAclService { result = htable.get(new Get(Bytes.toBytes(String.valueOf(oid.getIdentifier())))); if (null != result && !result.isEmpty()) { - SidInfo owner = sidSerializer - .deserialize(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), - Bytes.toBytes(ACL_INFO_FAMILY_OWNER_COLUMN))); - Sid ownerSid = (null == owner) ? null - : (owner.isPrincipal() ? new PrincipalSid(owner.getSid()) - : new GrantedAuthoritySid(owner.getSid())); - boolean entriesInheriting = Bytes - .toBoolean(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), - Bytes.toBytes(ACL_INFO_FAMILY_ENTRY_INHERIT_COLUMN))); + SidInfo owner = sidSerializer.deserialize(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_OWNER_COLUMN))); + Sid ownerSid = (null == owner) ? null : (owner.isPrincipal() ? new PrincipalSid(owner.getSid()) : new GrantedAuthoritySid(owner.getSid())); + boolean entriesInheriting = Bytes.toBoolean(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_ENTRY_INHERIT_COLUMN))); Acl parentAcl = null; - DomainObjectInfo parentInfo = domainObjSerializer - .deserialize(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), - Bytes.toBytes(ACL_INFO_FAMILY_PARENT_COLUMN))); + DomainObjectInfo parentInfo = domainObjSerializer.deserialize(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_PARENT_COLUMN))); if (null != parentInfo) { ObjectIdentity parentObj = new ObjectIdentityImpl(parentInfo.getType(), parentInfo.getId()); parentAcl = readAclById(parentObj, null); } - AclImpl acl = new AclImpl(oid, oid.getIdentifier(), aclAuthorizationStrategy, - permissionGrantingStrategy, parentAcl, null, entriesInheriting, ownerSid); + AclImpl acl = new AclImpl(oid, oid.getIdentifier(), aclAuthorizationStrategy, permissionGrantingStrategy, parentAcl, null, entriesInheriting, ownerSid); genAces(sids, result, acl); aclMaps.put(oid, acl); @@ -242,12 +230,9 @@ public class LegacyAclService implements MutableAclService { htable = aclHBaseStorage.getTable(aclTableName); Put put = new Put(Bytes.toBytes(String.valueOf(objectIdentity.getIdentifier()))); - put.addColumn(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_TYPE_COLUMN), - Bytes.toBytes(objectIdentity.getType())); - put.addColumn(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_OWNER_COLUMN), - sidSerializer.serialize(new SidInfo(sid))); - put.addColumn(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), - Bytes.toBytes(ACL_INFO_FAMILY_ENTRY_INHERIT_COLUMN), Bytes.toBytes(true)); + put.addColumn(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_TYPE_COLUMN), Bytes.toBytes(objectIdentity.getType())); + put.addColumn(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_OWNER_COLUMN), sidSerializer.serialize(new SidInfo(sid))); + put.addColumn(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_ENTRY_INHERIT_COLUMN), Bytes.toBytes(true)); htable.put(put); @@ -307,15 +292,12 @@ public class LegacyAclService implements MutableAclService { Put put = new Put(Bytes.toBytes(String.valueOf(acl.getObjectIdentity().getIdentifier()))); if (null != acl.getParentAcl()) { - put.addColumn(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), - Bytes.toBytes(ACL_INFO_FAMILY_PARENT_COLUMN), - domainObjSerializer.serialize(new DomainObjectInfo(acl.getParentAcl().getObjectIdentity()))); + put.addColumn(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_PARENT_COLUMN), domainObjSerializer.serialize(new DomainObjectInfo(acl.getParentAcl().getObjectIdentity()))); } for (AccessControlEntry ace : acl.getEntries()) { AceInfo aceInfo = new AceInfo(ace); - put.addColumn(Bytes.toBytes(AclHBaseStorage.ACL_ACES_FAMILY), - Bytes.toBytes(aceInfo.getSidInfo().getSid()), aceSerializer.serialize(aceInfo)); + put.addColumn(Bytes.toBytes(AclHBaseStorage.ACL_ACES_FAMILY), Bytes.toBytes(aceInfo.getSidInfo().getSid()), aceSerializer.serialize(aceInfo)); } if (!put.isEmpty()) { @@ -332,8 +314,7 @@ public class LegacyAclService implements MutableAclService { return (MutableAcl) readAclById(acl.getObjectIdentity()); } - private void genAces(List<Sid> sids, Result result, AclImpl acl) - throws JsonParseException, JsonMappingException, IOException { + private void genAces(List<Sid> sids, Result result, AclImpl acl) throws JsonParseException, JsonMappingException, IOException { List<AceInfo> aceInfos = new ArrayList<AceInfo>(); if (null != sids) { // Just return aces in sids @@ -345,15 +326,13 @@ public class LegacyAclService implements MutableAclService { sidName = ((GrantedAuthoritySid) sid).getGrantedAuthority(); } - AceInfo aceInfo = aceSerializer.deserialize( - result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_ACES_FAMILY), Bytes.toBytes(sidName))); + AceInfo aceInfo = aceSerializer.deserialize(result.getValue(Bytes.toBytes(AclHBaseStorage.ACL_ACES_FAMILY), Bytes.toBytes(sidName))); if (null != aceInfo) { aceInfos.add(aceInfo); } } } else { - NavigableMap<byte[], byte[]> familyMap = result - .getFamilyMap(Bytes.toBytes(AclHBaseStorage.ACL_ACES_FAMILY)); + NavigableMap<byte[], byte[]> familyMap = result.getFamilyMap(Bytes.toBytes(AclHBaseStorage.ACL_ACES_FAMILY)); for (byte[] qualifier : familyMap.keySet()) { AceInfo aceInfo = aceSerializer.deserialize(familyMap.get(qualifier)); @@ -368,10 +347,8 @@ public class LegacyAclService implements MutableAclService { AceInfo aceInfo = aceInfos.get(i); if (null != aceInfo) { - Sid sid = aceInfo.getSidInfo().isPrincipal() ? new PrincipalSid(aceInfo.getSidInfo().getSid()) - : new GrantedAuthoritySid(aceInfo.getSidInfo().getSid()); - AccessControlEntry ace = new AccessControlEntryImpl(Long.valueOf(i), acl, sid, - aclPermissionFactory.buildFromMask(aceInfo.getPermissionMask()), true, false, false); + Sid sid = aceInfo.getSidInfo().isPrincipal() ? new PrincipalSid(aceInfo.getSidInfo().getSid()) : new GrantedAuthoritySid(aceInfo.getSidInfo().getSid()); + AccessControlEntry ace = new AccessControlEntryImpl(Long.valueOf(i), acl, sid, aclPermissionFactory.buildFromMask(aceInfo.getPermissionMask()), true, false, false); newAces.add(ace); } } @@ -387,4 +364,5 @@ public class LegacyAclService implements MutableAclService { } } + }