Posts Tagged ‘java’

Spring Integration Http Outbound Gateway and variable url

Wednesday, September 21st, 2011
I’ve recently had to deal with spring integration and in particular the http outbound gateway component. One possible use case for it would be to have to send the message out to an arbitrary url. In order to accomplish this, we can insert the final url in a custom header (here X-CUSTOM-HTTP-REQUEST-URL) and use the Spring expression language (SpEL) to extract the header value and pass that as a variable to the url property. Sweet!

 
<http:outbound-gateway id="httpOutboundGateway" request-channel="httpOutboundGatewayRequestChannel" url="{outboundGatewayUrl}" reply-channel="httpOutboundGatewayReplyChannel" expected-response-type="java.lang.String" charset="UTF-8">
<http:uri-variable name="outboundGatewayUrl" expression="headers['X-CUSTOM-HTTP-REQUEST-URL']" />
</http:outbound-gateway>


PS. If Spring Integration seems to be eating your headers, there’s a reason for it, you need to specifically map all non standard headers. If interested post a comment.

jdk tools.jar under Snow leopard

Sunday, October 17th, 2010

Se usando maven-antrun-plugin sotto MacOsX Snow Leopard ottenete

[ERROR] BUILD ERROR
[INFO] ————————————————————————
[INFO] Failed to resolve artifact.

Missing:
———-
1) sun.jdk:tools:jar:1.6.0

Try downloading the file manually from the project website.

Then, install it using the command:
mvn install:install-file -DgroupId=sun.jdk -DartifactId=tools -Dversion=1.6.0 -Dpackaging=jar -Dfile=/path/to/file

Alternatively, if you host your own repository you can deploy the file there:
mvn deploy:deploy-file -DgroupId=sun.jdk -DartifactId=tools -Dversion=1.6.0 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]

Path to dependency:
1) org.apache.maven.plugins:maven-antrun-plugin:maven-plugin:1.4
2) sun.jdk:tools:jar:1.6.0

La soluzione veloce è :

cd /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/
sudo mkdir lib
cd lib
sudo ln -s ../Classes/classes.jar tools.jar

Purtroppo non ho ancora trovato un modo elegante dentro maven usando i profile.

Google App Engine introduce Java

Friday, April 10th, 2009

E’ un dato di fatto che spesso, la piattaforma di sviluppo che scegliamo è collegata con i servizi di hosting che esistono. Le preferenze personali semplicemente passano in secondo piano. LAMP è un successo mondiale sopratutto perche esistono migliaia siti di hosting pronti e a basso costo. .Net è un “fallimento” lato server perche i server non sono gratis e aperti. Java ha i server gratis e aperti, ma presenta i problemi. Se un host provider mette a disposizione un application/servlet container, come dare un servizio che scala e contemporaneamente proibire ai sviluppatori di fare idiozie che potrebbero mettere in ginocchio il sistema o lasciarlo meno sicuro, alla fine avete a disposizione tutte le API del JDK. Aggiungiamo anche il fatto che i requisiti neccessari sono più esigenti in termini di RAM e CPU messi a confronto con LAMP. Un problema non da poco che gli ingegneri della Google hanno deciso di affrontare e offrire una soluzione tutta loro.
Google App Engine, che fin’ora offriva Python come piattaforma di sviluppo, ora offre anche Java. Per il momento, è in fase di “prova” e limitato ai primi 10’000 sviluppatori che faranno la richiesta (10 siti a testa).
Chi sarà il fortunato, vedrà che la Java VM è stata modificata, le modifiche principali sono

  1. Non poter scrivere sul file system (ma potete leggere)
  2. Non si possono aprire delle Socket, ma si possono utilizzare le API di google per eseguire richieste HTTP e HTTPS
  3. Non si possono creare dei Thread, le richieste devono essere “servite” in tempo limitato (30sec)
  4. Altro, qui ci sarà da divertire sicuramente man mano che scopriamo tutte le limitazioni e modi per evitarle 🙂

Esiste una lista dettagliata delle classi del JDK disponibili per lo sviluppo e la guida per il sviluppatore e l’SDK, e sono messe a disposizione anche delle API proprietarie per la persistenza dei dati (api JDO e JPA tramite la libreria DataNucleus), autenticazione utenti, mail, memcache, modifiche immagine, task schedulati e fetch di URL. E’ stato publiccato anche il plugin per Eclipse con l’SDK e GWT incluso.
In breve, prevedo che avremo tantissime applicazioni che d’ora in poi proveranno a fare vita e miracoli per stare dentro questi limiti. Già ci sono post in giro per vedere se il i vari framework possono girare su App Engine e si sta già lavorando per fare le modifiche neccessari (es. struts 2, osgi).
Il hosting è gratis con il limite di stare al di sotto i 500MB di storage e 5 milioni di pagine servite al mese, per andare oltre bisogna attivare il billing.
Una piccola rivoluzione è iniziata (di nuovo) grazie a Google e ora, andiamo avanti per creare il prossimo milione di siti 🙂

Maven: usare la cartella “lib” di un project

Wednesday, December 3rd, 2008

Se uno per praticità vuole tenere le library all’interno del project o cmq. usare java-library che nel maven-repository non ci sono e non vuole sporcare il repository può mettere nel pom del progetto in alto :
[java]


project
Project Maven Repository
default
file:///./lib


[/java]
In questo modo maven cercherà nella lib le java-library necessarie. [Fonte]

Obtain Multiaddress IP with java

Thursday, October 16th, 2008

If you have many address, you can obtain all :
[java]
InetAddress[] e = InetAddress.getAllByName(InetAddress.getLocalHost().getCanonicalHostName());
[/java]

JBuilder 2008 and Windows Vista problems

Thursday, August 7th, 2008

So let’s say you try to install JBuilder 2008 under Windows Vista (32bit). Did all went smoothly? A friend of mine got a nice JVM terminated Exit code=-1 error. It would seem that if you modify the JBuilder.ini -Xmx parameter (initially over 800M) to 700M or 600M and if you run reset_JBuilder.bat it might finish the installation. An alternative is to modify JBuilder.ini the moment it gets created so you don’t have to wait twice.
Also it would seem sometimes class diagrams won’t show classes. My friend deleted all com.ibm.icu* packages and jars under JBuilder and put com.ibm.icu_3.8.1.v20080530.jar from eclipse 3.4 to the jbuilder 2088 plugins directory.
For the moment things seem to function.

Eclipse RCP on MacOSx 10.5

Wednesday, April 2nd, 2008

Se vi avventurate nello sviluppare plugin RCP con eclipse sotto MacOsX 10.5 Leopard sappiate che avrete degli errori tipo

java.lang.UnsatisfiedLinkError: no swt-carbon-3349
or swt-carbon in swt.library.path, java.library.path or the jar file

l’unica soluzione che avete è quella mostrata in figura, ossia andare in Run Dialog e nelle opzioni della VM aggiungere

-Djava.library.path=/Application/eclipse/plugin

Shoot Eclipse Dialog