Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

Instruktioner för utvecklare

...

Exempel på checkout kommando för tjänsteadresseringskatalogen
Kodblock
languagejavatext
╰─$$ git clone https://github.com/skltp/tak.git
Cloning into 'tak'...
$ cd tak


Källkoden för TAK har följande struktur med fyra undermoduler:Image Removed

  • tak-parent
    • tak-core - gemensamma klasser
    • tak-schemas - kodgenerering från tjänstekontrakt
    • tak-services - web services (SOAP och REST)
    • tak-web - webbgränssnitt för administration


Kontrollera att Maven använder Java 8 (mvn -v), det fungerar inte att bygga med nyare versioner.

...

Kodblock
mvn clean install

Beroende på Maven-version och -konfiguration så kan man eventuellt stöta på "Blocked mirror for repositories" beroende på att repo.grails.org/grails/plugins hämtas via http och inte https. (Dependencies som hämtas från Maven Central verkar inte påverkas utan där används på något magiskt sätt https trots att http-url används i projektfilerna.) En snabbfix för det är att öppna Mavens settings.xml och kommentera ut maven-default-http-blocker:

Kodblock
languagexml
    <!--<mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http:*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
    </mirror>-->

(Bör fixas permanent på ett bättre sätt genom att uppdatera projektfilerna.)

Kopiera https://ci.drift.inera.se/job/SKLTP/configfiles/editConfig?id=ae5eda6d-e166-4b43-a78c-ed67ed10cac0 till ~/.m2/settings.xml för att lägga till Nexus-server som källa för dependencies. (Det verkar inte som alla kommer åt filen, ger ev. 404)

Integrerad utvecklingsmiljö

TODO: Nedanstående beskrivning är inte uppdaterad. GGTS-pluginet för Eclipse utvecklas inte längre och finns inte kvar i Eclipse Marketplace. Den sista Eclipseversionen som stöds av pluginet är Eclipse 4.5 Mars. (Det går ändå inte att hämta pluginet från Marketplace utan man får i så fall göra en manuell installation.) Det finns även en specialversion av Eclipse, Spring Tool Suite & Groovy/Grails Tool Suite 3.6.4. Den uppdateras inte heller längre.

Utveckling av källkoden kan göras i olika IDE:er. Ett vanligt verktyg är Eclipse. Nedanstående beskrivning beskriver uppsättning av Eclipse Kepler 4.3 för utveckling av TAK.

Ladda ned Eclipse

Eclipse kan laddas ned här. Välj lämplig distribution för ditt operativsystem, exempelvis Eclipse IDE for Java EE Developers.

När Eclipse är uppstartat behövs en särskild Groovy/Grails-plugin installeras. Detta görs via Eclipse Marketplace... (gäller Kepler 4.3, tidigare versioner kan fungera annorlunda i detta avseende).

Välj Help -> Eclipse Marketplace...

Image Removed

Skriv in "Grails" i sökrutan (du bör få ett resultat som nedan). Välj "Install".

Image Removed

I nedanstående dialog kan installationen anpassas. Bilden visar det som är nödvändigt att installera. Klicka "Confirm"

när du valt klart.

Image Removed

I nästa dialog (om den dyker upp) Välj "Keep my installation the same..." och klicka på "Confirm".

Image Removed

Pluginen installeras sedan. Installationsdialogen kommer be dig om starta om Eclipse för att förändringarna ska gå igenom.

Installera Grails-distribution i Eclipse

För att kunna köra projektet tp-vagval-admin-web inuti Eclipse behövs en Grails-distribution installeras. Denna version är för tillfället 2.5.3.

Pack upp distibutionen på lämpligt ställe. Välj Eclipse -> Preferences -> Groovy -> Grails -> Add.. vilket ger följande dialog. Mata in ett lämpligt namn och peka ut distributionen.

Image Removed

Importera tp-vagval-admin-web till Eclipse

Stå i katalogen tp-vagval-admin-web i ett terminalfönster. Skapa konfigurationsfiler för Eclipse genom nedanstående kommando: 

Inget format
mvn eclipse:eclipse

Importera nu projektet i Eclipse genom File -> Import:

Image Removed

Välj "Existing Maven projects":

Image Removed

Välj Browse... - Peka ut projektroten för tp-vagval-admin-web - > klicka "Next"

Image Removed

Trots felen på nästkommande dialog (maven-license-plugin felar) så klicka på "Finish"

Image Removed

I nästa steg kan Eclipse be dig att konvertera projektet till ett Grails projekt som är konfigurerat för användning av STS Grails Tools.

Klicka "Yes".

Image Removed

Nu är projektet importerat till Eclipse, men några fel kan fortfarande finnas (felet med maven-license-plugin går ej att åtgärda för stunden)

Välj Maven -> Update Project... (Detta tar hand om en del fel)

Image Removed

Du kan också ha problem med Groovy compiler:

Image Removed

Detta åtgärdas genom att högerklicka på projektet tp-vagval-admin -> properties -> Groovy Compiler -> Välj 2.1 -> Klicka "Ok"

Image Removed

Starta upp tp-vagval-admin-web

Klicka på den gröna Grails ikonen 

Image Removed

Skriv in "run-app" i rutan som dyker upp och tryck Enter

Image Removed

Om allting funkar bör du få nedanstående i ditt konsolfönster

Inget format
| Loading Grails 2.2.4
| Configuring classpath
| Downloading: tp-vagval-admin-core-1.3.3-SNAPSHOT.pom
| Downloading: tp-vagval-admin-core-1.3.3-SNAPSHOT.jar.
| Environment set to development.....
| Packaging Grails application.....
| Running Grails application
| Server running. Browse to http://localhost:8080/tak-web

tp-vagval-admin-web är nu uppsatt som ett Grails-projekt i Eclipse.

Hur köra automatiska tester

Alla automatiserade enhetstester och integrationstester går att köra via både Maven och Mule Studio utan någon infrastruktur behöver vara uppsatt.

Kodblock
mvn clean test

Starta TAK lokalt för test

Ibland räcker det inte med att bara utveckla med automatiska tester utan man behöver kunna starta TAK servern lokalt i sin utvecklingsmiljö, t ex för att testa Web GUI't.

För att kunna starta TAK lokalt krävs att Grails 2.5.3 finns installerat lokalt på din dator. Instruktioner och dokumentation för hur man laddar ner och installerar Grails finns på följande länk http://grails.org/.

Verifiera med följande kommando vilken version av Grails som du har installerat

Kodblock
$grails -version
Grails version: 2.5.3

För att starta TAK lokalt och testa kan följande kommandon köras och ge resultatet Server running med adress till startsidan. 

TODO: Detta fungerar för närvarande inte (och har troligen inte fungerat sedan uppgradering till java8). Projektfiler och beskrivning behöver uppdateras... (BuildConfig.groovy behöver uppdateras med runtime plugins versioner hibernate=":hibernate4:4.3.10" och tomcat=":tomcat:7.0.55.2". Återstår att lista ut vad mer som behöver fixas) Se även https://grails.github.io/grails2-doc/2.5.3/guide/conf.html#dependencyResolution och jämför med bef.konfiguration.

"grails run-app" ger inte rätt dependencies - starta med "mvn grails:run-app" i stället!

Kodblock
$cd ...tak/tak-web
$grails run-app
| Server running. Browse to http://localhost:8080/tak-web

Öppna startsidan i en web läsare:

Image Removed

Logga in i lokal testmiljö med användaren admin som har lösenordet skltp. Startsidan skall nu visas:

Image Removed

tak-services (lokala databas)

Är en av modul under tak-parent som exponerar tjänster (SOAP).

Konfigurera eclipse

För att köra denna modul från eclipse integrerat tomcat miljö behöver man konvertera modul till en web-module

Kodblock
tak-services:> mvn eclipse:eclipse -Dwtpversion=2.0
Konfigurera tomcat

Under Servers peka ut befintliga tomcat server på disken. Då skapar eclipse en till modul med namn 'Servers'. Öppna context.xml under Servers och lägga in en 'Resource'

Kodblock
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" 
	maxActive="10" maxIdle="10" maxWait="10000" name="jdbc/TP" 
	username="taktestuser" password="taktest" type="javax.sql.DataSource" url="jdbc:mysql://127.0.0.1:3306/taktestdb?autoReconnect=true" />

Funktionella test (SOAP UI)

Importera projekt fil från tak-tests/soap-ui/tak-services-soapui-project i SOAP-UI. Skript under projekt skapar lite grunddata och tester mot denna data. 

...

tak-web

Modulen tak-web är byggd med Spring Boot och Spring MVC. Det kan startas i utvecklarläge (med profilen dev) med följande kommando. Den kommer då starta upp med en H2 in-memory-databas och exponera webbgränssnittet på port 8080. 

Kodblock
cd tak-web
mvn spring-boot:run

tak-services

TODO

Commit och Release

För att committa källkod på GitHub följer vi standardproceduren beskriven på: Generella instruktioner för utvecklare.

...

För att bygga en release följer vi standardproceduren beskriven på: Generella instruktioner för utvecklare.

Obs:

Grails använder IVY cache istället för Maven. IFall ändringar i tak-core inte slår igenom (eller errors vid bygge med Maven) så är det bra att rensa <user-home>/.grails/ivy/se...