De drie belangrijkste producten van WSO2: API Manager, Identity Server en Micro Integrator kunnen snel worden geïnstalleerd op je lokale computer. In deze blog zullen we de algemene installatieprocedure beschrijven, die hetzelfde is voor alle drie de producten op Windows, Linux of Mac. We zullen dit doen aan de hand van Micro Integrator als voorbeeld, met instructies voor de andere twee producten in de laatste alinea.
Wanneer je Micro Integrator (MI) wilt uitproberen om te zien wat het product kan doen, kun je het eenvoudig installeren op je lokale machine. WSO2-software noemen we ‘any prem’, het kan lokaal worden uitgevoerd, het kan in de cloud worden uitgevoerd en het kan worden uitgevoerd op je server, wat een groot voordeel is. Het maakt niet uit of je het op Linux, Windows of Mac installeert.
In feite is er veel hetzelfde voor beide omgevingen. Zoals het downloaden van de binaire bestanden en het instellen van Java, enzovoort.
Op alle drie de platforms is de installatie vrij eenvoudig en kan deze binnen enkele minuten worden voltooid. Natuurlijk heb ik het hier niet over een echte installatie waarbij je WSO2 MI configureert voor productie of zelfs een Proof of Concept. Nee, ik heb het over het installeren om snel een van de mediaties uit een van onze blogs bijvoorbeeld uit te proberen.
Open Source of productondersteuning
Welke keuzes heb je? Allereerst de keuze van de versie. Ga je voor de open-sourceversie die je kunt downloaden van GitHub, of gebruik je de versie die je kunt downloaden van de website van WSO2, die geen open source is maar een productondersteuningslicentie vereist wanneer je deze in productie gebruikt. Ik raad je aan om de EULA-voorwaarden te lezen wanneer je het bestand downloadt om te beslissen wat het beste voor je is.
Maar laten we teruggaan naar de broncode. Je kunt het hier vinden en sinds een paar maanden plaatst WSO2 niet langer de binaire bestanden, maar alleen de broncode. Je downloadt eenvoudigweg de broncode, maar om deze te kunnen gebruiken, is een Maven-build vereist om de binaire bestanden te maken. Dit is in zekere zin niet veel werk, zoals je kunt zien op de screenshot, duurt het 23 minuten. Maven is de buildtool om het product te bouwen vanuit de broncode, ik zal niet te veel in detail treden over dit proces, je vindt een aantal blogs over het bouwen vanuit de broncode op de website van Yenlo.
Als dit te veel werk lijkt en je hier geen gedoe mee wilt hebben, raad ik je aan om de versie van WSO2 te downloaden. De micro-integrator is te vinden in het integratiegedeelte van de site. De documentatie is echter nog steeds bij de API Manager, omdat de Micro Integrator de laatste paar versies alleen via de API Management-downloadpagina toegankelijk was. Maakt dat sense? Ja en nee. De API Manager en de Micro Integrator zijn broertjes en werken goed samen, hoewel het verschillende producten zijn met verschillende use-cases.
Ga naar deze URL om te downloaden: https://wso2.com/micro-integrator/
Click Download.
Vul een zakelijk e-mailadres in, dus niet zoals Gmail of andere gratis e-mailservices. Accepteer de softwarelicentie. De download is niet direct, je krijgt een link voor een eenmalige download van het zipbestand. Als je het een tweede keer wilt downloaden, moet je het proces herhalen. Je ontvangt een e-mail waarin je een downloadknop vindt om op te klikken.
Dit start de download van het zipbestand. Je vindt het in de downloadmap van je computer en om door te gaan met de installatie gaan we het kopiëren naar het bureaublad. Als je dat hebt gedaan, maak dan een map genaamd MI420 aan. Gebruik je archiverings- of zipmanager om het zipbestand uit te pakken naar die map. Ik laat hier de Linux-download zien, voor Windows is het principe hetzelfde.
Tot nu toe zijn alle instructies onafhankelijk van het besturingssysteem. Vanaf dit punt gaan we de configuratie voor de Linux-omgeving laten zien. In dit geval onze CentOS-omgeving. Als er verschillen zijn voor Windows of Mac, zullen we deze aangeven.
Het zal er zo uitzien.
Wat we moeten doen, is ook JAVA downloaden. Je hebt mogelijk al een Java-versie op je machine, maar in dit geval ga ik JDK17 downloaden, omdat MI 4.2.0 die versie ondersteunt (evenals Java 11).
De lijst vermeldt eigenlijk de volgende JDK’s.
CorrettoJDK | 11, 17 |
AdoptOpenJDK | 11, 17 |
OpenJDK | 11, 17 |
Oracle JDK | 11, 17 |
Ik zal het Adopt OpenJDK downloaden als een zipbestand. Pak het na het downloaden ook uit in de MI420-map.
De map ziet er nu zo uit.
Nu gaan we een batchbestand maken dat tijdelijk JAVA_HOME instelt en het PAD uitbreidt om de versie van Java in onze map te gebruiken. Dit betekent dat het geen invloed heeft op andere versies die je mogelijk hebt, omdat de instellingen alleen gelden tijdens de uitvoering van het batchbestand.
De code is vrij eenvoudig.
Dit is de code voor Linux:
export OLDPATH=$PATH
export OLDJH=$JAVA_HOME
echo Setting JAVA_HOME
export "JAVA_HOME=/opt/wso2/Desktop/MI420/jdk-17.0.7+7"
echo JAVA_HOME: $JAVA_HOME
echo Setting PATH
export "PATH=/opt/wso2/Desktop/MI420/jdk-17.0.7+7/bin;$PATH"
echo PATH: $PATH
echo starting WSO2 MI 4.2.0
cd /opt/wso2/Desktop/MI420/wso2mi-4.2.0/bin
sh micro-integrator.sh
cd ../..
export PATH=$OLDPATH
export JAVA_HOME=$OLDJH
echo JAVA_HOME: $JAVA_HOME
echo Done
Voor Windows is het script een beetje anders, maar niet veel. Voornamelijk in de manier waarop Windows werkt met directories, zoals de back slash in plaats van een forward slash.
@set OLDPATH=%PATH%
@set OLDJH=%JAVA_HOME%
@echo Setting JAVA_HOME
@SET "JAVA_HOME=C:\Users\rob\Desktop\MI420\jdk-17.0.7+7"
@echo JAVA_HOME: %JAVA_HOME%
@echo Setting PATH
@SET "PATH=C:\Users\rob\Desktop\MI420\jdk-17.0.7+7\bin;%PATH%"
@echo PATH: %PATH%
@echo starting WSO2 MI 4.2.0
@cd C:\Users\rob\Desktop\MI420\wso2mi-4.2.0\bin
@start micro-integrator.bat
@cd ..\..
@set PATH=%OLDPATH%
@set JAVA_HOME=%OLDJH%
@echo JAVA_HOME: %JAVA_HOME%
@echo Done
Wanneer je het script vanuit een terminal uitvoert, ziet het er op Linux zo uit.
Zoals je kunt zien, wordt JAVA_HOME niet beïnvloed, alleen binnen de terminal wordt het ingesteld. De code herstelt eigenlijk de oude instellingen van het pad en JAVA_HOME.
Installeren op Windows
Voor Windows is de beste manier om Micro Integrator te starten door een CMD-venster te openen in plaats van te klikken op het pictogram in de reguliere mapweergave. Als er iets misgaat, kun je in een CMD-venster de foutmelding zien, terwijl het venster direct wordt gesloten wanneer je klikt en er iets misgaat, zonder de mogelijkheid om te zien wat er misging.
Installeren op Mac
Op een Mac is het script vergelijkbaar met Linux, maar de pad van Java Home is anders vanwege de directorystructuur van de gedownloade JDK van Mac.
Dit is de code voor Mac:
export OLDPATH=$PATH
export OLDJH=$JAVA_HOME
echo Setting JAVA_HOME
export "JAVA_HOME=/Users/rob/Desktop/MI420/jdk-17.0.7+7/Contents/Home"
echo JAVA_HOME: $JAVA_HOME
echo Setting PATH
export "PATH=/Users/rob/Desktop/MI420/jdk-17.0.7+7/Contents/Home;$PATH"
echo PATH: $PATH
echo starting WSO2 MI 4.2.0
cd /Users/rob/Desktop/MI420/wso2mi-4.2.0/bin
sh micro-integrator.sh
cd ../..
export PATH=$OLDPATH
export JAVA_HOME=$OLDJH
echo JAVA_HOME: $JAVA_HOME
echo Done
Wanneer je het script vanuit een terminal uitvoert, ziet het er op een Mac zo uit.
Testen
Dit is hoe je kunt controleren of de installatie van de Micro Integrator op je lokale machine werkt. Hoe weten we dat het werkt? Wel, we kunnen een eenvoudige API op de Micro Integrator plaatsen. Ik zal geen gebruik maken van Integration Studio, maar je in staat stellen om een XML Synapse-configuratie te maken en deze rechtstreeks in de Synapse Config-map te kopiëren.
De API maakt gebruik van de icanhazdadjoke.com API die daar beschikbaar is en geeft een grap terug.
Kopieer deze code naar een XML-bestand genaamd joke.xml en bewaar het in een map genaamd api. Deze map bestaat nog niet, dus je moet deze aanmaken.
<?xml version="1.0" encoding="UTF-8"?>
<api context="/joke" name="joke" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="GET">
<inSequence>
<property action="remove" name="REST_URL_POSTFIX" scope="axis2"/>
<header name="Accept" scope="transport" value="application/json"/>
<call>
<endpoint>
<http uri-template="https://icanhazdadjoke.com/">
<suspendOnFailure>
<initialDuration>-1</initialDuration>
<progressionFactor>-1</progressionFactor>
<maximumDuration>0</maximumDuration>
</suspendOnFailure>
<markForSuspension>
<retriesBeforeSuspension>0</retriesBeforeSuspension>
</markForSuspension>
</http>
</endpoint>
</call>
<respond/>
</inSequence>
<outSequence/>
<faultSequence/>
</resource>
</api>
Dit is waar je het moet maken: [MI-HOME]/repository/deployment/server/synapse-configs/default/api.
Het is voldoende om het bestand daar te plaatsen. MI leest en implementeert het.
Open nu een browser en kopieer deze URL:
http://localhost:8290/joke
De API die we hebben geïmplementeerd, geeft een grap terug.
Dit is een vrij snelle en eenvoudige manier om een API te implementeren. Normaal gesproken zouden we een integratieproject maken in Integration Studio en de API implementeren met behulp van een Composite Exporter. Maar voor een snelle test zoals deze werkt het prima en het vereist geen installatie en uitleg van Integration Studio om te zien of het product werkt.
Andere WSO2-producten installeren
De API Manager en Identity Server kunnen op een vergelijkbare manier worden geïnstalleerd. De verschillen zijn natuurlijk:
- De downloadlocatie voor de producten API Manager en Identity Server
- Binnen de individuele scripts de naam van de mappen (bijv. wso2am-4.2.0 en wso2is-6.1.0) en opstartopdrachten (api-manager.sh/bat wso2server.sh/bat)
Een snel voorbeeld voor de API Manager op Windows met de wijzigingen ten opzichte van Micro Integrator in het geel:
@set OLDPATH=%PATH%
@set OLDJH=%JAVA_HOME%
@echo Setting JAVA_HOME
@SET "JAVA_HOME=C:\Users\rob\Desktop\AM420\jdk-17.0.7+7"
@echo JAVA_HOME: %JAVA_HOME%
@echo Setting PATH
@SET "PATH=C:\Users\rob\Desktop\AM420\jdk-17.0.7+7\bin;%PATH%"
@echo PATH: %PATH%
@echo starting WSO2 AM 4.2.0
@cd C:\Users\rob\Desktop\MI420\wso2am-4.2.0\bin
@start api-manager.bat
@cd ..\..
@set PATH=%OLDPATH%
@set JAVA_HOME=%OLDJH%
@echo JAVA_HOME: %JAVA_HOME%
Dit zijn enkele van de opties, zoals het uitvoeren ervan in een container. Dat zou een leuk onderwerp kunnen zijn voor een toekomstige blog.
Met dank aan Saad Sahibjan voor zijn hulp bij de Mac.