This is a major release with several enhancements and bug fixes.
The biggest change with this release is apollo-client is now deployed to [Maven Central Repository](https://mvnrepository.com/artifact/com.ctrip.framework.apollo/apollo-client). Users could reference `apollo-client` as follows:
xml
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.0.0</version>
</dependency>
General
* Refactor meta server related logic so that apollo-core is common enough to go maven central repository. 1315
* From 1.0.0 version, apollo-core.jar won't assemble apollo-env.properties anymore, so that we could freely deploy apollo client jars to maven central repository, which means a lot convenience for users to access apollo client jars.
* However, for existing users, they can't upgrade apollo client jars to 1.0.0 version directly. Please check the instructions below.
* Fix the data issue when some public app namespace is deleted and recreated in another app 1346
Apollo Client
* Add ConfigChangeListener with optional interested keys 1328
* Support setting apollo system properties via Spring Boot application.properties 1336
Installation
Please refer [分布式部署指南](https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97)
How to upgrade Apollo servers from v0.11.0 to v1.0.0
There is no schema change between v0.11.0 and v1.0.0.
So simply deploy v1.0.0 executables with the following sequences:
1. apollo-configservice
2. apollo-adminservice
3. apollo-portal
How to upgrade Apollo client from v0.11.0 to v1.0.0
1. If existing users currently pass `env` and `${env}_meta` at runtime, they could continue to do so with no impact.
2. If existing users currently place `apollo-env.properties` in their classpath, they could continue to do so with no impact.
3. If existing users assemble meta server addresses into `apollo-core.jar`, then there are several solutions:
* Create a `xx-company-apollo-client` jar with `apollo-env.properties` in classpath and depends on apollo-client. Then ask the users to depend on `xx-company-apollo-client` jar instead of `apollo-client`. This might be the most tranparent way.
* Ask the ops to configure `apollo.meta` in `server.properties` or os env `APOLLO_META`
* Ask the user to configure `apollo.meta` by `-Dapollo.meta=http://config-service-url` or app.properties manually
* Ask the user to put the `apollo-env.properties` in their projects' classpath
* For more information on how to configure meta server address, please refer [1.2.2 Apollo Meta Server](https://github.com/ctripcorp/apollo/wiki/Java%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97122-apollo-meta-server)