KYLIN-1823 split code from kylin-server into kylin-server-base
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/1a124e68 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/1a124e68 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/1a124e68 Branch: refs/heads/master Commit: 1a124e68faab349f34f5f47e5e144a8854172f41 Parents: af093f7 Author: Yang Li <[email protected]> Authored: Sun Jun 26 07:34:01 2016 +0800 Committer: Yang Li <[email protected]> Committed: Sun Jun 26 07:34:01 2016 +0800 ---------------------------------------------------------------------- pom.xml | 1 + .../.settings/org.eclipse.core.resources.prefs | 5 + .../.settings/org.eclipse.jdt.core.prefs | 386 ++++++++++ server-base/.settings/org.eclipse.jdt.ui.prefs | 7 + server-base/pom.xml | 270 +++++++ .../apache/kylin/rest/constant/Constant.java | 46 ++ .../kylin/rest/controller/AccessController.java | 118 +++ .../kylin/rest/controller/AdminController.java | 97 +++ .../kylin/rest/controller/BasicController.java | 69 ++ .../kylin/rest/controller/CacheController.java | 82 +++ .../kylin/rest/controller/CubeController.java | 615 ++++++++++++++++ .../rest/controller/CubeDescController.java | 95 +++ .../rest/controller/DiagnosisController.java | 120 +++ .../controller/ExternalFilterController.java | 97 +++ .../kylin/rest/controller/JobController.java | 221 ++++++ .../kylin/rest/controller/ModelController.java | 236 ++++++ .../rest/controller/ModelDescController.java | 57 ++ .../rest/controller/ProjectController.java | 257 +++++++ .../kylin/rest/controller/QueryController.java | 270 +++++++ .../rest/controller/StreamingController.java | 297 ++++++++ .../kylin/rest/controller/TableController.java | 350 +++++++++ .../kylin/rest/controller/UserController.java | 81 +++ .../rest/exception/BadRequestException.java | 61 ++ .../rest/exception/ForbiddenException.java | 41 ++ .../rest/exception/InternalErrorException.java | 63 ++ .../kylin/rest/exception/NotFoundException.java | 35 + .../apache/kylin/rest/init/ClientInfoTask.java | 51 ++ .../org/apache/kylin/rest/init/InitialTask.java | 26 + .../kylin/rest/init/InitialTaskManager.java | 58 ++ .../org/apache/kylin/rest/model/ColumnMeta.java | 264 +++++++ .../java/org/apache/kylin/rest/model/Query.java | 121 +++ .../kylin/rest/model/SelectedColumnMeta.java | 144 ++++ .../org/apache/kylin/rest/model/TableMeta.java | 150 ++++ .../kylin/rest/request/AccessRequest.java | 67 ++ .../kylin/rest/request/CardinalityRequest.java | 77 ++ .../rest/request/CreateProjectRequest.java | 46 ++ .../apache/kylin/rest/request/CubeRequest.java | 133 ++++ .../kylin/rest/request/CubeSegmentRequest.java | 107 +++ .../rest/request/ExternalFilterRequest.java | 63 ++ .../kylin/rest/request/HiveTableRequest.java | 22 + .../kylin/rest/request/JobBuildRequest.java | 75 ++ .../kylin/rest/request/JobBuildRequest2.java | 63 ++ .../kylin/rest/request/JobListRequest.java | 86 +++ .../apache/kylin/rest/request/MetaRequest.java | 41 ++ .../kylin/rest/request/MetricsRequest.java | 59 ++ .../apache/kylin/rest/request/ModelRequest.java | 107 +++ .../kylin/rest/request/PrepareSqlRequest.java | 121 +++ .../apache/kylin/rest/request/SQLRequest.java | 132 ++++ .../kylin/rest/request/SaveSqlRequest.java | 72 ++ .../kylin/rest/request/StreamingRequest.java | 83 +++ .../kylin/rest/request/UpdateConfigRequest.java | 46 ++ .../rest/request/UpdateProjectRequest.java | 55 ++ .../rest/response/AccessEntryResponse.java | 70 ++ .../kylin/rest/response/ErrorResponse.java | 38 + .../kylin/rest/response/GeneralResponse.java | 31 + .../kylin/rest/response/HBaseResponse.java | 108 +++ .../kylin/rest/response/MetricsResponse.java | 55 ++ .../apache/kylin/rest/response/SQLResponse.java | 168 +++++ .../kylin/rest/response/TableDescResponse.java | 81 +++ .../kylin/rest/security/AclEntityFactory.java | 64 ++ .../kylin/rest/security/AclHBaseStorage.java | 42 ++ .../kylin/rest/security/AclPermission.java | 42 ++ .../rest/security/AclPermissionFactory.java | 79 ++ .../rest/security/AuthoritiesPopulator.java | 75 ++ .../kylin/rest/security/CrossDomainFilter.java | 74 ++ .../security/KylinAuthenticationProvider.java | 132 ++++ .../kylin/rest/security/LdapProvider.java | 105 +++ .../rest/security/MockAclHBaseStorage.java | 80 ++ .../apache/kylin/rest/security/MockHTable.java | 729 +++++++++++++++++++ .../security/PasswordPlaceholderConfigurer.java | 106 +++ .../rest/security/RealAclHBaseStorage.java | 68 ++ .../rest/security/SAMLUserDetailsService.java | 55 ++ .../rest/security/UnauthorisedEntryPoint.java | 44 ++ .../kylin/rest/service/AccessService.java | 298 ++++++++ .../apache/kylin/rest/service/AclService.java | 465 ++++++++++++ .../apache/kylin/rest/service/AdminService.java | 109 +++ .../kylin/rest/service/BadQueryDetector.java | 248 +++++++ .../apache/kylin/rest/service/BasicService.java | 158 ++++ .../apache/kylin/rest/service/CacheService.java | 313 ++++++++ .../apache/kylin/rest/service/CubeService.java | 676 +++++++++++++++++ .../kylin/rest/service/DiagnosisService.java | 74 ++ .../kylin/rest/service/ExtFilterService.java | 76 ++ .../apache/kylin/rest/service/JobService.java | 388 ++++++++++ .../kylin/rest/service/KafkaConfigService.java | 93 +++ .../apache/kylin/rest/service/ModelService.java | 146 ++++ .../kylin/rest/service/ProjectService.java | 127 ++++ .../apache/kylin/rest/service/QueryService.java | 517 +++++++++++++ .../kylin/rest/service/StreamingService.java | 88 +++ .../apache/kylin/rest/service/UserService.java | 289 ++++++++ .../kylin/rest/util/Log4jConfigListener.java | 47 ++ .../org/apache/kylin/rest/util/QueryUtil.java | 210 ++++++ .../org/apache/kylin/rest/util/Serializer.java | 51 ++ .../org/apache/kylin/rest/bean/BeanTest.java | 74 ++ .../apache/kylin/rest/bean/BeanValidator.java | 160 ++++ server/pom.xml | 231 ++---- .../apache/kylin/rest/constant/Constant.java | 46 -- .../kylin/rest/controller/AccessController.java | 118 --- .../kylin/rest/controller/AdminController.java | 97 --- .../kylin/rest/controller/BasicController.java | 69 -- .../kylin/rest/controller/CacheController.java | 82 --- .../kylin/rest/controller/CubeController.java | 615 ---------------- .../rest/controller/CubeDescController.java | 95 --- .../rest/controller/DiagnosisController.java | 120 --- .../controller/ExternalFilterController.java | 97 --- .../kylin/rest/controller/JobController.java | 221 ------ .../kylin/rest/controller/ModelController.java | 236 ------ .../rest/controller/ModelDescController.java | 57 -- .../rest/controller/ProjectController.java | 257 ------- .../kylin/rest/controller/QueryController.java | 270 ------- .../rest/controller/StreamingController.java | 297 -------- .../kylin/rest/controller/TableController.java | 350 --------- .../kylin/rest/controller/UserController.java | 81 --- .../rest/exception/BadRequestException.java | 61 -- .../rest/exception/ForbiddenException.java | 41 -- .../rest/exception/InternalErrorException.java | 63 -- .../kylin/rest/exception/NotFoundException.java | 35 - .../apache/kylin/rest/init/ClientInfoTask.java | 51 -- .../org/apache/kylin/rest/init/InitialTask.java | 26 - .../kylin/rest/init/InitialTaskManager.java | 58 -- .../org/apache/kylin/rest/model/ColumnMeta.java | 264 ------- .../java/org/apache/kylin/rest/model/Query.java | 121 --- .../kylin/rest/model/SelectedColumnMeta.java | 144 ---- .../org/apache/kylin/rest/model/TableMeta.java | 150 ---- .../kylin/rest/request/AccessRequest.java | 67 -- .../kylin/rest/request/CardinalityRequest.java | 77 -- .../rest/request/CreateProjectRequest.java | 46 -- .../apache/kylin/rest/request/CubeRequest.java | 133 ---- .../kylin/rest/request/CubeSegmentRequest.java | 107 --- .../rest/request/ExternalFilterRequest.java | 63 -- .../kylin/rest/request/HiveTableRequest.java | 22 - .../kylin/rest/request/JobBuildRequest.java | 75 -- .../kylin/rest/request/JobBuildRequest2.java | 63 -- .../kylin/rest/request/JobListRequest.java | 86 --- .../apache/kylin/rest/request/MetaRequest.java | 41 -- .../kylin/rest/request/MetricsRequest.java | 59 -- .../apache/kylin/rest/request/ModelRequest.java | 107 --- .../kylin/rest/request/PrepareSqlRequest.java | 121 --- .../apache/kylin/rest/request/SQLRequest.java | 132 ---- .../kylin/rest/request/SaveSqlRequest.java | 72 -- .../kylin/rest/request/StreamingRequest.java | 83 --- .../kylin/rest/request/UpdateConfigRequest.java | 46 -- .../rest/request/UpdateProjectRequest.java | 55 -- .../rest/response/AccessEntryResponse.java | 70 -- .../kylin/rest/response/ErrorResponse.java | 38 - .../kylin/rest/response/GeneralResponse.java | 31 - .../kylin/rest/response/HBaseResponse.java | 108 --- .../kylin/rest/response/MetricsResponse.java | 55 -- .../apache/kylin/rest/response/SQLResponse.java | 168 ----- .../kylin/rest/response/TableDescResponse.java | 81 --- .../kylin/rest/security/AclEntityFactory.java | 64 -- .../kylin/rest/security/AclHBaseStorage.java | 42 -- .../kylin/rest/security/AclPermission.java | 42 -- .../rest/security/AclPermissionFactory.java | 79 -- .../rest/security/AuthoritiesPopulator.java | 75 -- .../kylin/rest/security/CrossDomainFilter.java | 74 -- .../security/KylinAuthenticationProvider.java | 132 ---- .../kylin/rest/security/LdapProvider.java | 105 --- .../rest/security/MockAclHBaseStorage.java | 80 -- .../apache/kylin/rest/security/MockHTable.java | 729 ------------------- .../security/PasswordPlaceholderConfigurer.java | 106 --- .../rest/security/RealAclHBaseStorage.java | 68 -- .../rest/security/SAMLUserDetailsService.java | 55 -- .../rest/security/UnauthorisedEntryPoint.java | 44 -- .../kylin/rest/service/AccessService.java | 298 -------- .../apache/kylin/rest/service/AclService.java | 465 ------------ .../apache/kylin/rest/service/AdminService.java | 109 --- .../kylin/rest/service/BadQueryDetector.java | 248 ------- .../apache/kylin/rest/service/BasicService.java | 158 ---- .../apache/kylin/rest/service/CacheService.java | 313 -------- .../apache/kylin/rest/service/CubeService.java | 676 ----------------- .../kylin/rest/service/DiagnosisService.java | 74 -- .../kylin/rest/service/ExtFilterService.java | 76 -- .../apache/kylin/rest/service/JobService.java | 388 ---------- .../kylin/rest/service/KafkaConfigService.java | 93 --- .../apache/kylin/rest/service/ModelService.java | 146 ---- .../kylin/rest/service/ProjectService.java | 127 ---- .../apache/kylin/rest/service/QueryService.java | 517 ------------- .../kylin/rest/service/StreamingService.java | 88 --- .../apache/kylin/rest/service/UserService.java | 289 -------- .../kylin/rest/util/Log4jConfigListener.java | 47 -- .../org/apache/kylin/rest/util/QueryUtil.java | 210 ------ .../org/apache/kylin/rest/util/Serializer.java | 51 -- .../org/apache/kylin/rest/bean/BeanTest.java | 74 -- .../apache/kylin/rest/bean/BeanValidator.java | 160 ---- 184 files changed, 13145 insertions(+), 12615 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/1a124e68/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 3a84537..f446a2d 100644 --- a/pom.xml +++ b/pom.xml @@ -681,6 +681,7 @@ <module>source-kafka</module> <module>storage-hbase</module> <module>query</module> + <module>server-base</module> <module>server</module> <module>jdbc</module> <module>invertedindex</module> http://git-wip-us.apache.org/repos/asf/kylin/blob/1a124e68/server-base/.settings/org.eclipse.core.resources.prefs ---------------------------------------------------------------------- diff --git a/server-base/.settings/org.eclipse.core.resources.prefs b/server-base/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..839d647 --- /dev/null +++ b/server-base/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/<project>=UTF-8 http://git-wip-us.apache.org/repos/asf/kylin/blob/1a124e68/server-base/.settings/org.eclipse.jdt.core.prefs ---------------------------------------------------------------------- diff --git a/server-base/.settings/org.eclipse.jdt.core.prefs b/server-base/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..9c69bac --- /dev/null +++ b/server-base/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,386 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=false +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false +org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=999 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=false +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true http://git-wip-us.apache.org/repos/asf/kylin/blob/1a124e68/server-base/.settings/org.eclipse.jdt.ui.prefs ---------------------------------------------------------------------- diff --git a/server-base/.settings/org.eclipse.jdt.ui.prefs b/server-base/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..681b0b0 --- /dev/null +++ b/server-base/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +formatter_profile=_Space Indent & Long Lines +formatter_settings_version=12 +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=java;javax;org;com; +org.eclipse.jdt.ui.ondemandthreshold=99 +org.eclipse.jdt.ui.staticondemandthreshold=1 http://git-wip-us.apache.org/repos/asf/kylin/blob/1a124e68/server-base/pom.xml ---------------------------------------------------------------------- diff --git a/server-base/pom.xml b/server-base/pom.xml new file mode 100644 index 0000000..ad54ecf --- /dev/null +++ b/server-base/pom.xml @@ -0,0 +1,270 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + 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. +--> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <artifactId>kylin-server-base</artifactId> + <packaging>jar</packaging> + <name>Kylin:RESTServerBase</name> + + <parent> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin</artifactId> + <version>1.5.3-SNAPSHOT</version> + + </parent> + + <properties> + </properties> + + <dependencies> + <dependency> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin-query</artifactId> + <version>${project.parent.version}</version> + <exclusions> + <exclusion> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + </exclusion> + <exclusion> + <groupId>javax.servlet.jsp</groupId> + <artifactId>jsp-api</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin-storage-hbase</artifactId> + <version>${project.parent.version}</version> + </dependency> + <dependency> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin-source-hive</artifactId> + <version>${project.parent.version}</version> + </dependency> + <dependency> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin-source-kafka</artifactId> + <version>${project.parent.version}</version> + </dependency> + <dependency> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin-tool</artifactId> + <version>${project.parent.version}</version> + </dependency> + + <dependency> + <groupId>net.sf.ehcache</groupId> + <artifactId>ehcache</artifactId> + <version>${ehcache.version}</version> + </dependency> + <dependency> + <groupId>cglib</groupId> + <artifactId>cglib</artifactId> + <version>2.2.2</version> + </dependency> + <dependency> + <groupId>net.sf.supercsv</groupId> + <artifactId>super-csv</artifactId> + <version>2.1.0</version> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + <version>${spring.boot.version}</version> + <exclusions> + <exclusion> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-tomcat</artifactId> + </exclusion> + <exclusion> + <groupId>org.slf4j</groupId> + <artifactId>log4j-over-slf4j</artifactId> + </exclusion> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </exclusion> + </exclusions> + </dependency> + + <!-- Spring Core --> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-beans</artifactId> + <version>${spring.framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-webmvc</artifactId> + <version>${spring.framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-jdbc</artifactId> + <version>${spring.framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-web</artifactId> + <version>${spring.framework.version}</version> + <type>jar</type> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + <version>${spring.framework.version}</version> + <type>jar</type> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-aop</artifactId> + <version>${spring.framework.version}</version> + <type>jar</type> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + <version>${spring.framework.version}</version> + </dependency> + + <!-- Spring Security --> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-core</artifactId> + <version>${spring.framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-web</artifactId> + <version>${spring.framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-config</artifactId> + <version>${spring.framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-acl</artifactId> + <version>${spring.framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-ldap</artifactId> + <version>${spring.framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework.security.extensions</groupId> + <artifactId>spring-security-saml2-core</artifactId> + <version>${spring.framework.security.extensions.version}</version> + </dependency> + + <!-- spring aop --> + <dependency> + <groupId>org.aspectj</groupId> + <artifactId>aspectjrt</artifactId> + <version>1.6.11</version> + </dependency> + <dependency> + <groupId>org.aspectj</groupId> + <artifactId>aspectjweaver</artifactId> + <version>1.6.11</version> + </dependency> + + <!-- Test & Env --> + <dependency> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin-core-common</artifactId> + <type>test-jar</type> + <scope>test</scope> + <version>${project.parent.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.tomcat</groupId> + <artifactId>tomcat-catalina</artifactId> + <version>7.0.69</version> + <scope>provided</scope> + </dependency> + + <dependency> + <groupId>org.apache.hbase</groupId> + <artifactId>hbase-client</artifactId> + <scope>provided</scope> + <exclusions> + <exclusion> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + </exclusion> + <exclusion> + <groupId>javax.servlet.jsp</groupId> + <artifactId>jsp-api</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-server</artifactId> + <version>${jetty.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-servlet</artifactId> + <version>${jetty.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-webapp</artifactId> + <version>${jetty.version}</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + + <repositories> + <repository> + <id>spring-snapshots</id> + <url>http://repo.spring.io/libs-snapshot</url> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> + </repositories> + <pluginRepositories> + <pluginRepository> + <id>spring-snapshots</id> + <url>http://repo.spring.io/libs-snapshot</url> + <snapshots> + <enabled>true</enabled> + </snapshots> + </pluginRepository> + </pluginRepositories> +</project> http://git-wip-us.apache.org/repos/asf/kylin/blob/1a124e68/server-base/src/main/java/org/apache/kylin/rest/constant/Constant.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/constant/Constant.java b/server-base/src/main/java/org/apache/kylin/rest/constant/Constant.java new file mode 100644 index 0000000..f068e5f --- /dev/null +++ b/server-base/src/main/java/org/apache/kylin/rest/constant/Constant.java @@ -0,0 +1,46 @@ +/* + * 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.apache.kylin.rest.constant; + +/** + * @author xduo + * + */ +public class Constant { + + public final static String FakeSchemaName = "defaultSchema"; + public final static String FakeCatalogName = "defaultCatalog"; + + public final static String IDENTITY_USER = "user"; + public final static String IDENTITY_ROLE = "role"; + + public final static String ROLE_ADMIN = "ROLE_ADMIN"; + public final static String ROLE_MODELER = "ROLE_MODELER"; + public final static String ROLE_ANALYST = "ROLE_ANALYST"; + + public final static String ACCESS_HAS_ROLE_ADMIN = "hasRole('ROLE_ADMIN')"; + public final static String ACCESS_HAS_ROLE_MODELER = "hasRole('ROLE_MODELER')"; + + public final static String ACCESS_POST_FILTER_READ = "hasRole('ROLE_ADMIN') or hasPermission(filterObject, 'READ') or hasPermission(filterObject, 'MANAGEMENT') " + "or hasPermission(filterObject, 'OPERATION') or hasPermission(filterObject, 'ADMINISTRATION')"; + + public final static String SERVER_MODE_QUERY = "query"; + public final static String SERVER_MODE_JOB = "job"; + public final static String SERVER_MODE_ALL = "all"; + +} http://git-wip-us.apache.org/repos/asf/kylin/blob/1a124e68/server-base/src/main/java/org/apache/kylin/rest/controller/AccessController.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/AccessController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/AccessController.java new file mode 100644 index 0000000..461aa3f --- /dev/null +++ b/server-base/src/main/java/org/apache/kylin/rest/controller/AccessController.java @@ -0,0 +1,118 @@ +/* + * 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.apache.kylin.rest.controller; + +import java.io.IOException; +import java.util.List; + +import org.apache.kylin.common.persistence.AclEntity; +import org.apache.kylin.rest.request.AccessRequest; +import org.apache.kylin.rest.response.AccessEntryResponse; +import org.apache.kylin.rest.security.AclPermissionFactory; +import org.apache.kylin.rest.service.AccessService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.acls.model.Acl; +import org.springframework.security.acls.model.Permission; +import org.springframework.security.acls.model.Sid; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * @author xduo + * + */ +@Controller +@RequestMapping(value = "/access") +public class AccessController extends BasicController { + + @Autowired + private AccessService accessService; + + /** + * Get access entry list of a domain object + * + * @param uuid + * @return + * @throws IOException + */ + @RequestMapping(value = "/{type}/{uuid}", method = { RequestMethod.GET }) + @ResponseBody + public List<AccessEntryResponse> getAccessEntities(@PathVariable String type, @PathVariable String uuid) { + AclEntity ae = accessService.getAclEntity(type, uuid); + Acl acl = accessService.getAcl(ae); + + return accessService.generateAceResponses(acl); + } + + /** + * Grant a new access on a domain object to a user/role + * + * @param accessRequest + */ + @RequestMapping(value = "/{type}/{uuid}", method = { RequestMethod.POST }) + @ResponseBody + public List<AccessEntryResponse> grant(@PathVariable String type, @PathVariable String uuid, @RequestBody AccessRequest accessRequest) { + AclEntity ae = accessService.getAclEntity(type, uuid); + Sid sid = accessService.getSid(accessRequest.getSid(), accessRequest.isPrincipal()); + Permission permission = AclPermissionFactory.getPermission(accessRequest.getPermission()); + Acl acl = accessService.grant(ae, permission, sid); + + return accessService.generateAceResponses(acl); + } + + /** + * Update a access on a domain object + * + * @param accessRequest + */ + @RequestMapping(value = "/{type}/{uuid}", method = { RequestMethod.PUT }) + @ResponseBody + public List<AccessEntryResponse> update(@PathVariable String type, @PathVariable String uuid, @RequestBody AccessRequest accessRequest) { + AclEntity ae = accessService.getAclEntity(type, uuid); + Permission permission = AclPermissionFactory.getPermission(accessRequest.getPermission()); + Acl acl = accessService.update(ae, accessRequest.getAccessEntryId(), permission); + + return accessService.generateAceResponses(acl); + } + + /** + * Revoke access on a domain object from a user/role + * + * @param AccessRequest + */ + @RequestMapping(value = "/{type}/{uuid}", method = { RequestMethod.DELETE }) + public List<AccessEntryResponse> revoke(@PathVariable String type, @PathVariable String uuid, AccessRequest accessRequest) { + AclEntity ae = accessService.getAclEntity(type, uuid); + Acl acl = accessService.revoke(ae, accessRequest.getAccessEntryId()); + + return accessService.generateAceResponses(acl); + } + + /** + * @param accessService + */ + public void setAccessService(AccessService accessService) { + this.accessService = accessService; + } + +} http://git-wip-us.apache.org/repos/asf/kylin/blob/1a124e68/server-base/src/main/java/org/apache/kylin/rest/controller/AdminController.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/AdminController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/AdminController.java new file mode 100644 index 0000000..de3c4b4 --- /dev/null +++ b/server-base/src/main/java/org/apache/kylin/rest/controller/AdminController.java @@ -0,0 +1,97 @@ +/* + * 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.apache.kylin.rest.controller; + +import org.apache.kylin.common.KylinConfig; +import org.apache.kylin.rest.request.MetricsRequest; +import org.apache.kylin.rest.request.UpdateConfigRequest; +import org.apache.kylin.rest.response.GeneralResponse; +import org.apache.kylin.rest.response.MetricsResponse; +import org.apache.kylin.rest.service.AdminService; +import org.apache.kylin.rest.service.CubeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * Admin Controller is defined as Restful API entrance for UI. + * + * @author jianliu + * + */ +@Controller +@RequestMapping(value = "/admin") +public class AdminController extends BasicController { + + @Autowired + private AdminService adminService; + @Autowired + private CubeService cubeMgmtService; + + @RequestMapping(value = "/env", method = { RequestMethod.GET }) + @ResponseBody + public GeneralResponse getEnv() { + String env = adminService.getEnv(); + + GeneralResponse envRes = new GeneralResponse(); + envRes.put("env", env); + + return envRes; + } + + @RequestMapping(value = "/config", method = { RequestMethod.GET }) + @ResponseBody + public GeneralResponse getConfig() { + String config = adminService.getConfigAsString(); + + GeneralResponse configRes = new GeneralResponse(); + configRes.put("config", config); + + return configRes; + } + + @RequestMapping(value = "/metrics/cubes", method = { RequestMethod.GET }) + @ResponseBody + public MetricsResponse cubeMetrics(MetricsRequest request) { + return cubeMgmtService.calculateMetrics(request); + } + + @RequestMapping(value = "/storage", method = { RequestMethod.DELETE }) + @ResponseBody + public void cleanupStorage() { + adminService.cleanupStorage(); + } + + @RequestMapping(value = "/config", method = { RequestMethod.PUT }) + public void updateKylinConfig(@RequestBody UpdateConfigRequest updateConfigRequest) { + KylinConfig.getInstanceFromEnv().setProperty(updateConfigRequest.getKey(), updateConfigRequest.getValue()); + } + + public void setAdminService(AdminService adminService) { + this.adminService = adminService; + } + + public void setCubeMgmtService(CubeService cubeMgmtService) { + this.cubeMgmtService = cubeMgmtService; + } + +} http://git-wip-us.apache.org/repos/asf/kylin/blob/1a124e68/server-base/src/main/java/org/apache/kylin/rest/controller/BasicController.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/BasicController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/BasicController.java new file mode 100644 index 0000000..0e4a70c --- /dev/null +++ b/server-base/src/main/java/org/apache/kylin/rest/controller/BasicController.java @@ -0,0 +1,69 @@ +/* + * 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.apache.kylin.rest.controller; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.kylin.rest.exception.BadRequestException; +import org.apache.kylin.rest.exception.ForbiddenException; +import org.apache.kylin.rest.exception.NotFoundException; +import org.apache.kylin.rest.response.ErrorResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; + +/** + */ +public class BasicController { + + private static final Logger logger = LoggerFactory.getLogger(BasicController.class); + + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + @ExceptionHandler(Exception.class) + @ResponseBody + ErrorResponse handleError(HttpServletRequest req, Exception ex) { + logger.error("", ex); + return new ErrorResponse(req.getRequestURL().toString(), ex); + } + + @ResponseStatus(HttpStatus.FORBIDDEN) + @ExceptionHandler(ForbiddenException.class) + @ResponseBody + ErrorResponse handleForbidden(HttpServletRequest req, Exception ex) { + return new ErrorResponse(req.getRequestURL().toString(), ex); + } + + @ResponseStatus(HttpStatus.NOT_FOUND) + @ExceptionHandler(NotFoundException.class) + @ResponseBody + ErrorResponse handleNotFound(HttpServletRequest req, Exception ex) { + return new ErrorResponse(req.getRequestURL().toString(), ex); + } + + @ResponseStatus(HttpStatus.BAD_REQUEST) + @ExceptionHandler(BadRequestException.class) + @ResponseBody + ErrorResponse handleBadRequest(HttpServletRequest req, Exception ex) { + logger.error("", ex); + return new ErrorResponse(req.getRequestURL().toString(), ex); + } +} http://git-wip-us.apache.org/repos/asf/kylin/blob/1a124e68/server-base/src/main/java/org/apache/kylin/rest/controller/CacheController.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/CacheController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/CacheController.java new file mode 100644 index 0000000..845ffe0 --- /dev/null +++ b/server-base/src/main/java/org/apache/kylin/rest/controller/CacheController.java @@ -0,0 +1,82 @@ +/* + * 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.apache.kylin.rest.controller; + +import java.io.IOException; + +import org.apache.kylin.common.restclient.Broadcaster; +import org.apache.kylin.common.restclient.Broadcaster.EVENT; +import org.apache.kylin.rest.service.CacheService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * CubeController is defined as Restful API entrance for UI. + * + * @author jianliu + */ +@Controller +@RequestMapping(value = "/cache") +public class CacheController extends BasicController { + private static final Logger logger = LoggerFactory.getLogger(CacheController.class); + + @Autowired + private CacheService cacheService; + + /** + * Wipe system cache + * + * @param type {@link Broadcaster.TYPE} + * @param event {@link Broadcaster.EVENT} + * @param name + * @return if the action success + * @throws IOException + */ + @RequestMapping(value = "/{type}/{name}/{event}", method = { RequestMethod.PUT }) + @ResponseBody + public void wipeCache(@PathVariable String type, @PathVariable String event, @PathVariable String name) throws IOException { + + Broadcaster.TYPE wipeType = Broadcaster.TYPE.getType(type); + EVENT wipeEvent = Broadcaster.EVENT.getEvent(event); + + logger.info("wipe cache type: " + wipeType + " event:" + wipeEvent + " name:" + name); + + switch (wipeEvent) { + case CREATE: + case UPDATE: + cacheService.rebuildCache(wipeType, name); + break; + case DROP: + cacheService.removeCache(wipeType, name); + break; + default: + throw new RuntimeException("invalid type:" + wipeEvent); + } + } + + public void setCacheService(CacheService cacheService) { + this.cacheService = cacheService; + } +}
