Hej alla pojkar och flickor. Innan har det bloggats här om The Hundred Kilobytes Kernel (HK2). För de som har missat HK2 och vad det är så ser jag till att citera en liten förklaring innan jag går vidare:
”The java.net project ”Hundred Kilobytes Kernel” (HK2) is a module subsystem coupled with a simple yet powerful component model to build software. It is a great technology to use in any Java software development and can be used in small devices such as phones up to enterprise applications. HK2 is designed to be friendly to existing technologies such as OSGi but it will also provide a path to the implementation of modules (JSR 277) in Java SE 7. HK2 is used as the foundation for GlassFish V3.”
Now to the action. Jag ska skapa en modul helt från scratch. Du måste ha maven2 för detta. OBS! denna tutorial är väldigt mycket ”for dummies” så du kan säkert hoppa över vissa saker :) .
down to biz.
1. I din ”shell”, skriv ”mkdir temp” och sedan ”cd temp”
2. därefter skriver du ”mvn archetype:create \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DgroupId=com.mycompany.app \ -DartifactId=temp”
sedan trycker du självklart på din ”return” knapp (dvs ”enter”) och sen väntar den korta tiden som det tar för maven att generera upp ett projekt åt dig.
3. skriv gedit/notepad/vi för att editera din pom.xml och använd sunt förnuft för att få den att se ut ungefär så här:
http://www.helloworlds.net/temp/temp/pom.xml
4. Skapa därefter filerna
Animal.java = > http://www.helloworlds.net/temp/temp/src/main/java/com/mycompany/app/Animal.java
Pig.java = > http://www.helloworlds.net/temp/temp/src/main/java/com/mycompany/app/Pig.java
Start.java = > http://www.helloworlds.net/temp/temp/src/main/java/com/mycompany/app/Start.java
5. Gå tillbaks till projektets ”rootkatalog” och skriv ”mvn hk2:hk2-compile” följt av ”mvn hk2:run”
Det kan se ut så här:
bash-3.00$ mvn hk2:run
[INFO] Scanning for projects…
[INFO] Searching repository for plugin with prefix: ‘hk2′.
[INFO] —————————————————————————-
[INFO] Building temp
[INFO] task-segment: [hk2:run]
[INFO] —————————————————————————-
[INFO] [hk2:run]
2007-jul-26 07:27:56 com.sun.enterprise.module.maven.MavenProjectRepository loadModuleDefs
INFO: Loading modules list from /export/home/ferid/temp/temp/pom.xml
ModuleStartup phase
Oink, oink
[INFO] ————————————————————————
[INFO] BUILD SUCCESSFUL
[INFO] ————————————————————————
[INFO] Total time: 2 seconds
[INFO] Finished at: Thu Jul 26 07:27:56 CEST 2007
2007-jul-26 07:27:56 com.sun.enterprise.module.ModuleClassLoader stop
INFO: ModuleClassLoader stopped com.mycompany.app:temp
2007-jul-26 07:27:56 com.sun.enterprise.module.ModuleClassLoader finalize
INFO: ModuleClassLoader gc’ed com.mycompany.app:temp
2007-jul-26 07:27:56 com.sun.enterprise.module.ModuleClassLoader stop
INFO: ModuleClassLoader stopped com.mycompany.app:temp
[INFO] Final Memory: 3M/8M
[INFO] ————————————————————————
bash-3.00$
Nu har vi precis använt oss av samma teknik som Glassfish V3 använder sig av, för att göra en HelloWorld applikation. Rätt coolt tycker jag!
Vill ni veta mer om hur allt fungerar och hänger ihop, är ni välkomna till nästa JavaForum eller JavaZone där vi i år kör en presentation om HK2.
tjena!
Ferid Sabanovic