1. VMware köper SpringSource för $420M (woow mycket pengar)

    Kriget om moln plattformar (Cloud platforms) tar fart pĂ„ allvar. Befintliga konkurrenter inom detta omrĂ„de dvs. IBM, Microsoft och Oracle har fĂ„tt en ny tuffare konkurrent nu med tanke pĂ„ VMware köp av SpringSource. Nu fattar jag bĂ€ttre varför SpringSource har satsat sĂ„ mycket pĂ„ OSGI den senaste tiden och Ă€ven köpet av företaget Cloud Foundry. Samtidigt som man kan ana varför Spring 3.0s produktion releasen har tagit sĂ„ lĂ„ng tid att fĂ€rdigstĂ€llas. Den skulle vara klar i april enligt prognos. Men tydligen har varit andra saker viktigare att hantera! LĂ€s mer om detta –> hĂ€r

  2. Klokt om Open Source

    Sedan ca tvĂ„ Ă„r tillbaka har jag varit intresserad av Jetty frĂ„n Webtide – ett mer lĂ€ttviktigt alternativ till Apaches Tomcat. Orsakerna Ă€r mĂ„nga och kan diskuteras separat nĂ„gon annan gĂ„ng.

    En av personerna bakom Jetty, Greg Wilkins, skrev nyss nĂ„got som jag tyckte var lĂ€svĂ€rt om Open Source och kommersialisering – ett Ă€mne som bl a Ă€r aktuellt inför Springs ”Maintenance Policy”.

  3. Springsource seminarie

    Vi var nÄgra frÄn IBS Javasolutions pÄ Spring seminarie i Stockholm 24/9.

    Det var förstÄs  intressant att höra om de tekniska nyheterna 3.0

    Men det kanske var mer intressant eller snarare oroande att höra om ökad kommersialisering av Spring.
    Efter en stabil 3.0.x release sÄ kommer de brancha och lÄta betalande kunder fÄ jar-filer med patchar medan övriga fÄr kompilera ihop dem sjÀlva om de  kommer före nÀsta patchrelease.
    Som jag förstod det skulle dock patcharna först vara tillgÀngliga betalande kunder.
    Inga större problem men nÀr man hörde pÄ diskussionen över en öl att SpringSource rekryterat affÀrsfolk och sÀljare frÄn b.l.a.  Sun och Oracle sÄ börjar man undra hur lÀnge kommer Spring kommer vara open source.

    Vad tror ni Àr det, en smygkommersialisering av Spring?
    Är det bra eller dĂ„ligt isĂ„fall?

  4. OSGi+Spring=sant

    Det hÀnder mycket kring OSGi, mÄnga börjar fÄ upp ögonen för det och Ànnu fler har hört talas om det. OSGi börjar bli lite buzzword men till skillnad frÄn andra buzzword Àr det hÀr fungerande konkret teknik. Inget flum, ingen grÄzon (till skillnad frÄn buzzwordet SOA)!

    Är du van vid Spring och nyfiken pĂ„ OSGi sĂ„ Ă€r tröskeln mycket lĂ„g. Men hjĂ€lp av Spring Dynamic Modules kan du deploya dina Springkomponenter i en OSGi-container och dra nytta av alla styrkor med OSGI. (LĂ€s mer…)

  5. Restlet: Ett enkelt ramverk för restful-tjÀnster

    Restlet Ă€r ett ramverk för att skapa tjĂ€nster som uppfyller restful arkitekturen. Restlet Ă€r baserat pĂ„ öppen kĂ€llkod och kan deployas med din war fil in i en servlet container eller i den medföljande egna servern. Restlet har Ă€ven stöd för integration med bland annat Spring. (LĂ€s mer…)

  6. Rod Johnson Spring vs EJB3.0

    Rod Johnson skriver i sin blogg framgĂ„ngarna med Spring ramverket kontra EJB3.0. Han refererar till en jobb sökmotor (jobtrends) och visar hur siffrorna ser ut. Visst, enligt siffrorna dĂ€r, det Ă€r mer efterfrĂ„ga pĂ„ Spring konsulter Ă€n EJB3.0. Men enligt den verkliga statistiken av den svenska konsultverksamheten jag har ser trenden inte sĂ„ som Jon pĂ„stĂ„r. De flesta projekt jag vet kör idag pĂ„ den traditionella EJB2.0, Struts 1.x och egna O/RM API L- och en del har sakta med sĂ€kert vaknat och tittat pĂ„ nya ramverk, dĂ€r ofta EJB3.0 ses som en standard utvĂ€g. Spring har varit Ă€n sĂ„ lĂ€nge utvecklarnas favorit i den svenska Java industrin dock inte direkt IT chefernas favorit antar jag! Kul att se hur utvecklingen bli fram över. Det Ă€r vĂ€ll upp till java utvecklarna att uppmana beslutfattare till rĂ€tt val (vilket det nu kan vara?!) 


  7. Spring 2.5

    Nu Àr Spring 2.5 klar och finns att ladda ner hÀr. Intressant Àr att Interface21 byter namn till SpringSource.

  8. Red Hat Developer Studio (beta 1)

    RedHat har nyligen slÀppt en första beta pÄ deras Eclipse-baserade utvecklingsverktyg som Àr förkonfigurerat för JBoss Enterprise Middleware och RedHat Enterprise Linux. Det hela pÄminner lite om att ladda hem och installera NetBeans med bundlad Glassfish. Vid installation sÄ installerar den en lokal JBoss Application Server 4.2 som Àr förkonfigurerad i RedHat Developer Studio. NÀr du ska skapa ett nytt projekt sÄ hittar du projektmallar för JBoss Seam, Spring, JPA och annat (se bilden nedanför). Allt sÄnt vi behöver finns alltsÄ klart och fÀrdiginstallerat frÄn början.

    RedHat Developer Studio - Projektmallar

    I princip sĂ„ Ă€r RHDS samma sak som Eclipse + JBoss IDE + Spring IDE, fast lite snyggare paketerat. För att vara en första beta sĂ„ fĂ„r man Ă€ndĂ„ sĂ€ga att de kommit ganska lĂ„ngt, betydligt lĂ€ngre Ă€n vad t.ex. en ”ren” Eclipse med WTP 2.0 (eller nĂ„got annat gratis plugin för EJB 3 stöd) har kommit. Antagligen beror detta pĂ„ att det hela Ă€r paketerat med en applikationsserver förkonfigurerad, samt att det finns fĂ€rdiga, fungerande (nĂ„ja.. de kommer nog fungera allihop i denna skarpa versionen) projekt-mallar för de vanligaste typerna av webb-projekt (EJB 2.x & 3, Seam, Spring, Hibernate o.s.v.). Att jobba i RHDS i denna betan Ă€r lite skakigt, GUIt kan frysa lite titt som tĂ€tt, och att försöka fĂ„ upp en ”Tooltol Description” (F2) eller anvĂ€nda andra vanliga funktioner fungerar inte riktigt. Antar att detta löser sig med tiden, sĂ„ jag ser fram emot nĂ€sta beta dĂ„ förhoppningsvis de mest störande buggarna Ă€r borta.

    Även om jag alltid varit lite skeptisk till anvĂ€ndarvĂ€nligheten i Eclipse sĂ„ mĂ„ste jag nog sĂ€ga att detta Ă€r ett steg i rĂ€tt riktning. Det jag saknar nu Ă€r att de ocksĂ„ slĂ€nger med plugins för de vanligaste versionshanteringssystemen (nĂ„got som finns med frĂ„n början i NetBeans och IntelliJ) samt en vettig konfigurering av kortkommandon (Alt-Shift-X, R Ă€r inte ett kortkommando) sĂ„ jag inte behöver kĂ€nna det som att jag sitter i Emacs igen nĂ€r jag vill utföra nĂ„got. Det Ă€r nĂ„got som Eclipse-utvecklarna borde tĂ€nka mer pĂ„. Man ska inte behöva anvĂ€nda musen för att styra sitt IDE, det Ă€r dĂ„lig s.k. usability.

    Hursomhelst, RedHat Developer Studio ser vÀldigt lovande ut och jag rekommenderar er att testa det om ni jobbar med JBoss-produkter. Om det Àr sÄ att ni redan anvÀnder NetBeans eller IntelliJ IDEA sÄ kommer ni nog kÀnna att det Àr en bit kvar, men det Àr i vilket fall betydligt bÀttre Àn en gamla vanliga Eclipse dÀr du sjÀlv mÄste installera alla plugins och konfigurera applikationsservrar.

    Ni kan ladda ner det hela och lÀsa mer om det pÄ http://www.redhat.com/developers/rhds/index.html.

  9. Javaforum Q3

    Dags igen för Javaforum. Som vanligt gratis och anmÀlan via javaforum.se

    Observera att vi startar 15.00

    15:00 JavaUpdate, Markus Wahl, IBS JavaSolutions
    15:25 OSGi – the dynamic module system for Java, Christer Larsson, CEO MakeWave
    16:10 Uppkopplade kunder vs. nedkopplade företag, Jonas Carlsson, lk9
    16:45 Thread.sleep(); // Mingel & macka
    17:15 The Hundred Kilobytes Kernel (HK2), Rikard Thulin & Ferid Sabanovic, IBS JavaSolutions
    18:10 Google Web Toolkit (GWT), Peter Norhall, Movlin AB
    18:55 Thread.sleep(); // paus
    19:10 Spirng 2.1, Henrik Reinhold & Mattias Ask, JayWay
    19:55 Javaforum on Rails – ÖreDev edition, Rikard, IBS JavaSolutions

  10. Javaforum Q3 börjar ta form

    HĂ€r kommer en liten ”teaser” pĂ„ presentationer som Ă€r inbokade för Javaforum Q3:
    * JavaUpdate, MarKus Wahl
    * The Hundred Kilobytes Kernel (HK2), Rikard & Ferid
    * GWT, Peter Norrhall, Movlin
    * Web 2.0 Trender, möjligheter och utveckling, Jonas Carlsson, lk9.se
    * Spring 2.1 – nyheter, Sping User Group
    * MakeWave kommer och pratar om OSGI

    En mycket intressant agenda med andra ord. Inbjudan kommer att skickas ut om nÄgon vecka via javaforum.se

  11. Bygg din egen applikationsserver

    Hur stor del av all funktionalitet i JBoss (eller WebLogic, Websphere, Glassfish etc.) anvĂ€nder du i dina enterprise-applikationer egentligen? Du kanske bara utnyttjar webb-containern (Servlets/JSP) och kör med Spring och Hibernate istĂ€llet för EJB? Tillverkarna av applikationsservrar försöker sĂ€lja sina produkter med argument sĂ„som att de Ă€r fĂ€rdiga paket med allt inkluderat och att funktioner för övervakning, drift och underhĂ„ll redan Ă€r pĂ„ plats. Problemet Ă€r att det för oss som utvecklare inte gör sĂ„ vĂ€rst stor skillnad. Jag Ă€r övertygad om att det tar i princip lika lĂ„ng tid att skriva ett ”vanligt” enterprise-system i Java oavsett om du anvĂ€nder Spring och Hibernate eller Java EE APIer EJB 3 (i mitt fall gĂ„r det nog snabbar emed Spring+Hibertnate t.o.m.). NĂ€r det gĂ€ller övervakning (larm och loggning först och frĂ€mst) sĂ„ behöver du fortfarande skriva den koden sjĂ€lv för att integrera mot applikationsserverns funktioner. Du behöver alltsĂ„ sjĂ€lv konfigurera log4j (eller det loggnings API som din applikationsserver anvĂ€nder) och koda JMX för att skicka notifieringar för övervakning. Baksidan med applikationsservrarna Ă€r att de innehĂ„ller en rĂ€tt stor mĂ€ngd funktioner, demos och tjĂ€nster som du aldrig kommer anvĂ€nda. Du mĂ„ste alltsĂ„ manuellt gĂ„ in och stĂ€nga av dem och framförallt se till sĂ„ att de verkligen Ă€r avslagna sĂ„ du inte har, t.ex., en JMX-konsol öppen för omvĂ€rlden eller lĂ„ter vem som helst ansluta sig till RMI-tjĂ€nsten. Kort sagt, i standardutförande sĂ„ Ă€r applikationsservrarna ganska osĂ€kra och krĂ€ver en del konfiguration för att man ska kunna sĂ€tta dem i en produktionsmiljö.

    SÄ varför inte bygga din egen? Nu menar jag inte att du ska koda din egen Servlet/JSP container, EJB 3 stack osv, utan snarare anvÀnda de fÀrdiga, mindre, komponenterna som mÄnga av applikationsservrarna faktiskt redan anvÀnder. SÄ lÄt oss sÀga att du ska skriva ett vanligt webb-baserat enterprise system med en databas (spelar ingen roll vilken) bakom. Du kommer ocksÄ behöva bÄde anvÀnda och publicera Web Services samt ha en JMS-kö som vissa av dina samarbetspartners ska lyssna pÄ för att fÄ veta nÀr du gjort Àndringar i din data. Vi kommer ocksÄ behöva logga hÀndelser i vÄrt system till fil samt ha en larm-hantering med SNMP-kommunikation till hosting-leverantörens övervakningssystem. HÀr kommer en liten inköpslista, allting open-source:

    Larmhanteringen löser du med JMX. Apache Tomcat anvÀnder redan JMX, sÄ du kan lÄna det mesta dÀrifrÄn. SNMP finns inbyggt i Java SE numera och Àr vÀldigt enkelt att slÄ pÄ. OvanstÄende Àr ÀndÄ ett ganska komplicerat exempel. De flesta projekt handlar ÀndÄ bara om att skriva ett webb-baserat system som aldrig integrerar mot andra system, i vilket fall du gott kan klara dig med Hibernate och Tomcat enbart. Ingen av komponenterna behöver nÄgon speciell installation annat Àn hur du vÀljer att anvÀnda dem i din kod. Allt gÄr dessutom fint att köra inbÀddat i Tomcat, sÄ du behöver inte starta flera JVMs heller. Det gör att du vet exakt vad det Àr för tjÀnster och portar som Àr öppna nÀr du vÀl startar servern.
    Nu vill jag inte sÀga att man aldrig har nÄgon nytta av de stora applikationsservrarna. PÄ stora företag sÄ lönar det nog sig mer att anvÀnda dessa fÀrdiga paket och ha dedikerad personal till att sÀtta upp och konfigurera dem. Stora företag har ocksÄ rÄd att betala för support och annat som du inte fÄr med nÀr du sÀtter ihop det hela sjÀlv. DÀremot tror jag att mÄnga mindre företag kan vara intresserad av ovanstÄende lösning. I ett litet projekt dÀr utvecklarna ocksÄ blir de som initialt driftar och sÀtter upp systemet sÄ skulle de nog löna sig att anvÀnda ovanstÄende metod. Det Àr inte sÀrskilt komplicerat att sÀtta ihop (det mesta handlar om att lÀgga det i lib-katalogen i din web-app eller i applikationsserverns lib-katalogen) och det finns massvis med tutorials och exempel för att integrera det hela bÀsta vis.

  12. Be True

    You can see it in their dull glaze- developers facing the details of a complicated web interface. Breadcrumbs. Form redirects. Sort columns. Synchronizing back/forward button. Uploads. 10 ways to do ”basically the same thing”. Bookmarks. i18n… and then there is the application to code, they mumble.
    There are many good reasons and rationale one should abide by when deciding on a presentation technology for a web application. Or at least I am sure there are. I just picked Spring MVC for a little e-shop I did for my wife because I wanted to play with it. Fortunately for her it all turned out well, and I can fill in the back-story.

    A rule of thumb I like to follow is to try to stay true to the core business and core technology. Just as a UI designer describes interactions which best fit the type of application being built, a software architect/designer could pick technologies which align well with the application platform. If I am developing an HTTP based web application then I may pick a presentation tier technology that fits well with the HTTP request / response paradigm. I have found that technologies which disguise their core implementation or try to generalize themselves into a broader classification tend to irritate me with limitations down the road.

    Back to Spring MVC.. The name betrays its rather clean implementation of servlet based request dispatch. You can choose from several different types of ”controllers”, from basic Get functionality to one supporting a more complex multi-page form post (wizard). The Model and View aspects of a web MVC pattern are abstracted out a bit more in Spring MVC, with POJIs and technology specific implementations. The Controller is the key here and Spring MVC gives you enough rope..

    Controller: ”We have a special guest, I will show them something fancy.”
    Model: ”You are always trying to get involved in my business. Its me they really want to see.”

    I liked how Spring MVC helps deal with the presentation issues I mentioned at the start- it seems to stay true to the technology, not trying to extend out into new territories (that would be Spring WebFlow).

    Spring MVC is covered nicely on the Springframework site, but there was not much describing it’s integration with Struts Tiles. So a few little details which may help someone. Three steps will get you there:

    1) Include your dependencies
        *     Struts version 1.1 or higher
        *     Commons BeanUtils
        *     Commons Digester
        *     Commons Lang
        *     Commons Logging

    2) Point to your Tiles config files through the Spring configuration of a TilesConfigurer. This includes a property for the factoryClass used (standard Tiles org.apache.struts.tiles.xmlDefinition.I18nFactorySet default).

    3) Select a ViewResolver which can recognize the Tiles configuration. Configure the InternalResourceViewResolver with the supplied Spring view class TilesView. This will resolve the String name from a controller into a matching Tiles definition name found in your Tiles config file.

    If you need your controller to redirect or forward to another controller and not a view, Spring MVC lets you put the keywords ”redirect:” or ”forward:” in front of the view name. If you inject the view names into the controllers, you gain some reuse with your controllers, leaving the flow of the application (either to a tiles view or another controller) specified clearly in the MVC application context configuration file.

  13. Spring 2.0 final released!

    Äntligen har Spring 2.0 final slĂ€ppts. LĂ€s om alla nyheter och ladda ner det hĂ€r.

    Nu Àr det bara att vÀnta pÄ att det ska slÀppas POM-filer pÄ ibiblio ocksÄ sÄ vi kan börja anvÀnda det med Maven2. Enligt Ben Hale pÄ Interface21 Àr arbetet dock i full gÄng.