I like (need) to have several JDKs installed on my system and I use Debian’s alternatives mechanism to switch easily between them. It’s just a clever use of symlinks. A nice aspect of the alternatives system is the possibility to connect “slaves”: links to other files which should be changed when their master changes. Since the JDK is made up of quite a few commands, here is what I use when I add a new version to my system:
sudo update-alternatives --install /usr/bin/java java $1/bin/java 200 \
--slave /usr/bin/jar jar $1/bin/jar \
--slave /usr/bin/jarsigner jarsigner $1/bin/jarsigner \
--slave /usr/bin/javac javac $1/bin/javac \
--slave /usr/bin/javadoc javadoc $1/bin/javadoc \
--slave /usr/bin/javah javah $1/bin/javah \
--slave /usr/bin/javap javap $1/bin/javap \
--slave /usr/bin/javaws javaws $1/bin/javaws
Then I just invoke the following command to select the JDK I want to use:
sudo update-alternatives --config java
I get presented with the following
There are 5 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
0 /usr/lib/jvm/ibm-java-x86_64-60/bin/java 200 auto mode
1 /usr/lib/jvm/ibm-java-x86_64-60/bin/java 200 manual mode
2 /usr/lib/jvm/ibm-java-x86_64-70/bin/java 200 manual mode
3 /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java 200 manual mode
4 /usr/lib/jvm/jdk1.6.0_31/bin/java 200 manual mode
* 5 /usr/lib/jvm/jdk1.7.0_03/bin/java 200 manual mode
Press enter to keep the current choice[*], or type selection number:
And when you need to dynamically set JAVA_HOME to the appropriate path, use the following command:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
Since Friday I’m the proud owner of a Red fedora Hat. Yes, I’ve been hired to work full time on Infinispan and related technologies. I am very happy !!!
I have released version 0.7.1 of my Cassandra Connection Pool. Versions in the 0.7.x series match Cassandra 0.7.x, and therefore require libthrift 0.5.
This version is also being used in the recently released Infinispan 5.0.0.CR1.
The artifacts are now available in Maven Central so you just need to add the following dependency to your pom.xml without any additional bits and pieces:
I also wish to announce that I am currently working on Cassandra Armeria, an abstraction layer for Cassandra’s ever-changing Thrift API, and hope that this will provide the basis for Infinispan’s Cassandra support in the next release cycle (5.1.0).
I have just published Amanuensis on GitHub:
Amanuensis is a clustered IndexWriter for Infinispan which leverages JGroups’ channel multiplexing to stream index changes from slave nodes to a master node.
To use Amanuensis, add the appropriate dependency to your pom.xml:
You also need to tell Infinispan to use Amanuensis’ JGroups channel lookup which enables muxed transport of messages.
<property name="channelLookup" value="net.dataforte.infinispan.amanuensis.backend.jgroups.MuxChannelLookup" />
In your code you need to initialize an instance of AmanuensisManager and obtain an InfinispanIndexWriter for each InfinispanDirectory you want to write to as follows:
AmanuensisManager amanuensisManager = new AmanuensisManager(cacheManager);
InfinispanIndexWriter indexWriter = amanuensisManager.getIndexWriter(directory);
You then invoke methods on the InfinispanIndexWriter from any node and it will send changes to the Infinispan’s coordinator which will apply them to the directory. Index operations can also be batched together:
InfinispanIndexWriter is thread safe in that multiple threads can send batches individually.
The project’s site (together with JavaDocs) is available at: http://www.dataforte.net/software/amanuensis/index.html
I have just release version 0.3.5 of my Cassandra Connection Pool.
It contains a couple of bug-fixes when setting configuration properties via the generic set() method and much improved logging: all logs are prefixed with the pool’s name, periodic activity is lowered at trace from debug, and extra logging is done on pool exhaustion.
I recommend upgrading to it.
Get it from my Maven repo.
Cassandra Connection Pool 0.3.3 includes a few bugfixes and some logging (at debug level) for helping to identify problems with validation.
A few days ago I release version 0.3.2 of Cassandra Connection Pool. It fixes a couple of bugs.
I have just released version 0.3.0 of my Cassandra Connection Pool.
New features in this release are:
- automatic host discovery with connection failover
- datasource implementation
- cleanups and bugfixes
I have just added a new project to my github repo: CoheSiVe
From the silly capitalization you can already guess that it’s a CSV library. It differs from other libraries I’ve seen in that it doesn’t attempt to read the whole file in one go, but is uses an event-driven architecture so that your application can decide what to do with each row as it is parsed.
Docs are here: http://www.dataforte.net/software/cohesive/index.html
The Cassandra CacheStore will be included in the Infinispan 4.2, so that people won’t have to wait until 5.0.