anchor.diff:  
   === Installing in JBoss EAP 6.4
   If you prefer to run apiman on a Red Hat supported application server, you can install it
  -into JBoss EAP 6.4.  In order to install apiman you will need to download both EAP and the apiman 
  -overlay distribution.  Once both are downloaded, it's a simple matter of unpacking both into the 
  +into JBoss EAP 6.4.  In order to install apiman you will need to download both EAP and the apiman
  +overlay distribution.  Once both are downloaded, it's a simple matter of unpacking both into the
   same location.
   
   ==== Download
  
positive.code: 
  ==== Create the apiman Realm in Keycloak
  You'll need to make sure you create the *apiman* realm in your Keycloak server.  A
  quick way to do that is to use the Keycloak admin console to import the apiman 
  realm file located here:
  
  https://github.com/apiman/apiman/blob/master/distro/data/src/main/resources/data/apiman-realm.json
  
  ==== Configure the API Manager UI client in Keycloak
  Once the apiman realm has been created or imported, make sure to configure the 
  *Valid Redirect URIs* section of the *apimanui* client.  The default value of 
  "/apimanui/*" must be replaced with the full public URL of your API Manager UI.
  For example, the value may be something like:
  
  
negative.code: </kc:realm>
  ```
  
  TIP: If you manually created the apiman realm in Keycloak, you will also need to
  copy the realm's public key into <kc:realm-public-key> above.
  
  
  === How To:  Configure a Custom API Catalog
  The API Manager has a feature where users can import APIs from a globally configured
  API Catalog.  By default, apiman comes with a community catalog that contains a set
  of common public APIs such as Flickr and Netflix.  When deploying apiman into an
  enterprise setting, it is often useful to replace the community API Catalog with
  something that lists out the internal APIs available within the enterprise.
  
  ==== High Level Overview
  1. Describe your enterprise APIs as apiman API Catalog JSON
  2. Make your enterprise API Catalog available in URL form
  3. Point apiman at your enterprise API Catalog
  
  ===== Create a Custom Enterprise API Catalog JSON
  The first thing you will need to do is express all of your enterprise APIs as a
  JSON file.  The format of the JSON file is specific to apiman.  You can find an
  example of the format here:
  
  https://github.com/apiman/apiman-api-catalog/blob/master/catalog.json
  
  ===== Make Your Enterprise API Catalog Available
  Now that you have a custom JSON based API Catalog, you need to make it available
  at a URL accessible to the API Manager.  This can either be done by stashing it
  in some web server location so you have an http based URL, or you can store
  it locally on the API Manager server so as to have a valid file based URL.
  
  ===== Point apiman at Your Enterprise API Catalog
  The last step is to make apiman aware of your custom API Catalog file.  The
  catalog is configured in the *apiman.properties* file via these properties:
  
  ```
  apiman-manager.api-catalog.type=io.apiman.manager.api.core.catalog.JsonApiCatalog
  apiman-manager.api-catalog.catalog-url=http://cdn.rawgit.com/apiman/apiman-api-catalog/1.2.0.Final/catalog.json
  ```
  
  Simply change the URL defined by the `apiman-manager.api-catalog.catalog-url` property
  and you're good to go!
  
  TIP: For even more customization, you can actually implement your own API Catalog
  java class.  This approach will allow you to find your APIs in whatever location they
  happen to be (e.g. a database, registry, etc).  Please see the Developer Guide
  for more information on how to create a truly custom API Catalog.
  
  
  === How To:  Use a Custom Plugin Registry
  The API Manager uses a plugin registry to show admin users a list of available plugins
  that can be installed.  Apiman comes with an official plugin registry that shows a
  list of the standard apiman plugins.  If your enterprise implements a large number
  of custom policies, you may find it useful to replace the standard registry with one
  that includes your custom plugins in the list.
  
  ==== High Level Overview
  1. Describe your enterprise plugins in a registry JSON file
  2. Make your enterprise plugin registry available in URL form
  3. Point apiman at your enterprise plugin registry
  
  ===== Create a Custom Enterprise Plugin Registry JSON
  The first thing you will need to do is express all of your enterprise plugins as a
  JSON file.  The format of the JSON file is specific to apiman.  You can find an
  example of the format here:
  
  https://github.com/apiman/apiman-api-catalog/blob/master/catalog.json
  
  ===== Make Your Enterprise Plugin Registry Available
  Now that you have a custom JSON based plugin registry, you need to make it available
  at a URL accessible to the API Manager.  This can either be done by stashing it
  in some web server location so you have an http based URL, or you can store
  it locally on the API Manager server so as to have a valid file based URL.
  
  ===== Point apiman at Your Enterprise Plugin Registry
  The last step is to make apiman aware of your custom plugin registry file.  The
  registry is configured in the *apiman.properties* file via the following property:
  
  ```
  apiman-manager.plugins.registries=http://cdn.rawgit.com/apiman/apiman-plugin-registry/1.2.0.Final/registry.json
  ```
  
  The value of this property is a comma-separated list of URLs.  Each URL in the list
  should point to a valid plugin registry JSON file.  So to include your enterprise
  plugins in the list, simply add the URL to your plugin registry to the end of the
  existing list.
  
  
  === How To:  Use Property Replacement in Policy Config
  It is often useful to externalize certain information that varies from one deployment
  environment to another.  For example, you may have an LDAP server for authentication,
  but you have one in the Test deployment environment and a different one in Production.
  Rather than configure your apiman policies differently in each environment (to match
  the actual LDAP connection info) you can externalize those settings into system
  properties or environment variables.  Once that is done, you can refer to those
  properties/variables in your apiman policy configuration.
  
  ==== High Level Overview
  1. Externalize values into system properties or environment variables
  2. Reference a system property or environment variable in a policy
  
  ===== Externalize Values
  Depending on your deployment strategy, how you do this may vary.  If you are using
  WildFly, for example, you can set system properties in the standalone.xml file or
  by passing them in via -D parameters on startup (not recommended).  For more
  information, see:
  
  https://docs.jboss.org/author/display/WFLY8/General+configuration+concepts
  
  Describing all approaches to setting system properties and environment variables
  is out of scope for this document.
  
  ===== Reference a System Property or Environment Variable
  Once you have some values externalized into system properties or environment
  variables, you can reference them easily in your apiman policies.  All you need
  to do is use the Ant style syntax to refer to your externalized values, like
  this:
  
  ```
  ${MY_ENVIRONMENT_VARIABLE}
  ```
  
  A variable of this style can be used in any apiman policy configuration field.
  The variables are resolved when the policy configuration is first loaded, and
  then cached.  To change a value, you must restart your server.
  
  TIP: When resolving variables, if there is an environment variable with the same
  name as a system property, the value of the *system property* will be used.
  
  :numbered!:
  