blob: f63b65752d318d78a72bd1adf77371627797c440 [file] [log] [blame] [view]
This folder contains projects which help working with and extending the UI:
* `module-api`: pattern for UI projects to advertise themselves as UI modules
* `module-registry`: track installed UI modules and serve them at `/ui-module-registry`
* `external-modules`: enricher to allow entities to install new modules
* `metadata-registry`: supply miscellaneous server-supplied data at `/ui-metadata-registry`
* `proxy`: simple proxy server
* `feature`: builds this as an OSGi feature
Note that UI modules themselves are in `../ui-modules`.
# UI Module Config
A Brooklyn UI module is a WAR being installed which includes a file `ui-module/config.yaml`
defining at minimum:
* a `name` (to be displayed in the UI)
* a `slug` (used internally for reference; usually this is set to be `${project.artifactId}` and substituted during the build)
* an `icon` CSS class set, usually Font Awesome based (e.g. `fa-home`).
Optionally it can include:
* a list of `type` tokens for arbitrary use (currently `home-ui-module` is used to indicate a module should
show up on the home page, and `library-ui-module` to indicate it should be excluded from the menu)
* `actions` (not used currently, see code to understand)
* `stopExisting` (boolean, whether to stop lower-numbered bundles listening on the same
context-path declared in `web.xml`, defaulting to `true`)
* `supersedes` (a list of `bundle-regex:version-regex` of bundles that should be stopped
when this UI module is installed; this is used for downstream projects that may override UI modules
and wish to ensure their modules are used without relying on bundle install order (but often bundle install order is sufficient))
The Karaf command `web:list` is helpful in determining which module is actually active
when there are conflicts for a given context path.
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->