Skip to content

Commit

Permalink
Merge pull request #382 from OneBusAway/maven-central
Browse files Browse the repository at this point in the history
Maven central
  • Loading branch information
aaronbrethorst authored Nov 28, 2024
2 parents 341082a + 2be5805 commit 60ceb7a
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 28 deletions.
28 changes: 16 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ A project of the non-profit [Open Transit Software Foundation](https://opentrans

The OneBusAway application suite's primary function is to share real-time public transit information with riders across a variety of interfaces:

* [Wayfinder](https://github.com/onebusAway/wayfinder) - A high-performance web application built with with the SvelteKit JavaScript web app framework
* [OneBusAway Web](http://pugetsound.onebusaway.org/) - A variety of web interfaces to transit data
* A standard web interface to transit data, including maps and stop pages with real-time info
* [Sign-mode](https://github.com/OneBusAway/onebusaway-application-modules/wiki/Sign-Mode) - Same information as the standard web interface, but in a large format for large displays (e.g., large televisions)
Expand All @@ -12,16 +13,8 @@ The OneBusAway application suite's primary function is to share real-time public
* [OneBusAway REST API]( https://developer.onebusaway.org/api/where) - A RESTful web-service that can be used to quickly write applications built on top of transit data. This API powers the following apps:
* [OneBusAway iOS (iPhone)](https://github.com/OneBusAway/onebusaway-ios)
* [OneBusAway Android](https://github.com/OneBusAway/onebusaway-android)
* [OneBusAway Windows Phone](https://github.com/OneBusAway/onebusaway-windows-phone)
* [OneBusAway Windows 8](https://github.com/OneBusAway/onebusaway-windows8)
* [OneBusAway Windows 10 (under development)](https://github.com/OneBusAway/onebusaway-windows10)
* [OneBusAway Fire Phone (based on Android)](https://github.com/OneBusAway/onebusaway-android)
* [OneBusAway Alexa (for Amazon Echo, etc.)](https://github.com/OneBusAway/onebusaway-alexa)
* [OneBusAway Glassware (for Google Glass)](https://github.com/OneBusAway/onebusaway-android/pull/219)
* [OneBusAway for Pebble Smartwatch](https://github.com/onebusaway/onebusaway-pebbletime)
* [OneBusAway GTFS-realtime export](http://developer.onebusaway.org/modules/onebusaway-application-modules/current-SNAPSHOT/api/gtfs-realtime.html) - A bulk export of all trip updates (predictions), vehicle positions, and service alerts for a transit system in the [GTFS-realtime format](https://developers.google.com/transit/gtfs-realtime/).
* [OneBusAway Phone](https://github.com/OneBusAway/onebusaway-application-modules/wiki/OneBusAway-Phone-and-SMS) - A Interactive Voice Response (IVR) phone application for accessing real-time transit information
* [OneBusAway SMS](https://github.com/OneBusAway/onebusaway-application-modules/wiki/OneBusAway-Phone-and-SMS) - An SMS service for accessing real-time transit information
* [OneBusAway Watchdog](https://github.com/OneBusAway/onebusaway-application-modules/wiki/OneBusAway-Watchdog) - A module hosting webservices for monitoring realtime data

Watch the [YouTube video](http://www.youtube.com/watch?v=CBctcyE7Am4&feature=player_embedded) for more information.
Expand Down Expand Up @@ -49,7 +42,7 @@ There are two options for setting up your own OneBusAway instance:

```sh
docker compose up builder
docker compose exec builder bash # in another shell, for now
docker compose exec builder bash # from another window or tab
./build.sh --help # acquaint yourself with the build.sh options
./build.sh --clean --check-updates --test

Expand Down Expand Up @@ -80,16 +73,14 @@ Finally, verify that everything works as expected!
* Check out the Tomcat Web App Manager at http://localhost:8080/manager/html (user/pass: admin/admin) to verify that your OBA WARs deployed correctly
* Check out the config.json API endpoint to verify that everything built correctly: http://localhost:8080/onebusaway-api-webapp/api/where/config.json?key=test


## Status
## Deploy OneBusAway

* Download pre-built JARs and WARs: https://developer.onebusaway.org/downloads
* Terraform/Open Tofu/Infrastructure as Code: https://github.com/onebusaway/onebusaway-deployment
* Docker
* Pre-built images: https://hub.docker.com/r/opentransitsoftwarefoundation/
* Instructions: https://github.com/onebusAway/onebusaway-docker


## Deployments

OneBusAway is used in a number of places:
Expand All @@ -104,6 +95,19 @@ Check out the full list on the [OneBusAway Deployments page](https://github.com/

* [Latest Stable Release](https://developer.onebusaway.org/downloads)

## Build and Deploy OBA Artifacts to Maven Central

1. Set up your environment, including GPG
* [Maven Central documentation](https://central.sonatype.org/publish/requirements/gpg/)
* [Some helpful information elided by Sonatype](https://www.swissarmyronin.dk/Miscellaneous/Gpg-maven/)
2. Run the command `mvn deploy -DskipTests`
3. Upload the Zip file at `./target/central-publishing/central-bundle.zip` to [Maven Central's publishing page](https://central.sonatype.com/publishing/deployments).
* The Zip file is about 600MB in size. Be sure to have a fast, reliable connection.

Open questions and issues:

* I haven't figured out why I cannot get the `mvn deploy` command to upload to Maven Central automatically.
* We need to automate deployment to Maven Central via GitHub Actions eventually, too.

## Developer Information

Expand Down
3 changes: 3 additions & 0 deletions mise.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[tools]
java = 'temurin-11'
maven = '3'
50 changes: 34 additions & 16 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,24 @@
<description>The core OneBusAway application suite.</description>
<url>https://github.com/onebusaway/onebusaway-application-modules/wiki/</url>

<developers>
<developer>
<id>aaronbrethorst</id>
<name>Aaron Brethorst</name>
<email>aaron@onebusaway.org</email>
<organization>OneBusAway</organization>
<organizationUrl>https://www.onebusaway.org</organizationUrl>
</developer>
</developers>

<licenses>
<license>
<name>Apache 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>

<!-- Common Software Dependency Versions -->
<properties>
<asm-version>8.0.1</asm-version>
Expand Down Expand Up @@ -89,39 +107,27 @@
</pluginRepository>
</pluginRepositories>


<issueManagement>
<system>GitHub</system>
<url>https://github.com/OneBusAway/onebusaway-application-modules/issues</url>
</issueManagement>

<!-- releases and snapshots should be inherited -->
<modules>
<module>onebusaway-admin-webapp</module>
<module>onebusaway-agency-metadata</module>
<module>onebusaway-api-core</module>
<module>onebusaway-api-webapp</module>
<module>onebusaway-combined-webapp</module>
<module>onebusaway-container</module>
<module>onebusaway-core</module>
<module>onebusaway-enterprise-acta-webapp</module>
<module>onebusaway-enterprise-webapp</module>
<module>onebusaway-federations</module>
<module>onebusaway-federations-webapp</module>
<module>onebusaway-frontend-webapp</module>
<module>onebusaway-geocoder</module>
<module>onebusaway-geospatial</module>
<module>onebusaway-gtfs-hibernate-spring</module>
<module>onebusaway-gtfs-realtime-archiver</module>
<module>onebusaway-gtfs-realtime-model</module>
<module>onebusaway-gwt-common</module>
<module>onebusaway-nextbus-api-webapp</module>
<module>onebusaway-phone</module>
<module>onebusaway-phone-webapp</module>
<module>onebusaway-twilio-webapp</module>
<module>onebusaway-presentation</module>
<!-- <module>onebusaway-quickstart</module>--> <!-- deprecated -->
<module>onebusaway-sms-webapp</module>
<module>onebusaway-realtime-api</module>
<module>onebusaway-transit-data</module>
<module>onebusaway-transit-data-federation</module>
Expand All @@ -131,9 +137,22 @@
<module>onebusaway-util</module>
<module>onebusaway-alerts-persistence</module>
<module>onebusaway-watchdog-webapp</module>
<!-- <module>onebusaway-status-agent</module>-->
<module>onebusaway-alerts-api</module>
<module>onebusaway-gtfsrt-integration-tests</module>

<!-- Disabled Modules: These are deprecated and should be removed. -->
<!-- <module>onebusaway-admin-webapp</module>-->
<!-- <module>onebusaway-combined-webapp</module>-->
<!-- <module>onebusaway-enterprise-acta-webapp</module>-->
<!-- <module>onebusaway-enterprise-webapp</module>-->
<!-- <module>onebusaway-frontend-webapp</module>-->
<!-- <module>onebusaway-gwt-common</module>-->
<!-- <module>onebusaway-nextbus-api-webapp</module>-->
<!-- <module>onebusaway-phone</module>-->
<!-- <module>onebusaway-phone-webapp</module>-->
<!-- <module>onebusaway-quickstart</module>-->
<!-- <module>onebusaway-sms-webapp</module>-->
<!-- <module>onebusaway-status-agent</module>-->
</modules>

<!-- This is where we control the master dependency version used by all modules -->
Expand Down Expand Up @@ -411,9 +430,8 @@
as an official part of Eclipse, m2e introduced the concept of Lifecycle Mappings for Maven plugins:
http://wiki.eclipse.org/M2E_plugin_execution_not_covered
This basically means that every Maven plugin needs to have explicit behavior defined about how it
should be integrated integrated into the Eclipse build cycle. Many plugins already have mappings
defined
by defined, but some don't. We define those lifecycle mappings below.
should be integrated into the Eclipse build cycle. Many plugins already have mappings defined
by default, but some don't. We define those lifecycle mappings below.
-->
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
Expand Down

0 comments on commit 60ceb7a

Please sign in to comment.