Uber jars testing
by Jiri Holusa
Hi all,
we've been thinking for a while, how to test ISPN uber jars. The current status is that we actually don't have many tests in the testsuite, there are few tests in integrationtests/all-embedded-* modules that are basically copies of the actual tests in corresponding modules. We think that this test coverage is not enough and more importantly, they are duplicates.
The questions are now following:
* which tests should be invoked with uber-jars? Whole ISPN testsuite? Only integrationtests module?
* how would it run? Create Maven different profiles for "classic" jars and uber jars? Or try to use some Maven exclusion magic if even possible?
Some time ago, we had discussion about this with Sebastian, who suggested that running only integrationtests module would be sufficient, because uber-jars are really about packaging, not the functionality itself. But I don't know if the tests coverage is sufficient in that level, I would be much more confident if we could run the whole ISPN testsuite against uber-jars.
I'm opening this for wider discussion as we should agree on the way how to do it, so we could do it right :)
Cheers,
Jiri
9 years, 1 month
Cache entry creation and modification events
by Dan Berindei
Hi guys
We have two different listener types for cache entry creation
(@CacheEntryCreated) and modification (of an already-existing entry,
@CacheEntryModified). However, PutMapCommand and
PutKeyValueCommand/IGNORE_RETURN_VALUES do not read the previous value
from loaders and/or remote nodes, so we sometimes notify the
@CacheEntryCreated listeners instead of the @CacheEntryModified
listeners.
PutMapCommand has a "workaround" for this: it also notifies the
@CacheEntryModified listener, regardless of whether it found the entry
or not. I'd like to change this [1] and make PutMapCommand and
PutKeyValueCommand behave the same way.
These are the options I'm considering:
1. Replicate the PutKeyValueCommand behaviour, and document that we
may sometimes notify the @CacheEntryCreated listener even though the
entry already exists.
It would be the simplest to implement (in fact I already have a
patch), but it doesn't feel right.
2. Always read the previous value from loaders and/or remote nodes
when a @CacheEntryCreated/Modified event listener is registered.
This would give us the correct behaviour, at the expense of performance.
3. Same as option 2, but also add a @CacheEntryWritten listener type,
which only receives the new value and is notified regardless of
whether the entry was created or modified.
This would give users a choice: if they don't care about the previous
value, the cache will be just as fast as usual, but if they need the
previous value, they need to accept a slowdown.
4. Add the @CacheEntryWritten listener type, but only notify these
listeners instead of the @CacheEntryCreated/Modified listeners for
cache.putAll() and cache.withFlags(IGNORE_RETURN_VALUES).put().
This is the option Galder chose for the functional API, but the
difference between write-only and read-write operations is a lot
clearer there, so I'm not convinced it's ok for the ConcurrentMap API.
Personally I would choose option 3, because it would be mostly
backwards-compatible: old code would only need to change if existing
listeners are slowing down the cache.
Cheers
Dan
[1] https://issues.jboss.org/browse/ISPN-5752
9 years, 2 months
Early Access builds for JDK 8u72 b05 , JDK 9 b88 and JDK 9 with Project Jigsaw build b86 are available on java.net
by Rory O'Donnell
Hi Galder,
Early Access build for JDK 8u72 b05 <http://jdk8.java.net/download.html>
is available on java.net, summary of changes are listed here.
<http://download.java.net/jdk8u72/changes/jdk8u72-b05.html?q=download/jdk8...>
Early Access build for JDK 9 b88 <https://jdk9.java.net/download/> is
available on java.net, summary of changes are listed here
<http://download.java.net/jdk9/changes/jdk9-b88.html?q=download/jdk9/chang...>.
Early Access build for JDK 9 with Project Jigsaw b86
<https://jdk9.java.net/jigsaw/> is available on java.net.
Changes for JDK 9 with Project Jigsaw b86 : -
* New options for the jdeps tool: -genmoduleinfo to generate draft
module-info.java files, and -ct to do a compile-time analysis of
references (i.e., follow all references leaving all classes in each
referenced JAR file) rather than the default run-time analysis
(which only follows references leaving referenced classes).
* jlink no longer does service binding by default.
* Class::getPackage fixed to return null for array types, primitives,
and void (bug reported by Chris Newland).
* Improved messages in IllegalAccessExceptions thrown by core reflection.
* java -verbose now works with -Xpatch .
* The special token ALL-SYSTEM can be used with the -addmods option to
add all system modules.
* New methods Module::{addUses,canUse}, which are dynamic equivalents
of service-use clauses in module declarations.
Rgds, Rory
--
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland
9 years, 2 months
Static analysis (partial)
by Tristan Tarrant
During the review of [1] both Pedro and Will asked about whether a field
could be null or not and I really wished I could use some kind of
@NotNull annotation to clarify that. We already have findbugs included
in our maven reports so what do you all think if we adopt those
annotations just like we already do for the jcip ones ?
Tristan
[1] https://github.com/infinispan/infinispan/pull/3726
--
Tristan Tarrant
Infinispan Lead
JBoss, a division of Red Hat
9 years, 2 months
Infinispan 8.1.0.Alpha2 is out
by Vladimir Blagojevic
Dear all,
The second Alpha release of Infinispan 8.1 is now widely available. We
have included the latest preview of the new admin console currently
under heavy development. Using new admin console web application
Infinispan server admins can now add new caches to a running domain
server as well as boot new server instances. We have prepared mockups of
the future admin console web app as a GitHub project. One can directly
view mockups of future admin pages using rawgit service. The starting
point for the admin console mockups is at
https://rawgit.com/infinispan/infinispan-console-mockup/master/cache-cont...
We would greatly appreciate your feedback regarding admin console web
application. Let's shape it together!
For all other improvements including XSite HotRod failover, as well as
bug fixes read the complete release notes. 8.1 Final is still on track
for the end of November. If you are new to Infinispan learn how to use
it, and help us continually improve it.
On the behalf of entire Infinispan team,
Vladimir
9 years, 3 months
Early Access build 83 for JDK 9 and JDK 9 with Project Jigsaw are available for download.
by Rory O'Donnell
Hi Galder,
JDK 9 with Project Jigsaw Early Access build b83 is available for
download at jdk9.java.net/jigsaw <http://jdk9.java.net/jigsaw>.
Notable changes:
* The -Xoverride option has been extended and renamed to -Xpatch, and
the -XaddReads option has been restored [1] (changesets
04dd0430530e, 095fc622bf01).
* ClassLoader::getPackage now works as it did previously, walking the
class-loader hierarchy in order to find Package objects, which
enables NetBeans to start up [2] (5805781b9370).
* Class::getResource will now return a URL to a resource in a module,
when invoked from code within that module (0fbe4c72638a).
* The big module-summary table has been improved, and will now be
posted with each build [3] (e922b207c170).
JDK 9 Early Access build b83 is available for download
<https://jdk9.java.net/download/> , summary of changes are listed here
<http://download.java.net/jdk9/changes/jdk9-b78.html?q=download/jdk9/chang...>.
* Request for G1 GC Feedback at wiki -
https://wiki.openjdk.java.net/display/HotSpot/G1GC+Feedback
* This wiki-page aims to outline the basic JVM parameters switching to
G1GC, and how you can help collecting data comparing the G1GC and
Parallel GC.
Rgds, Rory
[1]http://mail.openjdk.java.net/pipermail/jigsaw-dev/2015-September/004740...
[2]http://mail.openjdk.java.net/pipermail/jigsaw-dev/2015-September/004730...
[3]http://cr.openjdk.java.net/~mr/jigsaw/ea/module-summary.html
--
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland
9 years, 3 months