diff --git a/build.gradle b/build.gradle
index cee3a25..8c6803e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -50,8 +50,10 @@
 }
 
 apply from: 'gradle/license.gradle'
-apply plugin: 'org.springframework.boot'
 apply plugin: 'io.spring.dependency-management'
+apply plugin: 'application'
+
+mainClassName = 'org.apache.pulsar.manager.PulsarManagerApplication'
 
 task licenseFormatNode(type: com.hierynomus.gradle.license.tasks.LicenseFormat) {
     source = fileTree(dir: "src").include("**/*")
@@ -76,6 +78,18 @@
   applyMavenExclusions = false
 }
 
+distTar {
+    archiveName "pulsar-manager.tar"
+}
+
+jar {
+    manifest {
+        attributes(
+                'Main-Class': mainClassName
+        )
+    }
+}
+
 dependencies {
     compile group: 'org.springframework.boot', name: 'spring-boot-starter', version: springBootVersion
     compile group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: springBootVersion
@@ -89,7 +103,6 @@
     compile group: 'io.jsonwebtoken', name: 'jjwt-api', version: jsonWebTokenApiVersion
     compile group: 'io.jsonwebtoken', name: 'jjwt-impl', version: jsonWebTokenImplVersion
     compile group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: jsonWebTokenImplVersion
-    compile group: 'org.xerial', name: 'sqlite-jdbc', version: sqliteVersion
     compile group: 'com.github.pagehelper', name: 'pagehelper-spring-boot-starter', version: pageHelperVersion
     compile group: 'org.mockito', name: 'mockito-core', version: mockitoVersion
     compile group: 'com.google.guava', name: 'guava', version: guavaVersion
diff --git a/distribution/LICENSE.bin.txt b/distribution/LICENSE.bin.txt
new file mode 100644
index 0000000..c48b9a1
--- /dev/null
+++ b/distribution/LICENSE.bin.txt
@@ -0,0 +1,413 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed 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.
+
+----------------------------------------------------------------------------------------------------
+
+This projects includes binary packages with the following licenses:
+
+The Apache Software License, Version 2.0
+* Spring Boot
+   - org.springframework.boot-spring-boot-starter-2.0.2.RELEASE.jar
+   - org.springframework.boot-spring-boot-starter-test-2.0.2.RELEASE.jar
+   - org.springframework.boot-spring-boot-starter-web-2.0.2.RELEASE.jar
+   - org.springframework.boot-spring-boot-devtools-2.0.2.RELEASE.jar
+* Spring Cloud
+   - org.springframework.cloud-spring-cloud-starter-netflix-zuul-2.0.2.RELEASE.jar
+* MyBatis Spring Boot Starter
+   - org.mybatis.spring.boot-mybatis-spring-boot-starter-1.3.2.jar
+* Herddb JDBC
+   - org.herddb.herddb-jdbc-0.12.2.jar
+* Bean Validation API -- javax.validation-validation-api-2.0.0.Final.jar
+* Java JSON WebTokens
+   - io.jsonwebtoken-jjwt-api-0.10.5.jar
+   - io.jsonwebtoken-jjwt-impl-0.10.5.jar
+   - io.jsonwebtoken-jjwt-jackson-0.10.5.jar
+* Guava
+   - com.google.guava-guava-21.0.jar
+* Gson 
+   - com.google.code.gson-gson-2.8.2.jar
+* Pulsar
+   - org.apache.pulsar-pulsar-common-2.4.1.jar
+   - org.apache.pulsar-pulsar-broker-2.4.1.jar
+* Springfox
+   - io.springfox-springfox-swagger2-2.9.2.jar
+   - io.springfox-springfox-swagger-ui-2.9.2.jar
+* Powermock
+   - org.powermock-powermock-api-mockito.1.7.1.jar
+   - org.powermock-powermock-module-junit4.1.7.1.jar
+* xlsx
+   - xlsx@0.15.1
+* node-chromediver
+   - chromedriver@78.0.1
+* request
+   - request@2.88.0
+
+BSD 2-Clause License
+* Postgresql JDBC Driver
+   - org.postgresql.postgresql-42.2.5.jar -- licenses/LICENSE-postgresql.txt
+
+BSD 3-Clause License
+* shelljs
+   - shelljs@0.8.3 -- licenses/LICENSE-shelljs.txt
+
+MIT License
+* Page Helper
+   - com.github.pagehelper-pagehelper-spring-boot-starter-1.2.4.jar -- licenses/LICENSE-pagehelper.txt
+* Mockito
+   - org.mockito-mockito-core-1.10.19.jar -- licenses/LICENSE-mockito.txt
+* axios
+   - axios@0.19.0 -- licenses/LICENSE-axios.txt
+* clipboard
+   - clipboard@2.0.4 -- licenses/LICENSE-clipboard.txt
+* codemirror
+   - codemirror@5.49.2 -- licenses/LICENSE-codemirror.txt
+* connect
+   - connect@3.7.0 -- licenses/LICENSE-connect.txt
+* driver.js
+   - driver.js@0.9.8 -- licenses/LICENSE-driver.js.txt
+* element-ui
+   - element-ui@2.12.0 -- licenses/LICENSE-element-ui.txt
+* file-saver
+   - file-saver@2.0.2 -- licenses/LICENSE-file-saver.txt
+* font-awesome
+   - font-awesome@4.7.0 -- licenses/LICENSE-font-awesome.txt
+* js-cookie
+   - js-cookie@2.2.1 -- licenses/LICENSE-js-cookie.txt
+* jsonlint
+   - jsonlint@1.6.3 -- licenses/LICENSE-jsonlint.txt
+* mockjs
+   - mockjs@1.1.0 -- licenses/LICENSE-mockjs.txt
+* normalize.css
+   - normalize.css@8.0.1 -- licenses/LICENSE-normalize.css.txt
+* nprogress
+   - nprogress@0.2.0 -- licenses/LICENSE-nprogress.txt
+* showdown
+   - showdown@1.9.1 -- licenses/LICENSE-showdown.txt
+* sortablejs
+   - sortablejs@1.10.1 -- licenses/LICENSE-sortablejs.txt
+* vue
+   - vue@2.6.10 -- licenses/LICENSE-vue.txt
+* vue-i18n
+   - vue-i18n@8.15.0 -- licenses/LICENSE-vue-i18n.txt
+* vue-router
+   - vue-router@3.1.3 -- licenses/LICENSE-vue-router.txt
+* vuedraggable
+   - vuedraggable@2.23.2 -- licenses/LICENSE-vuedraggable.txt
+* vuex
+   - vuex@3.1.2 -- licenses/LICENSE-vuex.txt
+* autoprefixer
+   - autoprefixer@9.7.1 -- licenses/LICENSE-autoprefixer.txt
+* babel-core
+   - babel-core@6.26.3 -- licenses/LICENSE-babel-core.txt
+* babel-eslint
+   - babel-eslint@10.0.3 -- licenses/LICENSE-babel-eslint.txt
+* babel-helper-vue-jsx-merge-props
+   - babel-helper-vue-jsx-merge-props@2.0.3 -- licenses/LICENSE-babel-helper-vue-jsx-merge-props.txt
+* babel-loader
+   - babel-loader@8.0.6 -- licenses/LICENSE-babel-loader.txt
+* babel-plugin-dynamic-import-node
+   - babel-plugin-dynamic-import-node@2.3.0 -- licenses/LICENSE-babel-plugin-dynamic-import-node.txt
+* babel-plugin-syntax-jsx
+   - babel-plugin-syntax-jsx@6.18.0 -- licenses/LICENSE-babel-plugin-syntax-jsx.txt
+* babel-plugin-transform-runtime
+   - babel-plugin-transform-runtime@6.23.0 -- licenses/LICENSE-babel-plugin-transform-runtime.txt
+* babel-plugin-transform-vue-jsx
+   - babel-plugin-transform-vue-jsx@3.7.0 -- licenses/LICENSE-babel-plugin-transform-vue-jsx.txt
+* babel-preset-env
+   - babel-preset-env@1.7.0 -- licenses/LICENSE-babel-preset-env
+* babel-preset-stage-2
+   - babel-preset-stage-2@6.24.1
+* chalk
+   - chalk@3.0.0 -- licenses/LICENSE-chalk.txt
+* copy-webpack-plugin
+   - copy-webpack-plugin@5.0.5 -- licenses/LICENSE-copy-webpack-plugin.txt
+* cross-env
+   - cross-env@6.0.3 -- licenses/LICENSE-cross-env.txt
+* css-loader
+   - css-loader@3.2.0 -- licenses/LICENSE-css-loader.txt
+* eslint
+   - eslint@6.6.0 -- licenses/LICENSE-eslint.txt
+* eslint-friendly-formatter
+   - eslint-friendly-formatter@4.0.1 -- licenses/LICENSE-eslint-friendly-formatter.txt
+* eslint-loader
+   - eslint-loader@3.0.2 -- licenses/LICENSE-eslint-loader.txt
+* eslint-plugin-vue
+   - eslint-plugin-vue@6.0.0 -- licenses/LICENSE-eslint-plugin-vue.txt
+* file-loader
+   - file-loader@4.2.0 -- licenses/LICENSE-file-loader.txt
+* friendly-errors-webpack-plugin
+   - friendly-errors-webpack-plugin@1.7.0 -- licenses/LICENSE-friendly-errors-webpack-plugin.txt
+* hash-sum
+   - hash-sum@2.0.0 -- licenses/LICENSE-hash-sum.txt
+* html-webpack-plugin
+   - html-webpack-plugin@3.2.0 -- licenses/LICENSE-html-webpack-plugin.txt
+* husky
+   - husky@3.0.9 -- licenses/LICENSE-husky.txt
+* lint-staged
+   - lint-staged@9.4.2 -- licenses/LICENSE-lint-staged.txt
+* mini-css-extract-plugin
+   - mini-css-extract-plugin@0.8.0 -- licenses/LICENSE-mini-css-extract-plugin.txt
+* nightwatch
+   - nightwatch@1.2.4 -- licenses/LICENSE-nightwatch.txt
+* node-notifier
+   - node-notifier@6.0.0 -- licenses/LICENSE-node-notifier.txt
+* node-sass
+   - node-sass@4.13.0 -- licenses/LICENSE-node-sass.txt
+* optimize-css-assets-webpack-plugin
+   - optimize-css-assets-webpack-plugin@5.0.3 -- licenses/LICENSE-optimize-css-assets-webpack-plugin.txt
+* ora
+   - ora@4.0.2 -- licenses/LICENSE-ora.txt
+* path-to-regexp
+   - path-to-regexp@3.2.0 -- licenses/LICENSE-path-to-regexp.txt
+* portfinder
+   - portfinder@1.0.25 -- licenses/LICENSE-portfinder.txt
+* postcss-import
+   - postcss-import@12.0.1 -- licenses/LICENSE-postcss-import.txt
+* postcss-loader
+   - postcss-loader@3.0.0 -- licenses/LICENSE-postcss-loader.txt
+* postcss-url
+   - postcss-url@8.0.0 -- licenses/LICENSE-postcss-url.txt
+* sass-loader
+   - sass-loader@8.0.0 -- licenses/LICENSE-sass-loader.txt
+* script-ext-html-webpack-plugin
+   - script-ext-html-webpack-plugin@2.1.4 -- licenses/LICENSE-script-ext-html-webpack-plugin.txt
+* script-loader
+   - script-loader@0.7.2 -- licenses/LICENSE-script-loader.txt
+* serve-static
+   - serve-static@1.14.1 -- licenses/LICENSE-serve-static.txt
+* svg-sprite-loader
+   - svg-sprite-loader@4.1.6 -- licenses/LICENSE-svg-sprite-loader.txt
+* svgo
+   - svgo@1.3.2 -- licenses/LICENSE-svgo.txt
+* uglifyjs-webpack-plugin
+   - uglifyjs-webpack-plugin@2.2.0 -- licenses/LICENSE-uglifyjs-webpack-plugin.txt
+* url-loader
+   - url-loader@2.2.0 -- licenses/LICENSE-url-loader.txt
+* vue-loader
+   - vue-loader@15.7.2 -- licenses/LICENSE-vue-loader.txt
+* vue-style-loader
+   - vue-style-loader@4.1.2 -- licenses/LICENSE-vue-style-loader.txt
+* vue-template-compiler
+   - vue-template-compiler@2.6.10 -- licenses/LICENSE-vue-template-compiler.txt
+* webpack
+   - webpack@4.41.2 -- licenses/LICENSE-webpack.txt
+* webpack-cli
+   - webpack-cli@3.3.10 -- licenses/LICENSE-webpack-cli.txt
+* webpack-dev-server
+   - webpack-dev-server@3.9.0 -- licenses/LICENSE-webpack-dev-server.txt
+* webpack-merge
+   - webpack-merge@4.2.2 -- licenses/LICENSE-webpack-merge.txt
+
+CC BY 4.0 License
+* font-awesome
+   - font-awesome@4.7.0 -- licenses/LICENSE-font-awesome.txt
+
+SIL OFL 1.1 License
+* font-awesome
+   - font-awesome@4.7.0 -- licenses/LICENSE-fonwt-awesome.txt
+
+ISC License
+* rimraf
+   - rimraf@3.0.0 -- licenses/LICENSE-rimaraf.txt
+* semver
+   - semver@6.3.0 -- licenses/LICENSE-semver.txt
diff --git a/distribution/NOTICE.bin.txt b/distribution/NOTICE.bin.txt
new file mode 100644
index 0000000..e984d87
--- /dev/null
+++ b/distribution/NOTICE.bin.txt
@@ -0,0 +1,13 @@
+Apache Pulsar
+Copyright 2017-2019 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+----------------------------------------------------------------------------------------------------
+
+Guava
+Copyright (C) 2010 The Guava Authors
+
+GSon
+Copyright 2008 Google Inc.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-autoprefixer.txt b/distribution/licenses/LICENSE-autoprefixer.txt
new file mode 100644
index 0000000..1b21e2b
--- /dev/null
+++ b/distribution/licenses/LICENSE-autoprefixer.txt
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright 2013 Andrey Sitnik <andrey@sitnik.ru>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-axios.txt b/distribution/licenses/LICENSE-axios.txt
new file mode 100644
index 0000000..2d8d66a
--- /dev/null
+++ b/distribution/licenses/LICENSE-axios.txt
@@ -0,0 +1,19 @@
+Copyright (c) 2014-present Matt Zabriskie
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-babel-core.txt b/distribution/licenses/LICENSE-babel-core.txt
new file mode 100644
index 0000000..5185b9f
--- /dev/null
+++ b/distribution/licenses/LICENSE-babel-core.txt
@@ -0,0 +1,22 @@
+MIT License
+
+Copyright (c) 2014-present Sebastian McKenzie and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-babel-eslint.txt b/distribution/licenses/LICENSE-babel-eslint.txt
new file mode 100644
index 0000000..c183ef6
--- /dev/null
+++ b/distribution/licenses/LICENSE-babel-eslint.txt
@@ -0,0 +1,22 @@
+Copyright (c) 2014-2016 Sebastian McKenzie <sebmck@gmail.com>
+
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-babel-loader.txt b/distribution/licenses/LICENSE-babel-loader.txt
new file mode 100644
index 0000000..023541e
--- /dev/null
+++ b/distribution/licenses/LICENSE-babel-loader.txt
@@ -0,0 +1,22 @@
+Copyright (c) 2014-2019 Luís Couto <hello@luiscouto.pt>
+
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-babel-plugin-dynamic-import-node.txt b/distribution/licenses/LICENSE-babel-plugin-dynamic-import-node.txt
new file mode 100644
index 0000000..85f031b
--- /dev/null
+++ b/distribution/licenses/LICENSE-babel-plugin-dynamic-import-node.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2016 Airbnb
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-babel.txt b/distribution/licenses/LICENSE-babel.txt
new file mode 100644
index 0000000..5185b9f
--- /dev/null
+++ b/distribution/licenses/LICENSE-babel.txt
@@ -0,0 +1,22 @@
+MIT License
+
+Copyright (c) 2014-present Sebastian McKenzie and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-chalk.txt b/distribution/licenses/LICENSE-chalk.txt
new file mode 100644
index 0000000..06c366f
--- /dev/null
+++ b/distribution/licenses/LICENSE-chalk.txt
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-clipboard.txt b/distribution/licenses/LICENSE-clipboard.txt
new file mode 100644
index 0000000..3790a37
--- /dev/null
+++ b/distribution/licenses/LICENSE-clipboard.txt
@@ -0,0 +1,7 @@
+Copyright © 2019 Zeno Rocha <hi@zenorocha.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-codemirror.txt b/distribution/licenses/LICENSE-codemirror.txt
new file mode 100644
index 0000000..0fa30f7
--- /dev/null
+++ b/distribution/licenses/LICENSE-codemirror.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (C) 2017 by Marijn Haverbeke <marijnh@gmail.com> and others
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-connect.txt b/distribution/licenses/LICENSE-connect.txt
new file mode 100644
index 0000000..59de5a3
--- /dev/null
+++ b/distribution/licenses/LICENSE-connect.txt
@@ -0,0 +1,25 @@
+(The MIT License)
+
+Copyright (c) 2010 Sencha Inc.
+Copyright (c) 2011 LearnBoost
+Copyright (c) 2011-2014 TJ Holowaychuk
+Copyright (c) 2015 Douglas Christopher Wilson
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-cross-env.txt b/distribution/licenses/LICENSE-cross-env.txt
new file mode 100644
index 0000000..12a025d
--- /dev/null
+++ b/distribution/licenses/LICENSE-cross-env.txt
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+Copyright (c) 2017 Kent C. Dodds
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-css-loader.txt b/distribution/licenses/LICENSE-css-loader.txt
new file mode 100644
index 0000000..3d5fa73
--- /dev/null
+++ b/distribution/licenses/LICENSE-css-loader.txt
@@ -0,0 +1,20 @@
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-driver.js.txt b/distribution/licenses/LICENSE-driver.js.txt
new file mode 100644
index 0000000..7ceaeef
--- /dev/null
+++ b/distribution/licenses/LICENSE-driver.js.txt
@@ -0,0 +1,21 @@
+The MIT License
+
+Copyright (c) Kamran Ahmed
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-element-ui.txt b/distribution/licenses/LICENSE-element-ui.txt
new file mode 100644
index 0000000..d4462f3
--- /dev/null
+++ b/distribution/licenses/LICENSE-element-ui.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016-present ElemeFE
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-eslint-friendly-formatter.txt b/distribution/licenses/LICENSE-eslint-friendly-formatter.txt
new file mode 100644
index 0000000..48e7998
--- /dev/null
+++ b/distribution/licenses/LICENSE-eslint-friendly-formatter.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Roy Riojas
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-eslint-loader.txt b/distribution/licenses/LICENSE-eslint-loader.txt
new file mode 100644
index 0000000..3d5fa73
--- /dev/null
+++ b/distribution/licenses/LICENSE-eslint-loader.txt
@@ -0,0 +1,20 @@
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-eslint-plugin-vue.txt b/distribution/licenses/LICENSE-eslint-plugin-vue.txt
new file mode 100644
index 0000000..eadee93
--- /dev/null
+++ b/distribution/licenses/LICENSE-eslint-plugin-vue.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 Toru Nagashima
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-eslint.txt b/distribution/licenses/LICENSE-eslint.txt
new file mode 100644
index 0000000..031e9e9
--- /dev/null
+++ b/distribution/licenses/LICENSE-eslint.txt
@@ -0,0 +1,19 @@
+Copyright JS Foundation and other contributors, https://js.foundation
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-file-loader.txt b/distribution/licenses/LICENSE-file-loader.txt
new file mode 100644
index 0000000..3d5fa73
--- /dev/null
+++ b/distribution/licenses/LICENSE-file-loader.txt
@@ -0,0 +1,20 @@
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-file-saver.txt b/distribution/licenses/LICENSE-file-saver.txt
new file mode 100644
index 0000000..58c8135
--- /dev/null
+++ b/distribution/licenses/LICENSE-file-saver.txt
@@ -0,0 +1,9 @@
+The MIT License
+
+Copyright © 2016 Eli Grey.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-font-awesome.txt b/distribution/licenses/LICENSE-font-awesome.txt
new file mode 100644
index 0000000..d46aa01
--- /dev/null
+++ b/distribution/licenses/LICENSE-font-awesome.txt
@@ -0,0 +1,34 @@
+Font Awesome Free License
+-------------------------
+
+Font Awesome Free is free, open source, and GPL friendly. You can use it for
+commercial projects, open source projects, or really almost whatever you want.
+Full Font Awesome Free license: https://fontawesome.com/license/free.
+
+# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
+In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
+packaged as SVG and JS file types.
+
+# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
+In the Font Awesome Free download, the SIL OFL license applies to all icons
+packaged as web and desktop font files.
+
+# Code: MIT License (https://opensource.org/licenses/MIT)
+In the Font Awesome Free download, the MIT license applies to all non-font and
+non-icon files.
+
+# Attribution
+Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
+Awesome Free files already contain embedded comments with sufficient
+attribution, so you shouldn't need to do anything additional when using these
+files normally.
+
+We've kept attribution comments terse, so we ask that you do not actively work
+to remove them from files, especially code. They're a great way for folks to
+learn about Font Awesome.
+
+# Brand Icons
+All brand icons are trademarks of their respective owners. The use of these
+trademarks does not indicate endorsement of the trademark holder by Font
+Awesome, nor vice versa. **Please do not use brand logos for any purpose except
+to represent the company, product, or service to which they refer.**
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-friendly-errors-webpack-plugin.txt b/distribution/licenses/LICENSE-friendly-errors-webpack-plugin.txt
new file mode 100644
index 0000000..2b57564
--- /dev/null
+++ b/distribution/licenses/LICENSE-friendly-errors-webpack-plugin.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2016 Geoffroy Warin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-hash-sum.txt b/distribution/licenses/LICENSE-hash-sum.txt
new file mode 100644
index 0000000..0b2b403
--- /dev/null
+++ b/distribution/licenses/LICENSE-hash-sum.txt
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright © 2014 Nicolas Bevacqua
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-html-webpack-plugin.txt b/distribution/licenses/LICENSE-html-webpack-plugin.txt
new file mode 100644
index 0000000..3d5fa73
--- /dev/null
+++ b/distribution/licenses/LICENSE-html-webpack-plugin.txt
@@ -0,0 +1,20 @@
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-husky.txt b/distribution/licenses/LICENSE-husky.txt
new file mode 100644
index 0000000..9689f68
--- /dev/null
+++ b/distribution/licenses/LICENSE-husky.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-js-cookie.txt b/distribution/licenses/LICENSE-js-cookie.txt
new file mode 100644
index 0000000..69ed677
--- /dev/null
+++ b/distribution/licenses/LICENSE-js-cookie.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018 Copyright 2018 Klaus Hartl, Fagner Brack, GitHub Contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-jsonlint.txt b/distribution/licenses/LICENSE-jsonlint.txt
new file mode 100644
index 0000000..fdc9269
--- /dev/null
+++ b/distribution/licenses/LICENSE-jsonlint.txt
@@ -0,0 +1,7 @@
+Copyright (C) 2012 Zachary Carter
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-lint-staged.txt b/distribution/licenses/LICENSE-lint-staged.txt
new file mode 100644
index 0000000..3b874e5
--- /dev/null
+++ b/distribution/licenses/LICENSE-lint-staged.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 Andrey Okonetchnikov
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-mini-css-extract-plugin.txt b/distribution/licenses/LICENSE-mini-css-extract-plugin.txt
new file mode 100644
index 0000000..3d5fa73
--- /dev/null
+++ b/distribution/licenses/LICENSE-mini-css-extract-plugin.txt
@@ -0,0 +1,20 @@
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-mockito.txt b/distribution/licenses/LICENSE-mockito.txt
new file mode 100644
index 0000000..e0840a4
--- /dev/null
+++ b/distribution/licenses/LICENSE-mockito.txt
@@ -0,0 +1,21 @@
+The MIT License
+
+Copyright (c) 2007 Mockito contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-mockjs.txt b/distribution/licenses/LICENSE-mockjs.txt
new file mode 100644
index 0000000..9a5016b
--- /dev/null
+++ b/distribution/licenses/LICENSE-mockjs.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 nuysoft
+http://mockjs.com/
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-nightwatch.txt b/distribution/licenses/LICENSE-nightwatch.txt
new file mode 100644
index 0000000..9711c65
--- /dev/null
+++ b/distribution/licenses/LICENSE-nightwatch.txt
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2014-2019 Pine View Software AS. https://pineview.io
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-node-notifier.txt b/distribution/licenses/LICENSE-node-notifier.txt
new file mode 100644
index 0000000..becfa30
--- /dev/null
+++ b/distribution/licenses/LICENSE-node-notifier.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 Mikael Brevik
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-node-sass.txt b/distribution/licenses/LICENSE-node-sass.txt
new file mode 100644
index 0000000..adc9fa9
--- /dev/null
+++ b/distribution/licenses/LICENSE-node-sass.txt
@@ -0,0 +1,20 @@
+Copyright (c) 2013-2016 Andrew Nesbitt
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-normalize.css.txt b/distribution/licenses/LICENSE-normalize.css.txt
new file mode 100644
index 0000000..90e0c09
--- /dev/null
+++ b/distribution/licenses/LICENSE-normalize.css.txt
@@ -0,0 +1,8 @@
+The MIT License (MIT)
+Copyright © Nicolas Gallagher and Jonathan Neal
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-nprogress.txt b/distribution/licenses/LICENSE-nprogress.txt
new file mode 100644
index 0000000..b5a41b0
--- /dev/null
+++ b/distribution/licenses/LICENSE-nprogress.txt
@@ -0,0 +1,7 @@
+Copyright (c) 2013-2014 Rico Sta. Cruz
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-optimize-css-assets-webpack-plugin.txt b/distribution/licenses/LICENSE-optimize-css-assets-webpack-plugin.txt
new file mode 100644
index 0000000..2518947
--- /dev/null
+++ b/distribution/licenses/LICENSE-optimize-css-assets-webpack-plugin.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 Nuno Rodrigues
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-ora.txt b/distribution/licenses/LICENSE-ora.txt
new file mode 100644
index 0000000..06c366f
--- /dev/null
+++ b/distribution/licenses/LICENSE-ora.txt
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-pagehelper.txt b/distribution/licenses/LICENSE-pagehelper.txt
new file mode 100644
index 0000000..123e34f
--- /dev/null
+++ b/distribution/licenses/LICENSE-pagehelper.txt
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2014-2017 abel533@gmail.com
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNEC
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-path-to-regexp.txt b/distribution/licenses/LICENSE-path-to-regexp.txt
new file mode 100644
index 0000000..dcd4d73
--- /dev/null
+++ b/distribution/licenses/LICENSE-path-to-regexp.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-portfinder.txt b/distribution/licenses/LICENSE-portfinder.txt
new file mode 100644
index 0000000..d26f4a2
--- /dev/null
+++ b/distribution/licenses/LICENSE-portfinder.txt
@@ -0,0 +1,22 @@
+node-portfinder
+
+Copyright (c) 2012 Charlie Robbins
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-postcss-import.txt b/distribution/licenses/LICENSE-postcss-import.txt
new file mode 100644
index 0000000..399b7fc
--- /dev/null
+++ b/distribution/licenses/LICENSE-postcss-import.txt
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Maxime Thirouin, Jason Campbell & Kevin Mårtensson
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-postcss-loader.txt b/distribution/licenses/LICENSE-postcss-loader.txt
new file mode 100644
index 0000000..f8fb133
--- /dev/null
+++ b/distribution/licenses/LICENSE-postcss-loader.txt
@@ -0,0 +1,20 @@
+License (MIT)
+
+Copyright 2017 Andrey Sitnik <andrey@sitnik.ru>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-postcss-url.txt b/distribution/licenses/LICENSE-postcss-url.txt
new file mode 100644
index 0000000..855d05c
--- /dev/null
+++ b/distribution/licenses/LICENSE-postcss-url.txt
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Maxime Thirouin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-postgresql.txt b/distribution/licenses/LICENSE-postgresql.txt
new file mode 100644
index 0000000..98dff7b
--- /dev/null
+++ b/distribution/licenses/LICENSE-postgresql.txt
@@ -0,0 +1,23 @@
+Copyright (c) 1997, PostgreSQL Global Development Group
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-rimraf.txt b/distribution/licenses/LICENSE-rimraf.txt
new file mode 100644
index 0000000..3cb6837
--- /dev/null
+++ b/distribution/licenses/LICENSE-rimraf.txt
@@ -0,0 +1,15 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter and Contributors
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-sass-loader.txt b/distribution/licenses/LICENSE-sass-loader.txt
new file mode 100644
index 0000000..3d5fa73
--- /dev/null
+++ b/distribution/licenses/LICENSE-sass-loader.txt
@@ -0,0 +1,20 @@
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-script-ext-html-webpack-plugin.txt b/distribution/licenses/LICENSE-script-ext-html-webpack-plugin.txt
new file mode 100644
index 0000000..b66201a
--- /dev/null
+++ b/distribution/licenses/LICENSE-script-ext-html-webpack-plugin.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 numical
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-script-loader.txt b/distribution/licenses/LICENSE-script-loader.txt
new file mode 100644
index 0000000..b66201a
--- /dev/null
+++ b/distribution/licenses/LICENSE-script-loader.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 numical
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-semver.txt b/distribution/licenses/LICENSE-semver.txt
new file mode 100644
index 0000000..3cb6837
--- /dev/null
+++ b/distribution/licenses/LICENSE-semver.txt
@@ -0,0 +1,15 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter and Contributors
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-serve-static.txt b/distribution/licenses/LICENSE-serve-static.txt
new file mode 100644
index 0000000..1052843
--- /dev/null
+++ b/distribution/licenses/LICENSE-serve-static.txt
@@ -0,0 +1,25 @@
+(The MIT License)
+
+Copyright (c) 2010 Sencha Inc.
+Copyright (c) 2011 LearnBoost
+Copyright (c) 2011 TJ Holowaychuk
+Copyright (c) 2014-2016 Douglas Christopher Wilson
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-shelljs.txt b/distribution/licenses/LICENSE-shelljs.txt
new file mode 100644
index 0000000..5d21b70
--- /dev/null
+++ b/distribution/licenses/LICENSE-shelljs.txt
@@ -0,0 +1,26 @@
+Copyright (c) 2012, Artur Adib <arturadib@gmail.com>
+All rights reserved.
+
+You may use this project under the terms of the New BSD license as follows:
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of Artur Adib nor the
+      names of the contributors may be used to endorse or promote products
+      derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
+ARE DISCLAIMED. IN NO EVENT SHALL ARTUR ADIB BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-showdown.txt b/distribution/licenses/LICENSE-showdown.txt
new file mode 100644
index 0000000..3568800
--- /dev/null
+++ b/distribution/licenses/LICENSE-showdown.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018 ShowdownJS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-sortablejs.txt b/distribution/licenses/LICENSE-sortablejs.txt
new file mode 100644
index 0000000..9189b36
--- /dev/null
+++ b/distribution/licenses/LICENSE-sortablejs.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 All contributors to Sortable
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-svg-sprite-loader.txt b/distribution/licenses/LICENSE-svg-sprite-loader.txt
new file mode 100644
index 0000000..67f6a3a
--- /dev/null
+++ b/distribution/licenses/LICENSE-svg-sprite-loader.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2017 Stas Kurilov (kisenka)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-svgo.txt b/distribution/licenses/LICENSE-svgo.txt
new file mode 100644
index 0000000..abede08
--- /dev/null
+++ b/distribution/licenses/LICENSE-svgo.txt
@@ -0,0 +1,55 @@
+The MIT License
+
+Copyright © 2012–2016 Kir Belevich
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+Лицензия MIT
+
+Copyright © 2012–2016 Кир Белевич
+
+Данная лицензия разрешает лицам, получившим копию данного
+программного обеспечения и сопутствующей документации
+(в дальнейшем именуемыми «Программное Обеспечение»), безвозмездно
+использовать Программное Обеспечение без ограничений, включая
+неограниченное право на использование, копирование, изменение,
+добавление, публикацию, распространение, сублицензирование
+и/или продажу копий Программного Обеспечения, также как и лицам,
+которым предоставляется данное Программное Обеспечение,
+при соблюдении следующих условий:
+
+Указанное выше уведомление об авторском праве и данные условия
+должны быть включены во все копии или значимые части данного
+Программного Обеспечения.
+
+ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ»,
+БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ,
+ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ,
+СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ
+ПРАВ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ
+ОТВЕТСТВЕННОСТИ ПО ИСКАМ О ВОЗМЕЩЕНИИ УЩЕРБА, УБЫТКОВ ИЛИ ДРУГИХ
+ТРЕБОВАНИЙ ПО ДЕЙСТВУЮЩИМ КОНТРАКТАМ, ДЕЛИКТАМ ИЛИ ИНОМУ,
+ВОЗНИКШИМ ИЗ, ИМЕЮЩИМ ПРИЧИНОЙ ИЛИ СВЯЗАННЫМ С ПРОГРАММНЫМ
+ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
+ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-uglifyjs-webpack-plugin.txt b/distribution/licenses/LICENSE-uglifyjs-webpack-plugin.txt
new file mode 100644
index 0000000..3d5fa73
--- /dev/null
+++ b/distribution/licenses/LICENSE-uglifyjs-webpack-plugin.txt
@@ -0,0 +1,20 @@
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-url-loader.txt b/distribution/licenses/LICENSE-url-loader.txt
new file mode 100644
index 0000000..3d5fa73
--- /dev/null
+++ b/distribution/licenses/LICENSE-url-loader.txt
@@ -0,0 +1,20 @@
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-vue-draggable.txt b/distribution/licenses/LICENSE-vue-draggable.txt
new file mode 100644
index 0000000..374c271
--- /dev/null
+++ b/distribution/licenses/LICENSE-vue-draggable.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016-2019 David Desmaisons
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-vue-i18n.txt b/distribution/licenses/LICENSE-vue-i18n.txt
new file mode 100644
index 0000000..e28fb1a
--- /dev/null
+++ b/distribution/licenses/LICENSE-vue-i18n.txt
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 kazuya kawaguchi
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-vue-loader.txt b/distribution/licenses/LICENSE-vue-loader.txt
new file mode 100644
index 0000000..43106df
--- /dev/null
+++ b/distribution/licenses/LICENSE-vue-loader.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015-present Yuxi (Evan) You
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-vue-router.txt b/distribution/licenses/LICENSE-vue-router.txt
new file mode 100644
index 0000000..888e2cc
--- /dev/null
+++ b/distribution/licenses/LICENSE-vue-router.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2013-present Evan You
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/distribution/licenses/LICENSE-vue-style-loader.txt b/distribution/licenses/LICENSE-vue-style-loader.txt
new file mode 100644
index 0000000..3d5fa73
--- /dev/null
+++ b/distribution/licenses/LICENSE-vue-style-loader.txt
@@ -0,0 +1,20 @@
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-vue.txt b/distribution/licenses/LICENSE-vue.txt
new file mode 100644
index 0000000..51e3f9f
--- /dev/null
+++ b/distribution/licenses/LICENSE-vue.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2013-present, Yuxi (Evan) You
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-vuex.txt b/distribution/licenses/LICENSE-vuex.txt
new file mode 100644
index 0000000..884c9eb
--- /dev/null
+++ b/distribution/licenses/LICENSE-vuex.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015-present Evan You
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-webpack-cli.txt b/distribution/licenses/LICENSE-webpack-cli.txt
new file mode 100644
index 0000000..3d5fa73
--- /dev/null
+++ b/distribution/licenses/LICENSE-webpack-cli.txt
@@ -0,0 +1,20 @@
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-webpack-dev-server.txt b/distribution/licenses/LICENSE-webpack-dev-server.txt
new file mode 100644
index 0000000..3d5fa73
--- /dev/null
+++ b/distribution/licenses/LICENSE-webpack-dev-server.txt
@@ -0,0 +1,20 @@
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-webpack-merge.txt b/distribution/licenses/LICENSE-webpack-merge.txt
new file mode 100644
index 0000000..055e174
--- /dev/null
+++ b/distribution/licenses/LICENSE-webpack-merge.txt
@@ -0,0 +1,21 @@
+Copyright (c) 2015 Juho Vepsalainen
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+© 2019 GitHub, Inc.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-webpack-plugin.txt b/distribution/licenses/LICENSE-webpack-plugin.txt
new file mode 100644
index 0000000..3d5fa73
--- /dev/null
+++ b/distribution/licenses/LICENSE-webpack-plugin.txt
@@ -0,0 +1,20 @@
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/distribution/licenses/LICENSE-webpack.txt b/distribution/licenses/LICENSE-webpack.txt
new file mode 100644
index 0000000..3d5fa73
--- /dev/null
+++ b/distribution/licenses/LICENSE-webpack.txt
@@ -0,0 +1,20 @@
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/front-end/package.json b/front-end/package.json
index 691f735..414bf0c 100644
--- a/front-end/package.json
+++ b/front-end/package.json
@@ -50,10 +50,8 @@
     "showdown": "1.8.6",
     "sortablejs": "1.7.0",
     "vue": "2.5.17",
-    "vue-count-to": "1.0.13",
     "vue-i18n": "7.3.2",
     "vue-router": "3.0.1",
-    "vue-splitpane": "1.0.2",
     "vuedraggable": "^2.16.0",
     "vuex": "3.0.1",
     "xlsx": "^0.11.16"
diff --git a/gradle.properties b/gradle.properties
index 2c8f261..c66def0 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -4,7 +4,6 @@
 jsonWebTokenVersion=0.9.0
 jsonWebTokenApiVersion=0.10.5
 jsonWebTokenImplVersion=0.10.5
-sqliteVersion=3.21.0.1
 lombokVersion=1.18.10
 pageHelperVersion=1.2.4
 mockitoVersion=1.10.19
diff --git a/src/main/java/io/streamnative/pulsar/manager/PulsarManagerApplication.java b/src/main/java/org/apache/pulsar/manager/PulsarManagerApplication.java
similarity index 91%
rename from src/main/java/io/streamnative/pulsar/manager/PulsarManagerApplication.java
rename to src/main/java/org/apache/pulsar/manager/PulsarManagerApplication.java
index 0142c9c..1505a02 100644
--- a/src/main/java/io/streamnative/pulsar/manager/PulsarManagerApplication.java
+++ b/src/main/java/org/apache/pulsar/manager/PulsarManagerApplication.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager;
+package org.apache.pulsar.manager;
 
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
@@ -20,7 +20,7 @@
 
 @SpringBootApplication
 @EnableZuulProxy
-@MapperScan("io.streamnative.pulsar.manager.mapper")
+@MapperScan("org.apache.pulsar.manager.mapper")
 public class PulsarManagerApplication {
 
 	public static void main(String[] args) {
diff --git a/src/main/java/io/streamnative/pulsar/manager/controller/BookiesController.java b/src/main/java/org/apache/pulsar/manager/controller/BookiesController.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/controller/BookiesController.java
rename to src/main/java/org/apache/pulsar/manager/controller/BookiesController.java
index 9722116..7794659 100644
--- a/src/main/java/io/streamnative/pulsar/manager/controller/BookiesController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/BookiesController.java
@@ -11,10 +11,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.controller;
+package org.apache.pulsar.manager.controller;
 
 import com.google.common.collect.Maps;
-import io.streamnative.pulsar.manager.service.BookiesService;
+import org.apache.pulsar.manager.service.BookiesService;
 import io.swagger.annotations.*;
 import org.hibernate.validator.constraints.Range;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/io/streamnative/pulsar/manager/controller/BrokerStatsController.java b/src/main/java/org/apache/pulsar/manager/controller/BrokerStatsController.java
similarity index 93%
rename from src/main/java/io/streamnative/pulsar/manager/controller/BrokerStatsController.java
rename to src/main/java/org/apache/pulsar/manager/controller/BrokerStatsController.java
index 7ddd224..4fea44b 100644
--- a/src/main/java/io/streamnative/pulsar/manager/controller/BrokerStatsController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/BrokerStatsController.java
@@ -11,10 +11,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.controller;
+package org.apache.pulsar.manager.controller;
 
-import io.streamnative.pulsar.manager.service.BrokerStatsService;
-import io.streamnative.pulsar.manager.service.EnvironmentCacheService;
+import org.apache.pulsar.manager.service.BrokerStatsService;
+import org.apache.pulsar.manager.service.EnvironmentCacheService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
diff --git a/src/main/java/io/streamnative/pulsar/manager/controller/BrokerTokensController.java b/src/main/java/org/apache/pulsar/manager/controller/BrokerTokensController.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/controller/BrokerTokensController.java
rename to src/main/java/org/apache/pulsar/manager/controller/BrokerTokensController.java
index 6af6890..a3a758b 100644
--- a/src/main/java/io/streamnative/pulsar/manager/controller/BrokerTokensController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/BrokerTokensController.java
@@ -11,13 +11,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.controller;
+package org.apache.pulsar.manager.controller;
 
 import com.github.pagehelper.Page;
 import com.google.common.collect.Maps;
-import io.streamnative.pulsar.manager.entity.BrokerTokenEntity;
-import io.streamnative.pulsar.manager.entity.BrokerTokensRepository;
-import io.streamnative.pulsar.manager.service.JwtService;
+import org.apache.pulsar.manager.entity.BrokerTokenEntity;
+import org.apache.pulsar.manager.entity.BrokerTokensRepository;
+import org.apache.pulsar.manager.service.JwtService;
 import io.swagger.annotations.*;
 import org.hibernate.validator.constraints.Range;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/io/streamnative/pulsar/manager/controller/BrokersController.java b/src/main/java/org/apache/pulsar/manager/controller/BrokersController.java
similarity index 94%
rename from src/main/java/io/streamnative/pulsar/manager/controller/BrokersController.java
rename to src/main/java/org/apache/pulsar/manager/controller/BrokersController.java
index 4e6b7d5..6b4a3c1 100644
--- a/src/main/java/io/streamnative/pulsar/manager/controller/BrokersController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/BrokersController.java
@@ -11,10 +11,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.controller;
+package org.apache.pulsar.manager.controller;
 
-import io.streamnative.pulsar.manager.service.BrokersService;
-import io.streamnative.pulsar.manager.service.EnvironmentCacheService;
+import org.apache.pulsar.manager.service.BrokersService;
+import org.apache.pulsar.manager.service.EnvironmentCacheService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
diff --git a/src/main/java/io/streamnative/pulsar/manager/controller/ClustersController.java b/src/main/java/org/apache/pulsar/manager/controller/ClustersController.java
similarity index 94%
rename from src/main/java/io/streamnative/pulsar/manager/controller/ClustersController.java
rename to src/main/java/org/apache/pulsar/manager/controller/ClustersController.java
index 0db4043..c8fc738 100644
--- a/src/main/java/io/streamnative/pulsar/manager/controller/ClustersController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/ClustersController.java
@@ -11,10 +11,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.controller;
+package org.apache.pulsar.manager.controller;
 
-import io.streamnative.pulsar.manager.service.ClustersService;
-import io.streamnative.pulsar.manager.service.EnvironmentCacheService;
+import org.apache.pulsar.manager.service.ClustersService;
+import org.apache.pulsar.manager.service.EnvironmentCacheService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
diff --git a/src/main/java/io/streamnative/pulsar/manager/controller/EnvironmentsController.java b/src/main/java/org/apache/pulsar/manager/controller/EnvironmentsController.java
similarity index 95%
rename from src/main/java/io/streamnative/pulsar/manager/controller/EnvironmentsController.java
rename to src/main/java/org/apache/pulsar/manager/controller/EnvironmentsController.java
index d7dea7f..587eadf 100644
--- a/src/main/java/io/streamnative/pulsar/manager/controller/EnvironmentsController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/EnvironmentsController.java
@@ -11,14 +11,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.controller;
+package org.apache.pulsar.manager.controller;
 
 import com.github.pagehelper.Page;
 import com.google.common.collect.Maps;
-import io.streamnative.pulsar.manager.entity.EnvironmentEntity;
-import io.streamnative.pulsar.manager.entity.EnvironmentsRepository;
-import io.streamnative.pulsar.manager.service.EnvironmentCacheService;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.entity.EnvironmentEntity;
+import org.apache.pulsar.manager.entity.EnvironmentsRepository;
+import org.apache.pulsar.manager.service.EnvironmentCacheService;
+import org.apache.pulsar.manager.utils.HttpUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
diff --git a/src/main/java/io/streamnative/pulsar/manager/controller/LoginController.java b/src/main/java/org/apache/pulsar/manager/controller/LoginController.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/controller/LoginController.java
rename to src/main/java/org/apache/pulsar/manager/controller/LoginController.java
index 12f20a6..8f1411e 100644
--- a/src/main/java/io/streamnative/pulsar/manager/controller/LoginController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/LoginController.java
@@ -11,10 +11,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.controller;
+package org.apache.pulsar.manager.controller;
 
 import com.google.common.collect.Maps;
-import io.streamnative.pulsar.manager.service.JwtService;
+import org.apache.pulsar.manager.service.JwtService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
diff --git a/src/main/java/io/streamnative/pulsar/manager/controller/NamespacesController.java b/src/main/java/org/apache/pulsar/manager/controller/NamespacesController.java
similarity index 95%
rename from src/main/java/io/streamnative/pulsar/manager/controller/NamespacesController.java
rename to src/main/java/org/apache/pulsar/manager/controller/NamespacesController.java
index 7a35a19..8976e97 100644
--- a/src/main/java/io/streamnative/pulsar/manager/controller/NamespacesController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/NamespacesController.java
@@ -11,10 +11,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.controller;
+package org.apache.pulsar.manager.controller;
 
-import io.streamnative.pulsar.manager.service.EnvironmentCacheService;
-import io.streamnative.pulsar.manager.service.NamespacesService;
+import org.apache.pulsar.manager.service.EnvironmentCacheService;
+import org.apache.pulsar.manager.service.NamespacesService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
diff --git a/src/main/java/io/streamnative/pulsar/manager/controller/TenantsController.java b/src/main/java/org/apache/pulsar/manager/controller/TenantsController.java
similarity index 93%
rename from src/main/java/io/streamnative/pulsar/manager/controller/TenantsController.java
rename to src/main/java/org/apache/pulsar/manager/controller/TenantsController.java
index 66d6a9d..0502575 100644
--- a/src/main/java/io/streamnative/pulsar/manager/controller/TenantsController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/TenantsController.java
@@ -11,10 +11,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.controller;
+package org.apache.pulsar.manager.controller;
 
-import io.streamnative.pulsar.manager.service.EnvironmentCacheService;
-import io.streamnative.pulsar.manager.service.TenantsService;
+import org.apache.pulsar.manager.service.EnvironmentCacheService;
+import org.apache.pulsar.manager.service.TenantsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
diff --git a/src/main/java/io/streamnative/pulsar/manager/controller/TopicsController.java b/src/main/java/org/apache/pulsar/manager/controller/TopicsController.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/controller/TopicsController.java
rename to src/main/java/org/apache/pulsar/manager/controller/TopicsController.java
index e3682d4..93aaa02 100644
--- a/src/main/java/io/streamnative/pulsar/manager/controller/TopicsController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/TopicsController.java
@@ -11,10 +11,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.controller;
+package org.apache.pulsar.manager.controller;
 
-import io.streamnative.pulsar.manager.service.EnvironmentCacheService;
-import io.streamnative.pulsar.manager.service.TopicsService;
+import org.apache.pulsar.manager.service.EnvironmentCacheService;
+import org.apache.pulsar.manager.service.TopicsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
diff --git a/src/main/java/io/streamnative/pulsar/manager/controller/exception/CustomizeExceptionHandler.java b/src/main/java/org/apache/pulsar/manager/controller/exception/CustomizeExceptionHandler.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/controller/exception/CustomizeExceptionHandler.java
rename to src/main/java/org/apache/pulsar/manager/controller/exception/CustomizeExceptionHandler.java
index 6506a0f..6195779 100644
--- a/src/main/java/io/streamnative/pulsar/manager/controller/exception/CustomizeExceptionHandler.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/exception/CustomizeExceptionHandler.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.controller.exception;
+package org.apache.pulsar.manager.controller.exception;
 
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
diff --git a/src/main/java/io/streamnative/pulsar/manager/controller/exception/ErrorResource.java b/src/main/java/org/apache/pulsar/manager/controller/exception/ErrorResource.java
similarity index 94%
rename from src/main/java/io/streamnative/pulsar/manager/controller/exception/ErrorResource.java
rename to src/main/java/org/apache/pulsar/manager/controller/exception/ErrorResource.java
index d898336..e7b7b7e 100644
--- a/src/main/java/io/streamnative/pulsar/manager/controller/exception/ErrorResource.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/exception/ErrorResource.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.controller.exception;
+package org.apache.pulsar.manager.controller.exception;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonRootName;
diff --git a/src/main/java/io/streamnative/pulsar/manager/controller/exception/ErrorResourceSerializer.java b/src/main/java/org/apache/pulsar/manager/controller/exception/ErrorResourceSerializer.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/controller/exception/ErrorResourceSerializer.java
rename to src/main/java/org/apache/pulsar/manager/controller/exception/ErrorResourceSerializer.java
index 6eda74f..6280b11 100644
--- a/src/main/java/io/streamnative/pulsar/manager/controller/exception/ErrorResourceSerializer.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/exception/ErrorResourceSerializer.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.controller.exception;
+package org.apache.pulsar.manager.controller.exception;
 
 import com.fasterxml.jackson.core.JsonGenerator;
 import com.fasterxml.jackson.core.JsonProcessingException;
diff --git a/src/main/java/io/streamnative/pulsar/manager/controller/exception/FieldErrorResource.java b/src/main/java/org/apache/pulsar/manager/controller/exception/FieldErrorResource.java
similarity index 94%
rename from src/main/java/io/streamnative/pulsar/manager/controller/exception/FieldErrorResource.java
rename to src/main/java/org/apache/pulsar/manager/controller/exception/FieldErrorResource.java
index 850b90b..9b32702 100644
--- a/src/main/java/io/streamnative/pulsar/manager/controller/exception/FieldErrorResource.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/exception/FieldErrorResource.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.controller.exception;
+package org.apache.pulsar.manager.controller.exception;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import lombok.Getter;
diff --git a/src/main/java/io/streamnative/pulsar/manager/controller/exception/InvalidRequestException.java b/src/main/java/org/apache/pulsar/manager/controller/exception/InvalidRequestException.java
similarity index 93%
rename from src/main/java/io/streamnative/pulsar/manager/controller/exception/InvalidRequestException.java
rename to src/main/java/org/apache/pulsar/manager/controller/exception/InvalidRequestException.java
index 782567b..659cf58 100644
--- a/src/main/java/io/streamnative/pulsar/manager/controller/exception/InvalidRequestException.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/exception/InvalidRequestException.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.controller.exception;
+package org.apache.pulsar.manager.controller.exception;
 
 import org.springframework.validation.Errors;
 
diff --git a/src/main/java/io/streamnative/pulsar/manager/dao/BrokerTokensRepositoryImpl.java b/src/main/java/org/apache/pulsar/manager/dao/BrokerTokensRepositoryImpl.java
similarity index 88%
rename from src/main/java/io/streamnative/pulsar/manager/dao/BrokerTokensRepositoryImpl.java
rename to src/main/java/org/apache/pulsar/manager/dao/BrokerTokensRepositoryImpl.java
index 50218bb..68873d1 100644
--- a/src/main/java/io/streamnative/pulsar/manager/dao/BrokerTokensRepositoryImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/dao/BrokerTokensRepositoryImpl.java
@@ -11,13 +11,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.dao;
+package org.apache.pulsar.manager.dao;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import io.streamnative.pulsar.manager.entity.BrokerTokenEntity;
-import io.streamnative.pulsar.manager.entity.BrokerTokensRepository;
-import io.streamnative.pulsar.manager.mapper.BrokerTokensMapper;
+import org.apache.pulsar.manager.entity.BrokerTokenEntity;
+import org.apache.pulsar.manager.entity.BrokerTokensRepository;
+import org.apache.pulsar.manager.mapper.BrokerTokensMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 
diff --git a/src/main/java/io/streamnative/pulsar/manager/dao/ConsumersStatsRepositoryImpl.java b/src/main/java/org/apache/pulsar/manager/dao/ConsumersStatsRepositoryImpl.java
similarity index 91%
rename from src/main/java/io/streamnative/pulsar/manager/dao/ConsumersStatsRepositoryImpl.java
rename to src/main/java/org/apache/pulsar/manager/dao/ConsumersStatsRepositoryImpl.java
index 3258a8b..a59bfe9 100644
--- a/src/main/java/io/streamnative/pulsar/manager/dao/ConsumersStatsRepositoryImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/dao/ConsumersStatsRepositoryImpl.java
@@ -11,13 +11,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.dao;
+package org.apache.pulsar.manager.dao;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import io.streamnative.pulsar.manager.entity.ConsumerStatsEntity;
-import io.streamnative.pulsar.manager.entity.ConsumersStatsRepository;
-import io.streamnative.pulsar.manager.mapper.ConsumerStatsMapper;
+import org.apache.pulsar.manager.entity.ConsumerStatsEntity;
+import org.apache.pulsar.manager.entity.ConsumersStatsRepository;
+import org.apache.pulsar.manager.mapper.ConsumerStatsMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 
diff --git a/src/main/java/io/streamnative/pulsar/manager/dao/EnvironmentsRepositoryImpl.java b/src/main/java/org/apache/pulsar/manager/dao/EnvironmentsRepositoryImpl.java
similarity index 90%
rename from src/main/java/io/streamnative/pulsar/manager/dao/EnvironmentsRepositoryImpl.java
rename to src/main/java/org/apache/pulsar/manager/dao/EnvironmentsRepositoryImpl.java
index 4cd1299..a0b570a 100644
--- a/src/main/java/io/streamnative/pulsar/manager/dao/EnvironmentsRepositoryImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/dao/EnvironmentsRepositoryImpl.java
@@ -11,13 +11,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.dao;
+package org.apache.pulsar.manager.dao;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import io.streamnative.pulsar.manager.entity.EnvironmentEntity;
-import io.streamnative.pulsar.manager.entity.EnvironmentsRepository;
-import io.streamnative.pulsar.manager.mapper.EnvironmentsMapper;
+import org.apache.pulsar.manager.entity.EnvironmentEntity;
+import org.apache.pulsar.manager.entity.EnvironmentsRepository;
+import org.apache.pulsar.manager.mapper.EnvironmentsMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 
diff --git a/src/main/java/io/streamnative/pulsar/manager/dao/PublishersStatsRepositoryImpl.java b/src/main/java/org/apache/pulsar/manager/dao/PublishersStatsRepositoryImpl.java
similarity index 87%
rename from src/main/java/io/streamnative/pulsar/manager/dao/PublishersStatsRepositoryImpl.java
rename to src/main/java/org/apache/pulsar/manager/dao/PublishersStatsRepositoryImpl.java
index d835d5b..6c40efe 100644
--- a/src/main/java/io/streamnative/pulsar/manager/dao/PublishersStatsRepositoryImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/dao/PublishersStatsRepositoryImpl.java
@@ -11,13 +11,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.dao;
+package org.apache.pulsar.manager.dao;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import io.streamnative.pulsar.manager.entity.PublisherStatsEntity;
-import io.streamnative.pulsar.manager.entity.PublishersStatsRepository;
-import io.streamnative.pulsar.manager.mapper.PublishersStatsMapper;
+import org.apache.pulsar.manager.entity.PublisherStatsEntity;
+import org.apache.pulsar.manager.entity.PublishersStatsRepository;
+import org.apache.pulsar.manager.mapper.PublishersStatsMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 
diff --git a/src/main/java/io/streamnative/pulsar/manager/dao/ReplicationsStatsRepositoryImpl.java b/src/main/java/org/apache/pulsar/manager/dao/ReplicationsStatsRepositoryImpl.java
similarity index 87%
rename from src/main/java/io/streamnative/pulsar/manager/dao/ReplicationsStatsRepositoryImpl.java
rename to src/main/java/org/apache/pulsar/manager/dao/ReplicationsStatsRepositoryImpl.java
index 34f4a2a..393e451 100644
--- a/src/main/java/io/streamnative/pulsar/manager/dao/ReplicationsStatsRepositoryImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/dao/ReplicationsStatsRepositoryImpl.java
@@ -11,13 +11,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.dao;
+package org.apache.pulsar.manager.dao;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import io.streamnative.pulsar.manager.entity.ReplicationStatsEntity;
-import io.streamnative.pulsar.manager.entity.ReplicationsStatsRepository;
-import io.streamnative.pulsar.manager.mapper.ReplicationsStatsMapper;
+import org.apache.pulsar.manager.entity.ReplicationStatsEntity;
+import org.apache.pulsar.manager.entity.ReplicationsStatsRepository;
+import org.apache.pulsar.manager.mapper.ReplicationsStatsMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 
diff --git a/src/main/java/io/streamnative/pulsar/manager/dao/SubscriptionsStatsRepositoryImpl.java b/src/main/java/org/apache/pulsar/manager/dao/SubscriptionsStatsRepositoryImpl.java
similarity index 87%
rename from src/main/java/io/streamnative/pulsar/manager/dao/SubscriptionsStatsRepositoryImpl.java
rename to src/main/java/org/apache/pulsar/manager/dao/SubscriptionsStatsRepositoryImpl.java
index 370e53d..06b70a0 100644
--- a/src/main/java/io/streamnative/pulsar/manager/dao/SubscriptionsStatsRepositoryImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/dao/SubscriptionsStatsRepositoryImpl.java
@@ -11,13 +11,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.dao;
+package org.apache.pulsar.manager.dao;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import io.streamnative.pulsar.manager.entity.SubscriptionStatsEntity;
-import io.streamnative.pulsar.manager.entity.SubscriptionsStatsRepository;
-import io.streamnative.pulsar.manager.mapper.SubscriptionsStatsMapper;
+import org.apache.pulsar.manager.entity.SubscriptionStatsEntity;
+import org.apache.pulsar.manager.entity.SubscriptionsStatsRepository;
+import org.apache.pulsar.manager.mapper.SubscriptionsStatsMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 
diff --git a/src/main/java/io/streamnative/pulsar/manager/dao/TopicsStatsRepositoryImpl.java b/src/main/java/org/apache/pulsar/manager/dao/TopicsStatsRepositoryImpl.java
similarity index 93%
rename from src/main/java/io/streamnative/pulsar/manager/dao/TopicsStatsRepositoryImpl.java
rename to src/main/java/org/apache/pulsar/manager/dao/TopicsStatsRepositoryImpl.java
index 2e54a91..a5990b1 100644
--- a/src/main/java/io/streamnative/pulsar/manager/dao/TopicsStatsRepositoryImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/dao/TopicsStatsRepositoryImpl.java
@@ -11,13 +11,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.dao;
+package org.apache.pulsar.manager.dao;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import io.streamnative.pulsar.manager.entity.TopicStatsEntity;
-import io.streamnative.pulsar.manager.entity.TopicsStatsRepository;
-import io.streamnative.pulsar.manager.mapper.TopicsStatsMapper;
+import org.apache.pulsar.manager.entity.TopicStatsEntity;
+import org.apache.pulsar.manager.entity.TopicsStatsRepository;
+import org.apache.pulsar.manager.mapper.TopicsStatsMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/BrokerTokenEntity.java b/src/main/java/org/apache/pulsar/manager/entity/BrokerTokenEntity.java
similarity index 94%
rename from src/main/java/io/streamnative/pulsar/manager/entity/BrokerTokenEntity.java
rename to src/main/java/org/apache/pulsar/manager/entity/BrokerTokenEntity.java
index 680e412..d8bc124 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/BrokerTokenEntity.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/BrokerTokenEntity.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/BrokerTokensRepository.java b/src/main/java/org/apache/pulsar/manager/entity/BrokerTokensRepository.java
similarity index 95%
rename from src/main/java/io/streamnative/pulsar/manager/entity/BrokerTokensRepository.java
rename to src/main/java/org/apache/pulsar/manager/entity/BrokerTokensRepository.java
index a2e392b..a67e375 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/BrokerTokensRepository.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/BrokerTokensRepository.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import com.github.pagehelper.Page;
 import org.springframework.stereotype.Repository;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/ConsumerStatsEntity.java b/src/main/java/org/apache/pulsar/manager/entity/ConsumerStatsEntity.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/entity/ConsumerStatsEntity.java
rename to src/main/java/org/apache/pulsar/manager/entity/ConsumerStatsEntity.java
index 35b884e..ff950e3 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/ConsumerStatsEntity.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/ConsumerStatsEntity.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/ConsumersStatsRepository.java b/src/main/java/org/apache/pulsar/manager/entity/ConsumersStatsRepository.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/entity/ConsumersStatsRepository.java
rename to src/main/java/org/apache/pulsar/manager/entity/ConsumersStatsRepository.java
index 1cb69ae..20c6d65 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/ConsumersStatsRepository.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/ConsumersStatsRepository.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import com.github.pagehelper.Page;
 import org.springframework.stereotype.Repository;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/EnvironmentEntity.java b/src/main/java/org/apache/pulsar/manager/entity/EnvironmentEntity.java
similarity index 94%
rename from src/main/java/io/streamnative/pulsar/manager/entity/EnvironmentEntity.java
rename to src/main/java/org/apache/pulsar/manager/entity/EnvironmentEntity.java
index e2340f7..956bac8 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/EnvironmentEntity.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/EnvironmentEntity.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/EnvironmentsRepository.java b/src/main/java/org/apache/pulsar/manager/entity/EnvironmentsRepository.java
similarity index 95%
rename from src/main/java/io/streamnative/pulsar/manager/entity/EnvironmentsRepository.java
rename to src/main/java/org/apache/pulsar/manager/entity/EnvironmentsRepository.java
index 88aae4c..7e65fd4 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/EnvironmentsRepository.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/EnvironmentsRepository.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import com.github.pagehelper.Page;
 import org.springframework.stereotype.Repository;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/PublisherStatsEntity.java b/src/main/java/org/apache/pulsar/manager/entity/PublisherStatsEntity.java
similarity index 95%
rename from src/main/java/io/streamnative/pulsar/manager/entity/PublisherStatsEntity.java
rename to src/main/java/org/apache/pulsar/manager/entity/PublisherStatsEntity.java
index 05dec15..ceff8e8 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/PublisherStatsEntity.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/PublisherStatsEntity.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/PublishersStatsRepository.java b/src/main/java/org/apache/pulsar/manager/entity/PublishersStatsRepository.java
similarity index 95%
rename from src/main/java/io/streamnative/pulsar/manager/entity/PublishersStatsRepository.java
rename to src/main/java/org/apache/pulsar/manager/entity/PublishersStatsRepository.java
index 98f5fcc..7065d30 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/PublishersStatsRepository.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/PublishersStatsRepository.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import com.github.pagehelper.Page;
 import org.springframework.stereotype.Repository;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/PulsarManagerConsumerStats.java b/src/main/java/org/apache/pulsar/manager/entity/PulsarManagerConsumerStats.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/entity/PulsarManagerConsumerStats.java
rename to src/main/java/org/apache/pulsar/manager/entity/PulsarManagerConsumerStats.java
index 3eb2c22..a9830fa 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/PulsarManagerConsumerStats.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/PulsarManagerConsumerStats.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/PulsarManagerPublisherStats.java b/src/main/java/org/apache/pulsar/manager/entity/PulsarManagerPublisherStats.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/entity/PulsarManagerPublisherStats.java
rename to src/main/java/org/apache/pulsar/manager/entity/PulsarManagerPublisherStats.java
index a92e186..28fd8bb 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/PulsarManagerPublisherStats.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/PulsarManagerPublisherStats.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/PulsarManagerReplicatorStats.java b/src/main/java/org/apache/pulsar/manager/entity/PulsarManagerReplicatorStats.java
similarity index 97%
rename from src/main/java/io/streamnative/pulsar/manager/entity/PulsarManagerReplicatorStats.java
rename to src/main/java/org/apache/pulsar/manager/entity/PulsarManagerReplicatorStats.java
index 7afb15a..5ec7be8 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/PulsarManagerReplicatorStats.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/PulsarManagerReplicatorStats.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/PulsarManagerSubscriptionStats.java b/src/main/java/org/apache/pulsar/manager/entity/PulsarManagerSubscriptionStats.java
similarity index 97%
rename from src/main/java/io/streamnative/pulsar/manager/entity/PulsarManagerSubscriptionStats.java
rename to src/main/java/org/apache/pulsar/manager/entity/PulsarManagerSubscriptionStats.java
index 877807c..784765a 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/PulsarManagerSubscriptionStats.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/PulsarManagerSubscriptionStats.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/PulsarManagerTopicStats.java b/src/main/java/org/apache/pulsar/manager/entity/PulsarManagerTopicStats.java
similarity index 97%
rename from src/main/java/io/streamnative/pulsar/manager/entity/PulsarManagerTopicStats.java
rename to src/main/java/org/apache/pulsar/manager/entity/PulsarManagerTopicStats.java
index 29a5cf8..649bdaf 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/PulsarManagerTopicStats.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/PulsarManagerTopicStats.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/ReplicationStatsEntity.java b/src/main/java/org/apache/pulsar/manager/entity/ReplicationStatsEntity.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/entity/ReplicationStatsEntity.java
rename to src/main/java/org/apache/pulsar/manager/entity/ReplicationStatsEntity.java
index cfcd4ec..a8b0399 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/ReplicationStatsEntity.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/ReplicationStatsEntity.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/ReplicationsStatsRepository.java b/src/main/java/org/apache/pulsar/manager/entity/ReplicationsStatsRepository.java
similarity index 95%
rename from src/main/java/io/streamnative/pulsar/manager/entity/ReplicationsStatsRepository.java
rename to src/main/java/org/apache/pulsar/manager/entity/ReplicationsStatsRepository.java
index 75e4866..e01332f 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/ReplicationsStatsRepository.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/ReplicationsStatsRepository.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import com.github.pagehelper.Page;
 import org.springframework.stereotype.Repository;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/SubscriptionStatsEntity.java b/src/main/java/org/apache/pulsar/manager/entity/SubscriptionStatsEntity.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/entity/SubscriptionStatsEntity.java
rename to src/main/java/org/apache/pulsar/manager/entity/SubscriptionStatsEntity.java
index c117063..b0ba3ce 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/SubscriptionStatsEntity.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/SubscriptionStatsEntity.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/SubscriptionsStatsRepository.java b/src/main/java/org/apache/pulsar/manager/entity/SubscriptionsStatsRepository.java
similarity index 95%
rename from src/main/java/io/streamnative/pulsar/manager/entity/SubscriptionsStatsRepository.java
rename to src/main/java/org/apache/pulsar/manager/entity/SubscriptionsStatsRepository.java
index 2fe8fe8..f51c1eb 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/SubscriptionsStatsRepository.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/SubscriptionsStatsRepository.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import com.github.pagehelper.Page;
 import org.springframework.stereotype.Repository;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/TopicStatsEntity.java b/src/main/java/org/apache/pulsar/manager/entity/TopicStatsEntity.java
similarity index 98%
rename from src/main/java/io/streamnative/pulsar/manager/entity/TopicStatsEntity.java
rename to src/main/java/org/apache/pulsar/manager/entity/TopicStatsEntity.java
index 11089df..5ca1107 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/TopicStatsEntity.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/TopicStatsEntity.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import lombok.Data;
 import lombok.Getter;
diff --git a/src/main/java/io/streamnative/pulsar/manager/entity/TopicsStatsRepository.java b/src/main/java/org/apache/pulsar/manager/entity/TopicsStatsRepository.java
similarity index 97%
rename from src/main/java/io/streamnative/pulsar/manager/entity/TopicsStatsRepository.java
rename to src/main/java/org/apache/pulsar/manager/entity/TopicsStatsRepository.java
index aaa21ae..98e688a 100644
--- a/src/main/java/io/streamnative/pulsar/manager/entity/TopicsStatsRepository.java
+++ b/src/main/java/org/apache/pulsar/manager/entity/TopicsStatsRepository.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.entity;
+package org.apache.pulsar.manager.entity;
 
 import com.github.pagehelper.Page;
 import org.springframework.stereotype.Repository;
diff --git a/src/main/java/io/streamnative/pulsar/manager/interceptor/AdminHandlerInterceptor.java b/src/main/java/org/apache/pulsar/manager/interceptor/AdminHandlerInterceptor.java
similarity index 91%
rename from src/main/java/io/streamnative/pulsar/manager/interceptor/AdminHandlerInterceptor.java
rename to src/main/java/org/apache/pulsar/manager/interceptor/AdminHandlerInterceptor.java
index 8df8550..3fc8e01 100644
--- a/src/main/java/io/streamnative/pulsar/manager/interceptor/AdminHandlerInterceptor.java
+++ b/src/main/java/org/apache/pulsar/manager/interceptor/AdminHandlerInterceptor.java
@@ -11,13 +11,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.interceptor;
+package org.apache.pulsar.manager.interceptor;
 
 import com.google.common.collect.Maps;
 import com.google.gson.Gson;
-import io.streamnative.pulsar.manager.entity.EnvironmentEntity;
-import io.streamnative.pulsar.manager.entity.EnvironmentsRepository;
-import io.streamnative.pulsar.manager.service.JwtService;
+import org.apache.pulsar.manager.entity.EnvironmentEntity;
+import org.apache.pulsar.manager.entity.EnvironmentsRepository;
+import org.apache.pulsar.manager.service.JwtService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.lang.Nullable;
 import org.springframework.stereotype.Component;
diff --git a/src/main/java/io/streamnative/pulsar/manager/interceptor/WebAppConfigurer.java b/src/main/java/org/apache/pulsar/manager/interceptor/WebAppConfigurer.java
similarity index 95%
rename from src/main/java/io/streamnative/pulsar/manager/interceptor/WebAppConfigurer.java
rename to src/main/java/org/apache/pulsar/manager/interceptor/WebAppConfigurer.java
index 0c25c4d..818e294 100644
--- a/src/main/java/io/streamnative/pulsar/manager/interceptor/WebAppConfigurer.java
+++ b/src/main/java/org/apache/pulsar/manager/interceptor/WebAppConfigurer.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.interceptor;
+package org.apache.pulsar.manager.interceptor;
 
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
diff --git a/src/main/java/io/streamnative/pulsar/manager/mapper/BrokerTokensMapper.java b/src/main/java/org/apache/pulsar/manager/mapper/BrokerTokensMapper.java
similarity index 92%
rename from src/main/java/io/streamnative/pulsar/manager/mapper/BrokerTokensMapper.java
rename to src/main/java/org/apache/pulsar/manager/mapper/BrokerTokensMapper.java
index cce260e..e9c5290 100644
--- a/src/main/java/io/streamnative/pulsar/manager/mapper/BrokerTokensMapper.java
+++ b/src/main/java/org/apache/pulsar/manager/mapper/BrokerTokensMapper.java
@@ -11,10 +11,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.mapper;
+package org.apache.pulsar.manager.mapper;
 
 import com.github.pagehelper.Page;
-import io.streamnative.pulsar.manager.entity.BrokerTokenEntity;
+import org.apache.pulsar.manager.entity.BrokerTokenEntity;
 import org.apache.ibatis.annotations.*;
 
 /**
diff --git a/src/main/java/io/streamnative/pulsar/manager/mapper/ConsumerStatsMapper.java b/src/main/java/org/apache/pulsar/manager/mapper/ConsumerStatsMapper.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/mapper/ConsumerStatsMapper.java
rename to src/main/java/org/apache/pulsar/manager/mapper/ConsumerStatsMapper.java
index c66876a..b1be1ea 100644
--- a/src/main/java/io/streamnative/pulsar/manager/mapper/ConsumerStatsMapper.java
+++ b/src/main/java/org/apache/pulsar/manager/mapper/ConsumerStatsMapper.java
@@ -11,10 +11,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.mapper;
+package org.apache.pulsar.manager.mapper;
 
 import com.github.pagehelper.Page;
-import io.streamnative.pulsar.manager.entity.ConsumerStatsEntity;
+import org.apache.pulsar.manager.entity.ConsumerStatsEntity;
 import org.apache.ibatis.annotations.*;
 
 @Mapper
diff --git a/src/main/java/io/streamnative/pulsar/manager/mapper/EnvironmentsMapper.java b/src/main/java/org/apache/pulsar/manager/mapper/EnvironmentsMapper.java
similarity index 93%
rename from src/main/java/io/streamnative/pulsar/manager/mapper/EnvironmentsMapper.java
rename to src/main/java/org/apache/pulsar/manager/mapper/EnvironmentsMapper.java
index a8d9409..77abd91 100644
--- a/src/main/java/io/streamnative/pulsar/manager/mapper/EnvironmentsMapper.java
+++ b/src/main/java/org/apache/pulsar/manager/mapper/EnvironmentsMapper.java
@@ -11,10 +11,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.mapper;
+package org.apache.pulsar.manager.mapper;
 
 import com.github.pagehelper.Page;
-import io.streamnative.pulsar.manager.entity.EnvironmentEntity;
+import org.apache.pulsar.manager.entity.EnvironmentEntity;
 import org.apache.ibatis.annotations.*;
 
 import java.util.List;
diff --git a/src/main/java/io/streamnative/pulsar/manager/mapper/PublishersStatsMapper.java b/src/main/java/org/apache/pulsar/manager/mapper/PublishersStatsMapper.java
similarity index 94%
rename from src/main/java/io/streamnative/pulsar/manager/mapper/PublishersStatsMapper.java
rename to src/main/java/org/apache/pulsar/manager/mapper/PublishersStatsMapper.java
index f98a382..dc7e3f0 100644
--- a/src/main/java/io/streamnative/pulsar/manager/mapper/PublishersStatsMapper.java
+++ b/src/main/java/org/apache/pulsar/manager/mapper/PublishersStatsMapper.java
@@ -11,10 +11,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.mapper;
+package org.apache.pulsar.manager.mapper;
 
 import com.github.pagehelper.Page;
-import io.streamnative.pulsar.manager.entity.PublisherStatsEntity;
+import org.apache.pulsar.manager.entity.PublisherStatsEntity;
 import org.apache.ibatis.annotations.*;
 
 @Mapper
diff --git a/src/main/java/io/streamnative/pulsar/manager/mapper/ReplicationsStatsMapper.java b/src/main/java/org/apache/pulsar/manager/mapper/ReplicationsStatsMapper.java
similarity index 95%
rename from src/main/java/io/streamnative/pulsar/manager/mapper/ReplicationsStatsMapper.java
rename to src/main/java/org/apache/pulsar/manager/mapper/ReplicationsStatsMapper.java
index 36ccc4f..5ff349e 100644
--- a/src/main/java/io/streamnative/pulsar/manager/mapper/ReplicationsStatsMapper.java
+++ b/src/main/java/org/apache/pulsar/manager/mapper/ReplicationsStatsMapper.java
@@ -11,10 +11,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.mapper;
+package org.apache.pulsar.manager.mapper;
 
 import com.github.pagehelper.Page;
-import io.streamnative.pulsar.manager.entity.ReplicationStatsEntity;
+import org.apache.pulsar.manager.entity.ReplicationStatsEntity;
 import org.apache.ibatis.annotations.*;
 
 @Mapper
diff --git a/src/main/java/io/streamnative/pulsar/manager/mapper/SubscriptionsStatsMapper.java b/src/main/java/org/apache/pulsar/manager/mapper/SubscriptionsStatsMapper.java
similarity index 95%
rename from src/main/java/io/streamnative/pulsar/manager/mapper/SubscriptionsStatsMapper.java
rename to src/main/java/org/apache/pulsar/manager/mapper/SubscriptionsStatsMapper.java
index ec57cb9..557881d 100644
--- a/src/main/java/io/streamnative/pulsar/manager/mapper/SubscriptionsStatsMapper.java
+++ b/src/main/java/org/apache/pulsar/manager/mapper/SubscriptionsStatsMapper.java
@@ -11,10 +11,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.mapper;
+package org.apache.pulsar.manager.mapper;
 
 import com.github.pagehelper.Page;
-import io.streamnative.pulsar.manager.entity.SubscriptionStatsEntity;
+import org.apache.pulsar.manager.entity.SubscriptionStatsEntity;
 import org.apache.ibatis.annotations.*;
 
 @Mapper
diff --git a/src/main/java/io/streamnative/pulsar/manager/mapper/TopicsStatsMapper.java b/src/main/java/org/apache/pulsar/manager/mapper/TopicsStatsMapper.java
similarity index 97%
rename from src/main/java/io/streamnative/pulsar/manager/mapper/TopicsStatsMapper.java
rename to src/main/java/org/apache/pulsar/manager/mapper/TopicsStatsMapper.java
index bc08c8d..1309244 100644
--- a/src/main/java/io/streamnative/pulsar/manager/mapper/TopicsStatsMapper.java
+++ b/src/main/java/org/apache/pulsar/manager/mapper/TopicsStatsMapper.java
@@ -11,10 +11,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.mapper;
+package org.apache.pulsar.manager.mapper;
 
 import com.github.pagehelper.Page;
-import io.streamnative.pulsar.manager.entity.TopicStatsEntity;
+import org.apache.pulsar.manager.entity.TopicStatsEntity;
 import org.apache.ibatis.annotations.*;
 
 import java.util.List;
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/BookiesService.java b/src/main/java/org/apache/pulsar/manager/service/BookiesService.java
similarity index 93%
rename from src/main/java/io/streamnative/pulsar/manager/service/BookiesService.java
rename to src/main/java/org/apache/pulsar/manager/service/BookiesService.java
index 4479670..e738f0e 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/BookiesService.java
+++ b/src/main/java/org/apache/pulsar/manager/service/BookiesService.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import java.util.Map;
 
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/BrokerStatsService.java b/src/main/java/org/apache/pulsar/manager/service/BrokerStatsService.java
similarity index 94%
rename from src/main/java/io/streamnative/pulsar/manager/service/BrokerStatsService.java
rename to src/main/java/org/apache/pulsar/manager/service/BrokerStatsService.java
index 6e0b91f..8e75d3b 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/BrokerStatsService.java
+++ b/src/main/java/org/apache/pulsar/manager/service/BrokerStatsService.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 public interface BrokerStatsService {
 
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/BrokersService.java b/src/main/java/org/apache/pulsar/manager/service/BrokersService.java
similarity index 93%
rename from src/main/java/io/streamnative/pulsar/manager/service/BrokersService.java
rename to src/main/java/org/apache/pulsar/manager/service/BrokersService.java
index eeb7b49..f4bf825 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/BrokersService.java
+++ b/src/main/java/org/apache/pulsar/manager/service/BrokersService.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import java.util.Map;
 
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/ClustersService.java b/src/main/java/org/apache/pulsar/manager/service/ClustersService.java
similarity index 94%
rename from src/main/java/io/streamnative/pulsar/manager/service/ClustersService.java
rename to src/main/java/org/apache/pulsar/manager/service/ClustersService.java
index 5bd1f03..4733ec7 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/ClustersService.java
+++ b/src/main/java/org/apache/pulsar/manager/service/ClustersService.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import java.util.Map;
 import java.util.function.Function;
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/EnvironmentCacheService.java b/src/main/java/org/apache/pulsar/manager/service/EnvironmentCacheService.java
similarity index 93%
rename from src/main/java/io/streamnative/pulsar/manager/service/EnvironmentCacheService.java
rename to src/main/java/org/apache/pulsar/manager/service/EnvironmentCacheService.java
index 2ed6357..6bf9889 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/EnvironmentCacheService.java
+++ b/src/main/java/org/apache/pulsar/manager/service/EnvironmentCacheService.java
@@ -11,9 +11,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
-import io.streamnative.pulsar.manager.entity.EnvironmentEntity;
+import org.apache.pulsar.manager.entity.EnvironmentEntity;
 import javax.servlet.http.HttpServletRequest;
 
 public interface EnvironmentCacheService {
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/JwtService.java b/src/main/java/org/apache/pulsar/manager/service/JwtService.java
similarity index 95%
rename from src/main/java/io/streamnative/pulsar/manager/service/JwtService.java
rename to src/main/java/org/apache/pulsar/manager/service/JwtService.java
index da953b4..64d5162 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/JwtService.java
+++ b/src/main/java/org/apache/pulsar/manager/service/JwtService.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import io.jsonwebtoken.Claims;
 import org.springframework.stereotype.Service;
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/NamespacesService.java b/src/main/java/org/apache/pulsar/manager/service/NamespacesService.java
similarity index 94%
rename from src/main/java/io/streamnative/pulsar/manager/service/NamespacesService.java
rename to src/main/java/org/apache/pulsar/manager/service/NamespacesService.java
index c1dea4c..091148a 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/NamespacesService.java
+++ b/src/main/java/org/apache/pulsar/manager/service/NamespacesService.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import com.google.common.collect.Maps;
 
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/TenantsService.java b/src/main/java/org/apache/pulsar/manager/service/TenantsService.java
similarity index 93%
rename from src/main/java/io/streamnative/pulsar/manager/service/TenantsService.java
rename to src/main/java/org/apache/pulsar/manager/service/TenantsService.java
index cf8d3d0..001f4d8 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/TenantsService.java
+++ b/src/main/java/org/apache/pulsar/manager/service/TenantsService.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import org.springframework.stereotype.Service;
 
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/TopicsService.java b/src/main/java/org/apache/pulsar/manager/service/TopicsService.java
similarity index 95%
rename from src/main/java/io/streamnative/pulsar/manager/service/TopicsService.java
rename to src/main/java/org/apache/pulsar/manager/service/TopicsService.java
index 328dbad..4ae0cdc 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/TopicsService.java
+++ b/src/main/java/org/apache/pulsar/manager/service/TopicsService.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import java.util.List;
 import java.util.Map;
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/impl/BookiesServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/BookiesServiceImpl.java
similarity index 97%
rename from src/main/java/io/streamnative/pulsar/manager/service/impl/BookiesServiceImpl.java
rename to src/main/java/org/apache/pulsar/manager/service/impl/BookiesServiceImpl.java
index 49e195c..f661c9f 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/impl/BookiesServiceImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/service/impl/BookiesServiceImpl.java
@@ -11,13 +11,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service.impl;
+package org.apache.pulsar.manager.service.impl;
 
 import com.google.common.collect.Maps;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
-import io.streamnative.pulsar.manager.service.BookiesService;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.service.BookiesService;
+import org.apache.pulsar.manager.utils.HttpUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/impl/BrokerStatsServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/BrokerStatsServiceImpl.java
similarity index 92%
rename from src/main/java/io/streamnative/pulsar/manager/service/impl/BrokerStatsServiceImpl.java
rename to src/main/java/org/apache/pulsar/manager/service/impl/BrokerStatsServiceImpl.java
index c328e4f..5a52e51 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/impl/BrokerStatsServiceImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/service/impl/BrokerStatsServiceImpl.java
@@ -11,30 +11,30 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service.impl;
+package org.apache.pulsar.manager.service.impl;
 
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
 
 import java.text.DecimalFormat;
-import io.streamnative.pulsar.manager.service.BrokerStatsService;
-import io.streamnative.pulsar.manager.service.BrokersService;
-import io.streamnative.pulsar.manager.service.ClustersService;
-import io.streamnative.pulsar.manager.service.EnvironmentCacheService;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
-import io.streamnative.pulsar.manager.entity.ConsumerStatsEntity;
-import io.streamnative.pulsar.manager.entity.ConsumersStatsRepository;
-import io.streamnative.pulsar.manager.entity.EnvironmentEntity;
-import io.streamnative.pulsar.manager.entity.EnvironmentsRepository;
-import io.streamnative.pulsar.manager.entity.PublisherStatsEntity;
-import io.streamnative.pulsar.manager.entity.PublishersStatsRepository;
-import io.streamnative.pulsar.manager.entity.PulsarManagerTopicStats;
-import io.streamnative.pulsar.manager.entity.ReplicationStatsEntity;
-import io.streamnative.pulsar.manager.entity.ReplicationsStatsRepository;
-import io.streamnative.pulsar.manager.entity.SubscriptionStatsEntity;
-import io.streamnative.pulsar.manager.entity.SubscriptionsStatsRepository;
-import io.streamnative.pulsar.manager.entity.TopicStatsEntity;
-import io.streamnative.pulsar.manager.entity.TopicsStatsRepository;
+import org.apache.pulsar.manager.service.BrokerStatsService;
+import org.apache.pulsar.manager.service.BrokersService;
+import org.apache.pulsar.manager.service.ClustersService;
+import org.apache.pulsar.manager.service.EnvironmentCacheService;
+import org.apache.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.entity.ConsumerStatsEntity;
+import org.apache.pulsar.manager.entity.ConsumersStatsRepository;
+import org.apache.pulsar.manager.entity.EnvironmentEntity;
+import org.apache.pulsar.manager.entity.EnvironmentsRepository;
+import org.apache.pulsar.manager.entity.PublisherStatsEntity;
+import org.apache.pulsar.manager.entity.PublishersStatsRepository;
+import org.apache.pulsar.manager.entity.PulsarManagerTopicStats;
+import org.apache.pulsar.manager.entity.ReplicationStatsEntity;
+import org.apache.pulsar.manager.entity.ReplicationsStatsRepository;
+import org.apache.pulsar.manager.entity.SubscriptionStatsEntity;
+import org.apache.pulsar.manager.entity.SubscriptionsStatsRepository;
+import org.apache.pulsar.manager.entity.TopicStatsEntity;
+import org.apache.pulsar.manager.entity.TopicsStatsRepository;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/impl/BrokersServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/BrokersServiceImpl.java
similarity index 95%
rename from src/main/java/io/streamnative/pulsar/manager/service/impl/BrokersServiceImpl.java
rename to src/main/java/org/apache/pulsar/manager/service/impl/BrokersServiceImpl.java
index cd6496f..46bfba7 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/impl/BrokersServiceImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/service/impl/BrokersServiceImpl.java
@@ -11,13 +11,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service.impl;
+package org.apache.pulsar.manager.service.impl;
 
 import com.google.common.collect.Maps;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
-import io.streamnative.pulsar.manager.service.BrokersService;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.service.BrokersService;
+import org.apache.pulsar.manager.utils.HttpUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/impl/ClustersServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/ClustersServiceImpl.java
similarity index 93%
rename from src/main/java/io/streamnative/pulsar/manager/service/impl/ClustersServiceImpl.java
rename to src/main/java/org/apache/pulsar/manager/service/impl/ClustersServiceImpl.java
index 92820a3..920e4d3 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/impl/ClustersServiceImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/service/impl/ClustersServiceImpl.java
@@ -11,14 +11,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service.impl;
+package org.apache.pulsar.manager.service.impl;
 
 import com.google.common.collect.Maps;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
-import io.streamnative.pulsar.manager.service.BrokersService;
-import io.streamnative.pulsar.manager.service.ClustersService;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.service.BrokersService;
+import org.apache.pulsar.manager.service.ClustersService;
+import org.apache.pulsar.manager.utils.HttpUtil;
 import java.util.function.Function;
 
 import org.apache.commons.lang3.StringUtils;
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/impl/EnvironmentCacheServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/EnvironmentCacheServiceImpl.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/service/impl/EnvironmentCacheServiceImpl.java
rename to src/main/java/org/apache/pulsar/manager/service/impl/EnvironmentCacheServiceImpl.java
index 7a8dd8a..b5fcaa5 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/impl/EnvironmentCacheServiceImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/service/impl/EnvironmentCacheServiceImpl.java
@@ -11,17 +11,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service.impl;
+package org.apache.pulsar.manager.service.impl;
 
 import com.github.pagehelper.Page;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
-import io.streamnative.pulsar.manager.entity.EnvironmentEntity;
-import io.streamnative.pulsar.manager.entity.EnvironmentsRepository;
-import io.streamnative.pulsar.manager.service.EnvironmentCacheService;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.entity.EnvironmentEntity;
+import org.apache.pulsar.manager.entity.EnvironmentsRepository;
+import org.apache.pulsar.manager.service.EnvironmentCacheService;
+import org.apache.pulsar.manager.utils.HttpUtil;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/impl/JwtServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/JwtServiceImpl.java
similarity index 97%
rename from src/main/java/io/streamnative/pulsar/manager/service/impl/JwtServiceImpl.java
rename to src/main/java/org/apache/pulsar/manager/service/impl/JwtServiceImpl.java
index 51cc684..ce2cbe7 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/impl/JwtServiceImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/service/impl/JwtServiceImpl.java
@@ -11,11 +11,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service.impl;
+package org.apache.pulsar.manager.service.impl;
 
 import io.jsonwebtoken.*;
 import io.jsonwebtoken.security.Keys;
-import io.streamnative.pulsar.manager.service.JwtService;
+import org.apache.pulsar.manager.service.JwtService;
 
 import lombok.extern.slf4j.Slf4j;
 import org.apache.pulsar.broker.authentication.utils.AuthTokenUtils;
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/impl/NamespacesServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/NamespacesServiceImpl.java
similarity index 92%
rename from src/main/java/io/streamnative/pulsar/manager/service/impl/NamespacesServiceImpl.java
rename to src/main/java/org/apache/pulsar/manager/service/impl/NamespacesServiceImpl.java
index e1e19e2..fb48dff 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/impl/NamespacesServiceImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/service/impl/NamespacesServiceImpl.java
@@ -11,17 +11,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service.impl;
+package org.apache.pulsar.manager.service.impl;
 
 import com.github.pagehelper.Page;
 import com.google.common.collect.Maps;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
-import io.streamnative.pulsar.manager.entity.TopicStatsEntity;
-import io.streamnative.pulsar.manager.entity.TopicsStatsRepository;
-import io.streamnative.pulsar.manager.service.NamespacesService;
-import io.streamnative.pulsar.manager.service.TopicsService;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.entity.TopicStatsEntity;
+import org.apache.pulsar.manager.entity.TopicsStatsRepository;
+import org.apache.pulsar.manager.service.NamespacesService;
+import org.apache.pulsar.manager.service.TopicsService;
+import org.apache.pulsar.manager.utils.HttpUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/impl/TenantsServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/TenantsServiceImpl.java
similarity index 95%
rename from src/main/java/io/streamnative/pulsar/manager/service/impl/TenantsServiceImpl.java
rename to src/main/java/org/apache/pulsar/manager/service/impl/TenantsServiceImpl.java
index 5017e7d..2751986 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/impl/TenantsServiceImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/service/impl/TenantsServiceImpl.java
@@ -11,13 +11,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service.impl;
+package org.apache.pulsar.manager.service.impl;
 
 import com.google.common.collect.Maps;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
-import io.streamnative.pulsar.manager.service.TenantsService;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.service.TenantsService;
+import org.apache.pulsar.manager.utils.HttpUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.pulsar.common.policies.data.TenantInfo;
 import org.slf4j.Logger;
diff --git a/src/main/java/io/streamnative/pulsar/manager/service/impl/TopicsServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/TopicsServiceImpl.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/service/impl/TopicsServiceImpl.java
rename to src/main/java/org/apache/pulsar/manager/service/impl/TopicsServiceImpl.java
index ff25b2b..34abde9 100644
--- a/src/main/java/io/streamnative/pulsar/manager/service/impl/TopicsServiceImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/service/impl/TopicsServiceImpl.java
@@ -11,17 +11,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service.impl;
+package org.apache.pulsar.manager.service.impl;
 
 import com.github.pagehelper.Page;
 import com.google.common.collect.Maps;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
-import io.streamnative.pulsar.manager.entity.TopicStatsEntity;
-import io.streamnative.pulsar.manager.entity.TopicStatsEntity.TopicStatsSummary;
-import io.streamnative.pulsar.manager.entity.TopicsStatsRepository;
-import io.streamnative.pulsar.manager.service.TopicsService;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.entity.TopicStatsEntity;
+import org.apache.pulsar.manager.entity.TopicStatsEntity.TopicStatsSummary;
+import org.apache.pulsar.manager.entity.TopicsStatsRepository;
+import org.apache.pulsar.manager.service.TopicsService;
+import org.apache.pulsar.manager.utils.HttpUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/src/main/java/io/streamnative/pulsar/manager/swagger/SwaggerConfig.java b/src/main/java/org/apache/pulsar/manager/swagger/SwaggerConfig.java
similarity index 91%
rename from src/main/java/io/streamnative/pulsar/manager/swagger/SwaggerConfig.java
rename to src/main/java/org/apache/pulsar/manager/swagger/SwaggerConfig.java
index 1eb1f2a..50f87c3 100644
--- a/src/main/java/io/streamnative/pulsar/manager/swagger/SwaggerConfig.java
+++ b/src/main/java/org/apache/pulsar/manager/swagger/SwaggerConfig.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.swagger;
+package org.apache.pulsar.manager.swagger;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -35,7 +35,7 @@
         return new Docket(DocumentationType.SWAGGER_2)
                 .apiInfo(apiInfo())
                 .select()
-                .apis(RequestHandlerSelectors.basePackage("com.manager.pulsar.controller"))
+                .apis(RequestHandlerSelectors.basePackage("org.apache.pulsar.manager.controller"))
                 .paths(PathSelectors.any())
                 .build();
     }
diff --git a/src/main/java/io/streamnative/pulsar/manager/utils/HttpUtil.java b/src/main/java/org/apache/pulsar/manager/utils/HttpUtil.java
similarity index 98%
rename from src/main/java/io/streamnative/pulsar/manager/utils/HttpUtil.java
rename to src/main/java/org/apache/pulsar/manager/utils/HttpUtil.java
index f5f30e7..f08b7d4 100644
--- a/src/main/java/io/streamnative/pulsar/manager/utils/HttpUtil.java
+++ b/src/main/java/org/apache/pulsar/manager/utils/HttpUtil.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.utils;
+package org.apache.pulsar.manager.utils;
 
 import org.apache.http.HttpStatus;
 import org.apache.http.client.config.RequestConfig;
diff --git a/src/main/java/io/streamnative/pulsar/manager/zuul/EnvironmentForward.java b/src/main/java/org/apache/pulsar/manager/zuul/EnvironmentForward.java
similarity index 96%
rename from src/main/java/io/streamnative/pulsar/manager/zuul/EnvironmentForward.java
rename to src/main/java/org/apache/pulsar/manager/zuul/EnvironmentForward.java
index 96dfd77..6b5eafa 100644
--- a/src/main/java/io/streamnative/pulsar/manager/zuul/EnvironmentForward.java
+++ b/src/main/java/org/apache/pulsar/manager/zuul/EnvironmentForward.java
@@ -11,9 +11,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.zuul;
+package org.apache.pulsar.manager.zuul;
 
-import io.streamnative.pulsar.manager.service.EnvironmentCacheService;
+import org.apache.pulsar.manager.service.EnvironmentCacheService;
 import com.netflix.zuul.ZuulFilter;
 import com.netflix.zuul.context.RequestContext;
 import org.apache.commons.lang3.StringUtils;
diff --git a/src/main/java/io/streamnative/pulsar/manager/zuul/LocationHeaderRewritingFilter.java b/src/main/java/org/apache/pulsar/manager/zuul/LocationHeaderRewritingFilter.java
similarity index 98%
rename from src/main/java/io/streamnative/pulsar/manager/zuul/LocationHeaderRewritingFilter.java
rename to src/main/java/org/apache/pulsar/manager/zuul/LocationHeaderRewritingFilter.java
index f00c647..4ab871f 100644
--- a/src/main/java/io/streamnative/pulsar/manager/zuul/LocationHeaderRewritingFilter.java
+++ b/src/main/java/org/apache/pulsar/manager/zuul/LocationHeaderRewritingFilter.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.zuul;
+package org.apache.pulsar.manager.zuul;
 
 import com.netflix.util.Pair;
 import com.netflix.zuul.ZuulFilter;
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 1c9f766..dbace83 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -20,9 +20,9 @@
 logging.file=pulsar-manager.log
 
 # DEBUG print execute sql
-logging.level.io.streamnative=DEBUG
+logging.level.org.apache=DEBUG
 
-mybatis.type-aliases-package=io.streamnative.pulsar.manager
+mybatis.type-aliases-package=org.apache.pulsar.manager
 
 # database connection
 
diff --git a/src/test/java/io/streamnative/pulsar/manager/PulsarManagerApplicationTests.java b/src/test/java/org/apache/pulsar/manager/PulsarManagerApplicationTests.java
similarity index 90%
rename from src/test/java/io/streamnative/pulsar/manager/PulsarManagerApplicationTests.java
rename to src/test/java/org/apache/pulsar/manager/PulsarManagerApplicationTests.java
index 0d36e6c..a72b285 100644
--- a/src/test/java/io/streamnative/pulsar/manager/PulsarManagerApplicationTests.java
+++ b/src/test/java/org/apache/pulsar/manager/PulsarManagerApplicationTests.java
@@ -11,9 +11,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager;
+package org.apache.pulsar.manager;
 
-import io.streamnative.pulsar.manager.profiles.HerdDBTestProfile;
+import org.apache.pulsar.manager.profiles.HerdDBTestProfile;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.boot.test.context.SpringBootTest;
diff --git a/src/test/java/io/streamnative/pulsar/manager/dao/BrokerTokensRepositoryImplTest.java b/src/test/java/org/apache/pulsar/manager/dao/BrokerTokensRepositoryImplTest.java
similarity index 89%
rename from src/test/java/io/streamnative/pulsar/manager/dao/BrokerTokensRepositoryImplTest.java
rename to src/test/java/org/apache/pulsar/manager/dao/BrokerTokensRepositoryImplTest.java
index 1c4317f..caedd68 100644
--- a/src/test/java/io/streamnative/pulsar/manager/dao/BrokerTokensRepositoryImplTest.java
+++ b/src/test/java/org/apache/pulsar/manager/dao/BrokerTokensRepositoryImplTest.java
@@ -11,13 +11,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.dao;
+package org.apache.pulsar.manager.dao;
 
 import com.github.pagehelper.Page;
-import io.streamnative.pulsar.manager.PulsarManagerApplication;
-import io.streamnative.pulsar.manager.entity.BrokerTokenEntity;
-import io.streamnative.pulsar.manager.entity.BrokerTokensRepository;
-import io.streamnative.pulsar.manager.profiles.HerdDBTestProfile;
+import org.apache.pulsar.manager.PulsarManagerApplication;
+import org.apache.pulsar.manager.entity.BrokerTokenEntity;
+import org.apache.pulsar.manager.entity.BrokerTokensRepository;
+import org.apache.pulsar.manager.profiles.HerdDBTestProfile;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/src/test/java/io/streamnative/pulsar/manager/dao/EnvironmentsRepositoryImplTest.java b/src/test/java/org/apache/pulsar/manager/dao/EnvironmentsRepositoryImplTest.java
similarity index 91%
rename from src/test/java/io/streamnative/pulsar/manager/dao/EnvironmentsRepositoryImplTest.java
rename to src/test/java/org/apache/pulsar/manager/dao/EnvironmentsRepositoryImplTest.java
index fbf59eb..e2553cd 100644
--- a/src/test/java/io/streamnative/pulsar/manager/dao/EnvironmentsRepositoryImplTest.java
+++ b/src/test/java/org/apache/pulsar/manager/dao/EnvironmentsRepositoryImplTest.java
@@ -11,13 +11,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.dao;
+package org.apache.pulsar.manager.dao;
 
 import com.github.pagehelper.Page;
-import io.streamnative.pulsar.manager.PulsarManagerApplication;
-import io.streamnative.pulsar.manager.entity.EnvironmentEntity;
-import io.streamnative.pulsar.manager.entity.EnvironmentsRepository;
-import io.streamnative.pulsar.manager.profiles.HerdDBTestProfile;
+import org.apache.pulsar.manager.PulsarManagerApplication;
+import org.apache.pulsar.manager.entity.EnvironmentEntity;
+import org.apache.pulsar.manager.entity.EnvironmentsRepository;
+import org.apache.pulsar.manager.profiles.HerdDBTestProfile;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/src/test/java/io/streamnative/pulsar/manager/profiles/HerdDBTestProfile.java b/src/test/java/org/apache/pulsar/manager/profiles/HerdDBTestProfile.java
similarity index 96%
rename from src/test/java/io/streamnative/pulsar/manager/profiles/HerdDBTestProfile.java
rename to src/test/java/org/apache/pulsar/manager/profiles/HerdDBTestProfile.java
index d47cc4a..cb90ddc 100644
--- a/src/test/java/io/streamnative/pulsar/manager/profiles/HerdDBTestProfile.java
+++ b/src/test/java/org/apache/pulsar/manager/profiles/HerdDBTestProfile.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.profiles;
+package org.apache.pulsar.manager.profiles;
 
 import java.io.IOException;
 import javax.sql.DataSource;
diff --git a/src/test/java/io/streamnative/pulsar/manager/profiles/SqliteDBTestProfile.java b/src/test/java/org/apache/pulsar/manager/profiles/SqliteDBTestProfile.java
similarity index 97%
rename from src/test/java/io/streamnative/pulsar/manager/profiles/SqliteDBTestProfile.java
rename to src/test/java/org/apache/pulsar/manager/profiles/SqliteDBTestProfile.java
index fb5a9aa..56676bc 100644
--- a/src/test/java/io/streamnative/pulsar/manager/profiles/SqliteDBTestProfile.java
+++ b/src/test/java/org/apache/pulsar/manager/profiles/SqliteDBTestProfile.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.profiles;
+package org.apache.pulsar.manager.profiles;
 
 import java.io.IOException;
 import java.nio.file.Files;
diff --git a/src/test/java/io/streamnative/pulsar/manager/service/BookiesServiceImplTest.java b/src/test/java/org/apache/pulsar/manager/service/BookiesServiceImplTest.java
similarity index 93%
rename from src/test/java/io/streamnative/pulsar/manager/service/BookiesServiceImplTest.java
rename to src/test/java/org/apache/pulsar/manager/service/BookiesServiceImplTest.java
index e04aa06..12902c8 100644
--- a/src/test/java/io/streamnative/pulsar/manager/service/BookiesServiceImplTest.java
+++ b/src/test/java/org/apache/pulsar/manager/service/BookiesServiceImplTest.java
@@ -11,12 +11,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import com.google.common.collect.Maps;
-import io.streamnative.pulsar.manager.PulsarManagerApplication;
-import io.streamnative.pulsar.manager.profiles.HerdDBTestProfile;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.PulsarManagerApplication;
+import org.apache.pulsar.manager.profiles.HerdDBTestProfile;
+import org.apache.pulsar.manager.utils.HttpUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/src/test/java/io/streamnative/pulsar/manager/service/BrokerStatsServiceImplTest.java b/src/test/java/org/apache/pulsar/manager/service/BrokerStatsServiceImplTest.java
similarity index 94%
rename from src/test/java/io/streamnative/pulsar/manager/service/BrokerStatsServiceImplTest.java
rename to src/test/java/org/apache/pulsar/manager/service/BrokerStatsServiceImplTest.java
index 0abe3df..17a4f7f 100644
--- a/src/test/java/io/streamnative/pulsar/manager/service/BrokerStatsServiceImplTest.java
+++ b/src/test/java/org/apache/pulsar/manager/service/BrokerStatsServiceImplTest.java
@@ -11,23 +11,23 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import com.github.pagehelper.Page;
 import com.google.common.collect.Maps;
-import io.streamnative.pulsar.manager.PulsarManagerApplication;
-import io.streamnative.pulsar.manager.entity.ConsumerStatsEntity;
-import io.streamnative.pulsar.manager.entity.ConsumersStatsRepository;
-import io.streamnative.pulsar.manager.entity.PublisherStatsEntity;
-import io.streamnative.pulsar.manager.entity.PublishersStatsRepository;
-import io.streamnative.pulsar.manager.entity.ReplicationsStatsRepository;
-import io.streamnative.pulsar.manager.entity.SubscriptionStatsEntity;
-import io.streamnative.pulsar.manager.entity.SubscriptionsStatsRepository;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
-import io.streamnative.pulsar.manager.entity.ReplicationStatsEntity;
-import io.streamnative.pulsar.manager.entity.TopicStatsEntity;
-import io.streamnative.pulsar.manager.entity.TopicsStatsRepository;
-import io.streamnative.pulsar.manager.profiles.HerdDBTestProfile;
+import org.apache.pulsar.manager.PulsarManagerApplication;
+import org.apache.pulsar.manager.entity.ConsumerStatsEntity;
+import org.apache.pulsar.manager.entity.ConsumersStatsRepository;
+import org.apache.pulsar.manager.entity.PublisherStatsEntity;
+import org.apache.pulsar.manager.entity.PublishersStatsRepository;
+import org.apache.pulsar.manager.entity.ReplicationsStatsRepository;
+import org.apache.pulsar.manager.entity.SubscriptionStatsEntity;
+import org.apache.pulsar.manager.entity.SubscriptionsStatsRepository;
+import org.apache.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.entity.ReplicationStatsEntity;
+import org.apache.pulsar.manager.entity.TopicStatsEntity;
+import org.apache.pulsar.manager.entity.TopicsStatsRepository;
+import org.apache.pulsar.manager.profiles.HerdDBTestProfile;
 import org.apache.commons.lang3.StringUtils;
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/src/test/java/io/streamnative/pulsar/manager/service/BrokerTokensServiceImplTest.java b/src/test/java/org/apache/pulsar/manager/service/BrokerTokensServiceImplTest.java
similarity index 91%
rename from src/test/java/io/streamnative/pulsar/manager/service/BrokerTokensServiceImplTest.java
rename to src/test/java/org/apache/pulsar/manager/service/BrokerTokensServiceImplTest.java
index bb53f2e..06ec665 100644
--- a/src/test/java/io/streamnative/pulsar/manager/service/BrokerTokensServiceImplTest.java
+++ b/src/test/java/org/apache/pulsar/manager/service/BrokerTokensServiceImplTest.java
@@ -11,11 +11,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import io.jsonwebtoken.Claims;
-import io.streamnative.pulsar.manager.PulsarManagerApplication;
-import io.streamnative.pulsar.manager.profiles.HerdDBTestProfile;
+import org.apache.pulsar.manager.PulsarManagerApplication;
+import org.apache.pulsar.manager.profiles.HerdDBTestProfile;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/src/test/java/io/streamnative/pulsar/manager/service/BrokersServiceImplTest.java b/src/test/java/org/apache/pulsar/manager/service/BrokersServiceImplTest.java
similarity index 91%
rename from src/test/java/io/streamnative/pulsar/manager/service/BrokersServiceImplTest.java
rename to src/test/java/org/apache/pulsar/manager/service/BrokersServiceImplTest.java
index a369f02..ddd17c5 100644
--- a/src/test/java/io/streamnative/pulsar/manager/service/BrokersServiceImplTest.java
+++ b/src/test/java/org/apache/pulsar/manager/service/BrokersServiceImplTest.java
@@ -11,13 +11,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import com.google.common.collect.Maps;
-import io.streamnative.pulsar.manager.PulsarManagerApplication;
-import io.streamnative.pulsar.manager.entity.EnvironmentEntity;
-import io.streamnative.pulsar.manager.profiles.HerdDBTestProfile;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.PulsarManagerApplication;
+import org.apache.pulsar.manager.entity.EnvironmentEntity;
+import org.apache.pulsar.manager.profiles.HerdDBTestProfile;
+import org.apache.pulsar.manager.utils.HttpUtil;
 import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
diff --git a/src/test/java/io/streamnative/pulsar/manager/service/ClustersServiceImplTest.java b/src/test/java/org/apache/pulsar/manager/service/ClustersServiceImplTest.java
similarity index 93%
rename from src/test/java/io/streamnative/pulsar/manager/service/ClustersServiceImplTest.java
rename to src/test/java/org/apache/pulsar/manager/service/ClustersServiceImplTest.java
index 51948e5..bfc1e07 100644
--- a/src/test/java/io/streamnative/pulsar/manager/service/ClustersServiceImplTest.java
+++ b/src/test/java/org/apache/pulsar/manager/service/ClustersServiceImplTest.java
@@ -11,12 +11,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import com.google.common.collect.Maps;
-import io.streamnative.pulsar.manager.PulsarManagerApplication;
-import io.streamnative.pulsar.manager.profiles.HerdDBTestProfile;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.PulsarManagerApplication;
+import org.apache.pulsar.manager.profiles.HerdDBTestProfile;
+import org.apache.pulsar.manager.utils.HttpUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/src/test/java/io/streamnative/pulsar/manager/service/EnvironmentCacheServiceImplTest.java b/src/test/java/org/apache/pulsar/manager/service/EnvironmentCacheServiceImplTest.java
similarity index 95%
rename from src/test/java/io/streamnative/pulsar/manager/service/EnvironmentCacheServiceImplTest.java
rename to src/test/java/org/apache/pulsar/manager/service/EnvironmentCacheServiceImplTest.java
index cfdd194..95bef54 100644
--- a/src/test/java/io/streamnative/pulsar/manager/service/EnvironmentCacheServiceImplTest.java
+++ b/src/test/java/org/apache/pulsar/manager/service/EnvironmentCacheServiceImplTest.java
@@ -11,7 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
@@ -19,11 +19,11 @@
 import static org.mockito.Matchers.eq;
 
 import com.google.gson.Gson;
-import io.streamnative.pulsar.manager.PulsarManagerApplication;
-import io.streamnative.pulsar.manager.entity.EnvironmentEntity;
-import io.streamnative.pulsar.manager.entity.EnvironmentsRepository;
-import io.streamnative.pulsar.manager.profiles.HerdDBTestProfile;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.PulsarManagerApplication;
+import org.apache.pulsar.manager.entity.EnvironmentEntity;
+import org.apache.pulsar.manager.entity.EnvironmentsRepository;
+import org.apache.pulsar.manager.profiles.HerdDBTestProfile;
+import org.apache.pulsar.manager.utils.HttpUtil;
 import java.util.NoSuchElementException;
 import org.apache.pulsar.common.policies.data.ClusterData;
 import org.junit.After;
diff --git a/src/test/java/io/streamnative/pulsar/manager/service/NamespacesServiceImplTest.java b/src/test/java/org/apache/pulsar/manager/service/NamespacesServiceImplTest.java
similarity index 95%
rename from src/test/java/io/streamnative/pulsar/manager/service/NamespacesServiceImplTest.java
rename to src/test/java/org/apache/pulsar/manager/service/NamespacesServiceImplTest.java
index e36b625..3ba6d28 100644
--- a/src/test/java/io/streamnative/pulsar/manager/service/NamespacesServiceImplTest.java
+++ b/src/test/java/org/apache/pulsar/manager/service/NamespacesServiceImplTest.java
@@ -11,12 +11,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import com.google.common.collect.Maps;
-import io.streamnative.pulsar.manager.PulsarManagerApplication;
-import io.streamnative.pulsar.manager.profiles.HerdDBTestProfile;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.PulsarManagerApplication;
+import org.apache.pulsar.manager.profiles.HerdDBTestProfile;
+import org.apache.pulsar.manager.utils.HttpUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/src/test/java/io/streamnative/pulsar/manager/service/TenantsServiceImplTest.java b/src/test/java/org/apache/pulsar/manager/service/TenantsServiceImplTest.java
similarity index 93%
rename from src/test/java/io/streamnative/pulsar/manager/service/TenantsServiceImplTest.java
rename to src/test/java/org/apache/pulsar/manager/service/TenantsServiceImplTest.java
index 7c06822..7170846 100644
--- a/src/test/java/io/streamnative/pulsar/manager/service/TenantsServiceImplTest.java
+++ b/src/test/java/org/apache/pulsar/manager/service/TenantsServiceImplTest.java
@@ -11,12 +11,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import com.google.common.collect.Maps;
-import io.streamnative.pulsar.manager.PulsarManagerApplication;
-import io.streamnative.pulsar.manager.profiles.HerdDBTestProfile;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.PulsarManagerApplication;
+import org.apache.pulsar.manager.profiles.HerdDBTestProfile;
+import org.apache.pulsar.manager.utils.HttpUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/src/test/java/io/streamnative/pulsar/manager/service/TopicsServiceImplTest.java b/src/test/java/org/apache/pulsar/manager/service/TopicsServiceImplTest.java
similarity index 96%
rename from src/test/java/io/streamnative/pulsar/manager/service/TopicsServiceImplTest.java
rename to src/test/java/org/apache/pulsar/manager/service/TopicsServiceImplTest.java
index 2ec31de..a865d81 100644
--- a/src/test/java/io/streamnative/pulsar/manager/service/TopicsServiceImplTest.java
+++ b/src/test/java/org/apache/pulsar/manager/service/TopicsServiceImplTest.java
@@ -11,12 +11,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.streamnative.pulsar.manager.service;
+package org.apache.pulsar.manager.service;
 
 import com.google.common.collect.Maps;
-import io.streamnative.pulsar.manager.PulsarManagerApplication;
-import io.streamnative.pulsar.manager.profiles.HerdDBTestProfile;
-import io.streamnative.pulsar.manager.utils.HttpUtil;
+import org.apache.pulsar.manager.PulsarManagerApplication;
+import org.apache.pulsar.manager.profiles.HerdDBTestProfile;
+import org.apache.pulsar.manager.utils.HttpUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.junit.Assert;
 import org.junit.Test;
