diff --git a/Maven-Overlay-Project-How-To.md b/Maven-Overlay-Project-How-To.md index 30404ce..a2a9270 100644 --- a/Maven-Overlay-Project-How-To.md +++ b/Maven-Overlay-Project-How-To.md @@ -1 +1,112 @@ -TODO \ No newline at end of file +### Steps to create an overlay project +1. Create a directory for the top level: `mkdir example-openid-connect-overlay` +2. Create `example-openid-connect-overlay/pom.xml` + + + 4.0.0 + org.example + example-openid-connect-overlay + pom + 1.0-SNAPSHOT + example-openid-connect-overlay + + OpenID-Connect-Java-Spring-Server + my-openid-connect + + + + org.mitre + openid-connect-server + war + 0.1-SNAPSHOT + + + + 1.6 + 3.1.1.RELEASE + 1.5.10 + 3.1.0.RELEASE + + + my-openid-connect-server + + + + This creates a project with two modules, one bing the `OpenID-Connect-Java-Spring-Server` (the original), and `my-openid-connect` which will hold our modifications we want to overlay. We also set some global properties (versions of Java, Spring, etc.) and the finalName of our project. + +3. Now clone the `OpenID-Connect-Java-Spring-Server` into the `example-openid-connect-overlay/` directory + + cd example-openid-connect-overlay + git clone https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server.git + cd OpenID-Connect-Java-Spring-Server + git submodule update --init --recursive + + You now have the current version of OpenID-Connect-Java-Spring-Server. You should make sure that the version in `example-openid-connect-overlay/OpenID-Connect-Java-Spring-Server/pom.xml` matches the dependency version for `openid-connect-server` located in `example-openid-connect-overlay/pom.xml` + +4. Create the my-openid-connect submodule + + Create the directory `example-openid-connect-overlay/my-openid-connect` and cd into it + +5. Create `example-openid-connect-overlay/my-openid-connect/pom.xml` + + + 4.0.0 + + example-openid-connect-overlay + org.example + 1.0-SNAPSHOT + .. + + my-openid-connect + war + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${java-version} + ${java-version} + + + + org.apache.maven.plugins + maven-war-plugin + 2.1.1 + + + + org.mitre + openid-connect-server + + + + + + + + 1.6 + 3.1.1.RELEASE + 1.5.10 + 3.1.0.RELEASE + + + + org.mitre + openid-connect-server + war + 0.1-SNAPSHOT + + + org.mitre + openid-connect-common + 0.1-SNAPSHOT + + + + + At this point you should be able to do a `mvn package` from the `example-openid-connect-overlay` level and you'll get a .war file at `example-openid-connect-overlay/my-openid-connect/target/my-openid-connect-server.war`. Remember this name was set in the `example-openid-connect-overlay/pom.xml` as the `finalName`. + +6. Any files you create in the `my-openid-connect` maven project will be inserted into the resultant war file. If you use the same name as a file in `OpenID-Connect-Java-Spring-Server` project, such as `example-openid-connect-overlay/my-openid-connect/src/main/resources/META-INF/persistence.xml`, the version from the `my-openid-connect` project will be used in the .war file. This is good for setting up things like database connections. You may also create new Spring beans with new names (in `my-openid-connect/src/main/java/...`) that implement or override the standard openid-connect beans. If you mark these with the Spring Framework's `@Primary` annotation, Spring will use your class instead of the default classes. \ No newline at end of file