I took some time during research day to evaluate uw-frame as a maven project. Many times we have said "why is this a maven project, it is just static content". I took that good point, and ran with it. What if frame was just static content.
- I created https://github.com/timlevett/static-frame which is just
uw-frame
, without all the maven fluff. - I then registered this app with bower under
tim-uw-static-frame
and taggedv1.0.0
. - After that I took uw-frame and created this branch https://github.com/timlevett/uw-frame/tree/tim-static-test which basically removes all the static content, and adds in some copy-resources in the pom.xml so that the static content is pulled in.
- To work on the frame static content you can just run
http-server
(documented here: https://github.com/timlevett/static-frame/blob/master/README.md). http-server is a node project that just runs a http server with the given directory as root. - This opens doors to other developers, like WAMS and the like to dev stuff that isn't Java based. They can just pull in the bower component as we did.
- We could start writing node express.js based frame apps (like all the cool kids)
Complexity increases. In order to make a change happen and see it reflected in angularjs-portal you would need to:
- make change in static-frame, commit and tag static-frame (there may be a way to get snapshots or something, not sure)
- do a
mvn install
on uw-frame with the new static-frame component - do a
mvn clean package
on angularjs-portal
So what do you all think?
Paul, you just described the Discovery component of Spring Cloud, aka the Netflix OSS 'Eureka' service. It does precisely what you just described. While it's a java-centric service, the API is entirely REST based, and can (and is) used by non Java components. Not to divert this thread onto a side road, but if it interests anyone, here's the Eureka REST api: https://github.com/Netflix/eureka/wiki/Eureka-REST-operations.