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.