The japedo-maven-plugin in the executing application could be configured like this. Japedo documentation will be generated for the Petshop application installed on QA and on PRODUCTION environments. The japedo.jar is located in the src/test/resources directory. For security reasons the database connection parameters are given as placeholders:
<profile>
<id>japedo</id>
<build>
<plugins>
<plugin>
<groupId>com.logitags</groupId>
<artifactId>japedo-maven-plugin</artifactId>
<version>1.5.1</version>
<configuration>
<japedoDirectory>src\test\resources</japedoDirectory>
<proxyHost>127.0.0.1</proxyHost>
<proxyPort>57080</proxyPort>
<applications>
<application>
<name>QA-Petshop-%version%</name>
<includeSources>
<includeSource>com.mycompany</includeSource>
<includeSource>net.mycompany</includeSource>
</includeSources>
<additionalDependencies>
<additionalDependency>com.h2database:h2:${h2.version}</additionalDependency>
<additionalDependency>org.apache.tapestry:tapestry-core:5.3.8</additionalDependency>
<additionalDependency>com.logitags:cibet-core:2.2.2</additionalDependency>
<additionalDependency>org.jboss.weld:weld-api:4.0.SP1</additionalDependency>
<additionalDependency>com.oracle:ojdbc8:12.2.0.1.0</additionalDependency>
</additionalDependencies>
<dbConnectionUrl>$dbConnectionUrl1</dbConnectionUrl>
<dbDriverClassName>$dbDriverClassName1</dbDriverClassName>
<dbPassword>$dbPassword1</dbPassword>
<dbUsername>$dbUsername1</dbUsername>
<dbSchema>$dbSchema1</dbSchema>
</application>
<application>
<name>PROD-Petshop-$projectVersion2</name>
<projectVersion>$projectVersion2</projectVersion>
<includeSources>
<includeSource>com.mycompany</includeSource>
<includeSource>net.mycompany</includeSource>
</includeSources>
<additionalDependencies>
<additionalDependency>com.h2database:h2:${h2.version}</additionalDependency>
<additionalDependency>org.apache.tapestry:tapestry-core:5.3.8</additionalDependency>
<additionalDependency>com.logitags:cibet-core:2.2.2</additionalDependency>
<additionalDependency>org.jboss.weld:weld-api:4.0.SP1</additionalDependency>
<additionalDependency>com.oracle:ojdbc8:12.2.0.1.0</additionalDependency>
</additionalDependencies>
<dbConnectionUrl>$dbConnectionUrl2</dbConnectionUrl>
<dbDriverClassName>$dbDriverClassName2</dbDriverClassName>
<dbPassword>$dbPassword2</dbPassword>
<dbUsername>$dbUsername2</dbUsername>
<dbSchema>$dbSchema2</dbSchema>
</application>
</applications>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
The POST /generate web service is called with the following configuration:
{
"gitUrl": "https://gitlab.mycompany.com/petshop.git",
"gitBranch":"feat/build/1.93",
"username":"technical-user",
"password":"mysecretpassword",
"mavenProfile":"japedo",
"gitPagesUrl":"https://gitlab.mycompany.com/petshop-japedo.git",
"proxyHost":"proxy-cc.meshcore.net",
"proxyPort":"3128",
"mavenDebug": "true",
"mavenSettings":"<?xml version=\"1.0\"?><settings xsi:schemaLocation=\"http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd\" xmlns=\"http://maven.apache.org/SETTINGS/1.1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><proxies><proxy><active>true</active><protocol>https</protocol><host>proxy-cc.meshcore.net</host><port>3128</port></proxy></proxies><servers><server><id>releases</id><username>techUser</username><password>secretPassword</password><configuration><wagonProvider>httpclient</wagonProvider><httpConfiguration><all><usePreemptive>true</usePreemptive></all></httpConfiguration></configuration></server><server><id>snapshots</id><username>techUser</username><password>secretPassword</password><configuration><wagonProvider>httpclient</wagonProvider><httpConfiguration><all><usePreemptive>true</usePreemptive></all></httpConfiguration></configuration></server><server><id>mycompany-nexus-group</id><username>techUser</username><password>secretPassword</password><configuration><wagonProvider>httpclient</wagonProvider><httpConfiguration><all><usePreemptive>true</usePreemptive></all></httpConfiguration></configuration></server></servers><mirrors><mirror><mirrorOf>*</mirrorOf><url>https://nexus.mycompany.com/repository/nexus-group</url><id>mycompany-nexus-group</id></mirror></mirrors><profiles><profile><id>nexus</id><repositories><repository><id>central</id><url>http://central</url></repository></repositories><pluginRepositories><pluginRepository><id>central</id><url>http://central</url></pluginRepository></pluginRepositories></profile></profiles><activeProfiles><activeProfile>nexus</activeProfile></activeProfiles></settings>",
"parameters":
{
"dbUsername1":"pet",
"dbPassword1": "databasPassword",
"dbDriverClassName1": "oracle.jdbc.OracleDriver",
"dbConnectionUrl1": "jdbc:oracle:thin:@xspp12-scan.svc.core.net:1521",
"dbSchema1": "PET",
"dbUsername2":"pet-prod",
"dbPassword2": "databasePassword",
"dbDriverClassName2": "oracle.jdbc.OracleDriver",
"dbConnectionUrl2": "jdbc:oracle:thin:@xspp13-scan.svc.core.net:1521",
"dbSchema2": "PET_PROD",
"projectVersion2": "1.150.2"
}
}