Mobile learning application MiniPauker 1.1.05 released - please test!



Continue reading →

My path to SCEA 5

I'd like to share with you my experience with the Sun Certified Enterprise Architect for the Java Platform, Enterprise Edition 5 (SCEA 5) [1] certification. There was a couple of unclear things regarding the assignment and its deliverables and I've learned some interesting things (mostly about hardware estimation and deployment environments such as the "clouds"), both of which may be of an interest to somebody aiming at this certification. I only know that I passed but not how well, so my way of doing things, though sufficient, may not be the best one.


Continue reading →

Most interesting links of June

The last month's list of interesting articles is a bit shorter due to off-line holidays, which I enjoyed much more then reading articles :-)
Continue reading →

Implementing build-time bytecode instrumentation with Javassist

If you need to modify the code in class files at the (post-)build time without adding any third-party dependencies, for example to inject cross-cutting concerns such as logging, and you don't wan't to deal with the low-level byte code details, Javassist is the right tool for you. I've already blogged about "Injecting better logging into a binary .class using Javassist" and today I shall elaborate on the instrumentation capabilities of Javassist and its integration into the build process using a custom Ant task.


Continue reading →

Booting from a USB stick in VMware Player

It isn't possible to boot from a USB stick under VMware player 3.0.0, because its BIOS is ignorant of USB, but fortunately there is an easy workaround:
  1. Download the PLoP boot manager (e.g. plpbt-5.0.10.zip), which supports usb booting
  2. Decide whether you want to install PLoP to the virtual hard disk (useful if you will boot from the USB stick more often) or not
    1. Using PLoP without installing it to the virtual disk:
      1. Extract the ISO image plpbt-5.0.10/plpbt.iso from the archive
      2. Attach the extraced ISO image to you VMware virtual machine as a CD/DVD
      3. Boot the vmware machine from this virtual CD. (VMware should automatically try it as a boot device, if not, press Esc at the virtual machine start to enter the boot device selection menu).
      4. PLoP will be started, ses below.
    2. Installing PLoP to the virtual disk (you may want to check the PLoP installation guide):
      1. Extract the ISO image plpbt-5.0.10/install/plpbtin.iso from the archive
      2. Attach the extraced ISO image to you VMware virtual machine as a CD/DVD
      3. Boot the vmware machine from this virtual CD. (VMware should automatically try it as a boot device, if not, press Esc at the virtual machine start to enter the boot device selection menu).
      4. PLoP installation menu will show up, press 1 to select the option "Full boot manager install" and answer "y" to the question whether you want to proceed
      5. When the installation finishes, power off the virtual machine
      6. Remove the CD/DVD device from the virtual machine, we won't need it anymore
      7. Start the virtual machine, which will boot PLoP from the virtual hard disk.
  3. Once PLoP is started, it will give you a selection of devices to boot from including your USB stick. (Make sure that the USB stick is connected to the virtual machine, if not, connect it and restart the machine via the menu VM - Power - Reset).

Continue reading →

Webservice testing with JMeter: Passing data from a response to another request

JMeter is great for functional and performance testing of many things, including web services (and to my surprise also LDAP). It also provides means for extracting data from a response and passing them to a subsequent request, which is exactly what I needed. There is already a good tutorial on testing a WS with JMeter, so I won't repeat the basic setup here. The steps are:
  1. Create a webservice (WS) test plan, as described in the tutorial (in my case it contains two WS calls)
  2. Add the User Defined Variables config element to the test plan and define there a variable for transferring the response data
  3. Add an XPath Extractor Post Processor to the first WS call to extract the value of interest into the user defined variable (beware namespaces!)
  4. Add a BeanShell Pre Processor to the second call, which will replace a placeholder in the WS call's XML data with the value of that variable


Continue reading →

Most interesting links of May

The most interesting stuff I've read in May, in no particular order. You can easily guess I've been working on performance troubleshooting this month :-)
Continue reading →

Migrating from JRoller to Wordpress

This post describes how to migrate a blog from JRoller.com to WordPress.com. The steps are:
  1. Backup JRoller via the util by La tortue cynique
  2. Export from WP
  3. Convert JRoller to a fragment of the WP format
  4. Add proper header and footer to the generated WP import file
  5. [optional] download images, perhaps upload them somewhere and modify URLs accordingly
  6. Import it into WP
  7. Check formatting, add tags...

Continue reading →

How Visual Paradigm (nearly) ruined my day and Dropbox (nearly) saved it

For months I'm working on designing an architecture for a fictious system, which is required for the second part of the Sun Certified Enterprise Architect (SCEA) exam. Today I came to my computer to make few final but important finishing touches to my UML diagrams. The notebook run out of battery and thus lost its in-memory suspended state - nothing special, it happens. But what an horror! When I started Visual Paradigm (which was running when I suspended the computer), my UML tool, it asked me whether to restore the auto-saved project - which could have been expected, and I agreed - and opened the project - with all texts lost!


Continue reading →

Eclipse Profile configuration: The launch requires at least one data collector

I just installed TPTP into my Eclipse 3.5 under Ubuntu 9.04 and tried to profile a class. The Profile Configuration opened with a red warning reading "the launch requires at least one data collector to be selected
Continue reading →

Book: Real World Java EE Patterns - Rethinking Best Practices (review & digest)

I'd like to make you aware of the excellent book Real World Java EE Patterns - Rethinking Best Practices by Adam Bien (blog), a Java Champion and renowned consultant, software architect and Java EE standardization comitee member. I'd absolutely recommend it to any architect or developer serious with Java EE 5 or 6 development, even to those not planning to use EJB 3.x (at least prior to reading the book :)). It's a must-read complement to the now a little outdated Core J2EE patterns as it updates the patterns for the new bright world of EJB 3/3.1 while discarding some of them and introducing some new, extremely useful patterns and techniques.

The book starts with an overview of the evolution of Java Enterprise Edition and the hard issues it solves for us, continues with the new and updated patterns and strategies and concludes with an introduction of two opposite architectures you can build with Java EE 5/6, namely lean SOA and domain-driven (which itself makes it worth reading).

What I really appreciate in addition to that valuable content is that for each pattern there is a section on testing and documentation and a really good evaluation of consequences in terms of maintainability, performance and other such qualities. You will find there also many code samples and beautiful applications of the Builder and Fluent API patterns.

The main message is that EJB 3.x is so lean and powerful that we must justify why NOT using it - and when using it, you should be very pragmatic and only introduce patterns, layers and principles if they bring real value.


Continue reading →

Mocking out LDAP/JNDI in unit tests

When unit testing a class that queries an LDAP server using Java's JNDI API I needed to replace the actual remote LDAP server with a mock LDAP access layer so that the unit test (remember, this is not an integration test) doesn't depend on any external SW/HW. Few hours of googling haven't yielded any suitable mock implementation and so I had to create my own one. It turned out to be an easy task after all. I hope it could be useful for you too.

To create a test implementation of LDAP/JNDI you need to:
  1. Hook you mock JNDI implementation into the JVM and make sure that you use it
  2. Actually implement the JNDI layer by implementing/mocking few (3) JNDI classes, mostly from the javax.naming.directory package
  3. Configure your mock implementation to return the data expected

Continue reading →

Most interesting links of April

The most interesting technical links I've encountered in April:
Continue reading →

My older posts at JRoller

My older posts are available on my JRoller blog
Continue reading →

File-based User Authentication under WebSphere 6

File-based User Authentication under WebSphere 6

When developing a web application for the WebSphere Application Server you sometimes need to enable security because the application expects HttpServletRequest.
Continue reading →

Copyright © 2024 Jakub Holý
Powered by Cryogen
Theme by KingMob