Innehåll:
Innehållsförteckning |
---|
Utvecklingsmiljö
För att utveckla och underhålla SKLTP samt köra automatiska enhetstester och integrationstester i utvecklingsmiljön krävs:
- Java SE 7(OpenJDK) 8 och 11
- Maven 3
- Subversion och Git klient
- MySQL Community Server och GUI för den Workbench
Val av IDE är valfritt men om mest av oss använder IntellijIdea IDE. Där finns Git GUI by default.
Om Eclipse används så rekommenderas följande pluginer för versionshantering av källkod:
- Subversive EGit för SubversionEGit för GitGit
Också det finns bra fristående Git-client Sourcetree
För att exekvera systemtester används:
...
License headers
...
- SoapUI för funktionella tester
- Klientcertifikat
- Gatling för lasttester och robusthetstester
För mer information om hur Gatling används se instruktion för att köra lasttester med Gatling
Hur commita kod i Subversion
Innan man commitar ändringar är det väldigt viktigt att man:
...
Utöver detta behövs rättigheter till följande:
- Github push rättigheter
- Rättigheter till Ineras Jenkins server.
- Rättigheter till Ineras Nexus
- JIRA och Confluence wiki
- Tillgång till fysiska testmiljöer
Git för utvecklare
/wiki/spaces/SKLTP/pages/3187835204
Maven repo
Flera SKLTP-komponenter använder egenutvecklade bibliotek. Dessa finns publicerade i Ineras Nexus. Lägg till nedanstående i Maven settings för att använda dess maven-repo som mirror.
Kodblock |
---|
<mirrors>
<mirror>
<id>Basefarm Nexus</id>
<name>Basefarm Nexus Public Mirror</name>
<url>https://nexus.drift.inera.se/repository/maven-public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors> |
License headers
Maven bygget kontrollerar att det finns licensheadrar i källkodsfilerna (till exempel, när man kör: mvn clean install) genom att använda com.mycila.maven-license-plugin:maven-license-plugin.
If a build fails due to missing license headersOm bygget falerar p.g.a. att licensheadrar saknas:
Inget format |
---|
[INFO] Missing header in: /Users/hakan/Documents/scm/svn_skltp/jms-admin-web_tr/src/main/java/se/skltp/admin/core/services/HdLabAmq.java [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE |
it can be fixed by runningDet kan man lösa genom:
Kodblock |
---|
mvn license:format |
...
Verifiering
To release software components we use Maven and its release-plugin.
To be able to publish released artifacts on the central Maven repository we use Sonatype OSS Repository Hosting Service, see instructions for more information.
Info |
---|
See example JIRA on how to get permissions to publish https://issues.sonatype.org/browse/OSSRH-7085 Note: original hosting request: https://issues.sonatype.org/browse/OSSRH-5414 |
After a successful registration and setup of a OSS project according to the instruction above a release can be done to the central repository just by doing the ordinary:
Kodblock |
---|
mvn release:prepare
mvn release:perform
|
The artifacts are now pushed to a Nexus staging repository and can be published in its staging repository for verification and after that the artifacts can be released for publication on the central Maven repository. See below for instructions.
For the SKLTP project with the group-id se.skltp
, see http://repo1.maven.org/maven2/se/skltp/.
Verify and publish released artifacts
Before publishing released artifacts to the public Maven repository we can verify its functionality by publishing them to a staging repository.
After a successful verification we can move on and make them public available in the central Maven repository.
Publish to a staging repository for verification
- Go to: https://oss.sonatype.org
- Login to the Nexus UI.
- Select "Staging Repositories" in the menu to the left.
- Select the release-bundle in the list that is displayed, e.g. seskltp-nnnn, and validates its content (click on the Content-tab below the selected bundle)
- Click the Close button in the top menu.
Validate
The suggested validation procedure assumes that you have a maven profile in your settings-file (~/.m2/settings.xml) like:
...
<profile>
<id>sonatype-nexus-staging</id>
<repositories>
<repository>
<id>sonatype-nexus-staging</id>
<name>Sonatype Nexus Staging</name>
<url>https://oss.sonatype.org/content/repositories/staging/ </url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</profile>
Perform the following steps:
- Validate against the staging repo https://oss.sonatype.org/content/repositories/staging/
- Activate the maven profile sonatype-nexus-staging in the maven settings.xml - file:
...
<activeProfiles>
<activeProfile>sonatype-nexus-staging</activeProfile>
</activeProfiles>
- If you are using the released artifacts are used in other components:
- Remove the released artifacts from the local maven repository (to ensure that the artifacts are downloaded as expected from the Sonatypes staging repository)
- Update other components that depend on the released artefacts to the new versions in their maven dependencies and perform a clean build of the components.
- Perform whatever tests to ensure the the components work as expected with the released artifacts.
- If the released artifacts contains ready to use applications
- Download the application runtime-files for the staging repository and deploy then into your test environment.
- Perform tests that verify that the new release of the application works as expected.
- If errors are detected then go back to the Nexus UI and click on the Drop button to stop the release.
- Correct any errors and redo the deploy process...
Publish to the central Maven repository for public availability
...
Innan release av en komponent ska funktionella tester, lasttester och robusthetstester genomföras.
/wiki/spaces/SKLTP/pages/3187836104
Release Management
Maven används för att skapa releaser. Följ denna länk för vidare instruktioner.
Paketnamn
SKLTP komponenter
se.skltp.<komponentnamn>, tex se.skltp.agp
Aggregerande tjänster
se.skltp.aggregatingservices.<tjänstedomän>.<tjänsteinteraktion>, tex se.skltp.aggregatingservices.riv.clinicalprocess.healthcond.basic.getaggregatedmeasurement
Anpassningstjänster
se.skltp.adapterservices.<adapternamn>, tex se.skltp.adapterservices.DominoHttp10Adapter
Virtuella tjänster
se.skltp.virtualservices.<tjänstedomän>, tex se.skltp.virtualservices.clinicalprocess.activityprescription.actoutcome.