.. _reference: Reference ========= .. _glossary: Glossary -------- * **App**: see **EDG-AF app** * **App base URL**: the absolute URL of the app, including its context path. The example apps all run on port 8081 with the context ``/app-example``, so that the app configuration is accessible at ``http://localhost:8081/app-example/configuration``. * **EDG base URL**: the absolute URL of the EDG server, such as ``http://your-edg-server.example.com/edg/`` or ``http://localhost:8080/``. The framework builds on this URL to access the EDG API. For example, with an EDG base URL of ``http://localhost:8080/`` the server administration page is ``http://localhost:8080/tbl/admin``. * **EDG server**: a deployment of the TopBraid EDG web application to a servlet container such as Tomcat * **EDG-AF app**: an auxiliary web application that extends the TopBraid EDG platform in order to provide additional functionality, such as importers or exporters .. _api: EDG-AF API ---------- The EDG App Framework class ``AppConfiguration.java`` defines a schema for the JSON object that an ``EDG-AF`` app returns in response ``GET /configuration``. See the `Javadocs <_static/apidocs/index.html>`_ for `AppConfiguration <_static/apidocs/org/topbraidlive/app/framework/api/configuration/AppConfiguration.html>`_ and associated classes. .. _maven-artifacts: EDG-AF Maven artifacts ---------------------- The TopQuadrant Nexus repository includes a number of EDG-AF-related Maven artifacts: * libraries for the EDG App Framework * abstract base classes (ABC's) for EDG-AF apps in different web application frameworks See `this document `_ for instructions on how to set up access. Releasing Maven artifacts +++++++++++++++++++++++++ The process for releasing new Java artifacts to the Maven repository is: #. Checkout ``main`` branch. #. Manually change any ``-SNAPSHOT`` dependencies of this project to release versions e.g., ``edg-client:X-X-X-SNAPSHOT``. #. Manually change any Scala ``build.sbt`` dependencies on this project to the next release version. #. Commit those changes but don't push. #. Call ``framework/script/prepare-release.sh`` to run Maven ``release:prepare``. Tag with the new version number without any prefixes or suffixes e.g., ``1.0.0``. The prepare process tags the current ```X.X.X-SNAPSHOT`` as ``X.X.X`` and advances pom.xml's to the next ``-SNAPSHOT``. #. Push changes. #. Manually change any ``-SNAPSHOT`` dependencies of this project back (reverting step 2.) #. Manually change any Scala ``build.sbt`` dependencies on this project to the next ``SNAPSHOT`` version. #. Commit those changes and push. #. Run `git clean -f` to delete detritus created by Maven `release:prepare`. We don't use `release:perform` because CI pushes the release to Nexus. #. Go to the project page on GitHub, click "Releases", click the release version (which was just tagged), click "Edit tag", and upload the CLI assembly .jar.