News
Eclipse classic missing Marketplace
- Details
When using Eclipse classic you probably noticed that there isn't any Marketplace installed - below is a few steps for installing this (and if you have never seen the Marketplace, your missing out on a lot of "fun"):
- Help->Install New Software...
- Point to Eclipse Indigo Site. If not available add the site "Indigo - http://download.eclipse.org/releases/indigo"
- Look at "General Purpose Tools"->"Marketplace Client"
- After installing, restart Eclipse and you can find Marketplace in "Help->Eclipse Marketplace..."
Tada, simple yet powerful!
Enable svn auto properties for Eclipse
- Details
Once you create a new Java (or any other file for that matter) under Eclipse it is quite convenient to add SVN header info upon comit automatically. This is done by adding a new file named "config" - e.g. in ~/.svn/settings/conf/. Then add the following information to the file:
[miscellany]
enable-auto-props = yes
[auto-props]
* = svn:keywords=Author Date Id Revision
Next, in Eclipse go to Windows > Preferences > Team > SVN and set the "Configuration location" to "Use directory", and simply browser to the configuration directory you just created (you select a dir, not a file!).
Lotus Notes 8.5.3 and Java web services consumer
- Details
My initial plan was to use axis and to use the version provided by in jvm in Notes (/Domino? I cannot seem to figure out when to use Notes and when to use Domino, so I'll simply use Notes)... After exhausting trail'n' error I simply gave up and re-wrote everything in Spring.
This gave me the advantage of working without any Notes specific some-what-crappy-and-buggy-versions of axis - a framework which I haven't used for like 5 or 6 years... I use Spring on a daily basis, so this is just top dollah!
Anywho, this also gave me the advantage of being able to do my Java development in a plain Eclipse rather than some really horrible (imho) IDE provided by Notes (also known as the Designer). Again, being free of any specific Notes stuff I started by creating my Jaxb classes. Simply by using the maven-jaxb2-plugin for maven (for architectural reasons I'm stuck on 2.0.9). The power of the plugin is that you add the path to your xsds to the pom.xml and simply do a "mvn install" (read the documentation or catch me on twitter@sunlock). Then you have the model (e.g. xsd types), request, and response classes. Quite neat if I may say so.
Next up is the Spring part. If you have ever done any Spring development this is straight forward. Use Spring-WS and with a simply configuration your done! If you haven't your f*cked! :) Naaa, I have a breif tour on this page - and then your done.
Again, for architectural reasons I'm stuck on a old version of Spring, but that shouldn't stop you for doing some development in the newer versions.
My dependencies (thus being the files added to WEB-INF/lib on the Notes side) are:
- commons-logging-1.1.1.jar (used by Spring)
- spring-2.5.6.jar (older version, newest is currently 3.1)
- spring-ws-1.5.9.jar (older version, newest is currently 2.0.2)
- my-autogen-jaxb-classes.jar (my classes compiled by Jaxb - added to a jar)
- my-webservice-consumer.jar (the actual implementation)
Please do notice this bug - currently we haven't had time to figure out what to do as it seems that this bug also exists in 8.5.3, but we're also looking into this.
As always, feel free to catch me on twitter@sunlock.
Lotus Notes 8.5.3, web services, jar dependency, and more...
- Details
I'm currently working with Lotus Notes 8.5.3 and web services. This seems to be a brand new area, google doesn't find much (sometimes nothing), so not much help there. Also, I'd like to build my Java code as I normally do - that is, use maven etc. Spring-Ws would be nice, but I'm having a hard time trying to figure out how Notes handles dependencies (I'm guessing... it ain't!).
Guess I'll have to write an article about this some day, but for now... Help? Find me on twitter@sunlock. If you have any experince in this area, please give me a wink.
Java, JAXB2, and Spring-WS
- Details
Over the past few weeks I have been working with Java, Spring-WS, and JAXB2. I must admit that it is simple yet powerful - although I feel that I'm missing something like using different datatypes.
E.g. using Javas own Calendar instead of a XMLGregorianCalendar when using e.g. dateTime. The solution is simple and elegant, simply add the following to your xsd:
<xs:schema ... xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0" ...>
<xs:annotation>
<xs:appinfo>
<jaxb:globalBindings>
<jaxb:javaType name="java.util.Calendar" xmlType="xs:dateTime" parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime" printMethod="javax.xml.bind.DatatypeConverter.printDateTime" />
</jaxb:globalBindings>
</xs:appinfo>
</xs:annotation>
...
This will change the xs:dateTime into a good old Java Calendar.
If you want more info go to the Unofficial JAXB Guide - Using different datatypes.
TrayMonitor - init release
- Details
Not must to say, just wanted to say that the initial release of TrayMonitor is out!
JSP: Trim blank lines
- Details
Sometimes it would be nice to trim jsp for blank lines. Every JEE developer knows that jsps contains blank lines... lots'n'lots of silly stupid blank lines. But fear not, the solution is as simple as it is elegant. JSP 2.1 supports a new trimWhitespace directive:
<%@ page trimDirectiveWhitespaces="true" %>
You could also add the following to your web.xml:
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<trim-directive-whitespaces>true</trim-directive-whitespaces>
</jsp-property-group>
</jsp-config>
Notice that you should use a Servlet 2.5 XSD in order for this to work.
IE, ajax and cache
- Details
When working with stuff like ajax you might run into problems with IE (all versions I think). IE is notorious for its aggressive caching of Ajax responses. If your using jQuery you can simple use the cache flag in your ajax call:
$.ajax({
...
cache: false,
...
});
This way caching will be disabled. If your not using IE there is a simple hack - simply add a random value to your url (e.g. timestamp).
Refresh page on tab focus using js
- Details
Sometimes you might need to refresh a page on focus. E.g. this could be in a tabbed browser environment like an intra app or something. The following JavaScript does this:
onload = function () {
onfocus = function () {
onfocus = function () {}
location.reload (true)
}
}
Vaadin - thinking of U and I
- Details
Short, Vaadin is a Java framework for building modern web applications that look great, perform well and make you and your users happy. It sounds like a win-win. Here is a short tutorial to get you started.
NASA Concludes Attempts to Contact Mars Rover Spirit
- Details
3 months, 90 days - that was the time it was supposed to run. It gave up after 6 years... Guess Windows isn't an option ;)