JMX MBean provided with Oracle JDBC Driver

I discovered that Oracle added a JMX MBean in Oracle JDBC Driver.
It’s called « Diagnosability Management ».

Doc for version 11g :
https://docs.oracle.com/cd/B28359_01/java.111/b31224/diagnose.htm#CIAIEEFF

Resume :

The JDBC diagnosability management feature introduces an MBean, oracle.jdbc.driver.OracleDiagnosabilityMBean. This MBean provides means to enable and disable JDBC logging.

Description of the MBean :

  • Name :
    • Domain : com.oracle.jdbc
    • Name : org.jboss.classloader.spi.base.BaseClassLoader
    • Type : diagnosability
  • Attribute Name : LoggingEnabled (boolean)
Publicités

Logging with Oracle JDBC Driver

Doc for version 11g :
https://docs.oracle.com/cd/B28359_01/java.111/b31224/diagnose.htm#CIAGBGFI

Logging is done using java.util.logging package provided by Java SE.

To get log output, you must use the debug JAR files, which are indicated with a « _g » in the file name, like ojdbc5_g.jar or ojdbc6_g.jar. The debug JAR file must be included in the CLASSPATH environment variable.

Resume :

This feature logs information about events that occur when JDBC driver code runs. Events can include user-visible events, such as SQL exceptions, running of SQL statements, and detailed JDBC internal events, such as entry to and exit from internal JDBC methods. Users can enable this feature to log specific events or all the events.

Générateur de méthodes Fluent en Java avec IntelliJ

Il peut être intéressant de générer des méthodes automatiquement sur le modèle Fluent API.
C’est-à-dire que les méthodes « setter » peuvent ensuite être chainées dans la même instruction.

Dans l’IDE IntelliJ, il y a deux méthodes pour cela.

1/ Utiliser un template de code pour le setter
Dans l’IDE, clic droit sur un champ d’une classe, puis :
Generate > Setter
Puis dans template, choisir « Builder ».

On peut personnaliser le template pour préfixer le champ par « with » par exemple.
Dans ce cas copier le template « Builder » et le renommer en « Fluent Setter » par exemple, et remplacer « set » par « with » (with$StringUtil.capitalizeWithJavaBeanConvention …).

Exemple de template :

2/ Installer un plugin IntelliJ

Working with IntelliJ and a corporate Maven repository over HTTPS

Prérequis :

  • IntelliJ 14+
  • Maven 3
  • Sonatype Nexus (ou autre repo d’entreprise)

Config Maven locale :
~/.m2/settings.xml

 <mirrors>
        <mirror>
            <id>nexus-forge</id>
            <mirrorOf>*</mirrorOf>
            <name>Nexus (FORGE)</name>
            <url>https://forge.company/nexus/content/groups/public/</url>
        </mirror>
    </mirrors>
 <servers>
        <!-- Ajouter authentification sur Nexus Interne, si necessaire -->
        <server>
            <id>nexus-forge</id>
            <username>who</username>
            <password>ami</password>
        </server>        
    </servers>            

Si utilisation de HTTPS pour le serveur, configurer la Java Property « javax.net.ssl.trustStore ».

Par exemple sous Windows : « -Djavax.net.ssl.trustStore=C:\Users\<ME>\cacerts » • (rajouter à JAVA_OPTS, ou MAVEN_OPTS).

Dans IntelliJ, pour permettre de télécharger des librairies dans l’IDE :

File > Settings > … > Maven > Importing :
VM options for importer : rajouter -Djavax.net.ssl.trustStore=…\cacerts

Penser aussi à configurer l’exécution du build dans :

File > Settings > … > Maven > Runner:
VM Options : rajouter -Djavax.net.ssl.trustStore=…\cacerts

Normalement ensuite tout devrait bien se passer.

Références :

 

Java : Mémo pour les JSRs utiles

Liste des JSRs utiles, par catégories.

Web Services

JSR # Description Nom Version Intégré dans JSE / JEE Date publication Change log Artefact Maven
JSR 101 Java API for XML-based RPC JAX-RPC 1.1 J2EE 1.4 21 Apr, 2003 https://jcp.org/aboutJava/communityprocess/maintenance/jsr101/jaxrpc-changelog.html http://search.maven.org/#artifactdetails%7Cjavax.xml%7Cjaxrpc-api%7C1.1%7Cjar
JSR 181 Web Service Metadata for the Java Platform Annotations, notamment @WebService 1.0-MR1 JSE 6 23 Jan, 2006 https://jcp.org/aboutJava/communityprocess/maintenance/jsr181/181ChangeLog.html http://search.maven.org/#artifactdetails%7Cjavax.jws%7Cjsr181-api%7C1.0-MR1%7Cjar
«  «  «  2.0 Java EE 5 01 May, 2006
JSR 224 Java API for XML-Based Web Services JAX-WS 2.0 JSE 6,
Java EE 5
11 May, 2006 https://jcp.org/aboutJava/communityprocess/maintenance/jsr224/224ChangeLog.html http://search.maven.org/#artifactdetails%7Cjavax.xml.ws%7Cjaxws-api%7C2.0%7Cjar
«  «  «  2.1 JSE 6u4 05 Feb, 2007 https://jcp.org/aboutJava/communityprocess/mrel/jsr224/index.html http://search.maven.org/#artifactdetails%7Cjavax.xml.ws%7Cjaxws-api%7C2.1%7Cjar
«  «  «  2.2 JSE 7,
Java EE 6
10 Dec, 2009 https://jcp.org/aboutJava/communityprocess/maintenance/jsr224/changelog-2_2.txt http://search.maven.org/#artifactdetails%7Cjavax.xml.ws%7Cjaxws-api%7C2.2%7Cjar
JSR 311 Java API for RESTful Web Services JAX-RS 1.0 10 Oct, 2008 https://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html http://search.maven.org/#artifactdetails%7Cjavax.ws.rs%7Cjsr311-api%7C1.0%7Cjar
«  «  «  1.1 Java EE 6 23 Nov, 2009 http://search.maven.org/#artifactdetails%7Cjavax.ws.rs%7Cjsr311-api%7C1.1%7Cjar
JSR 339 «  JAX-RS 2.0 Java EE 7 24 May, 2013 https://jcp.org/aboutJava/communityprocess/maintenance/jsr224/224ChangeLog.html http://search.maven.org/#artifactdetails%7Cjavax.ws.rs%7Cjavax.ws.rs-api%7C2.0%7Cjar
JSR 370 «  JAX-RS 2.1 Java EE 8 Final Release : Q3 2017 http://search.maven.org/#artifactdetails%7Cjavax.ws.rs%7Cjavax.ws.rs-api%7C2.1-m03%7Cjar (milestone 03)

 

XML 

JSR # Description Nom Version Intégré dans JSE / JEE Date publication Change log Artefact Maven
JSR 222 Java Architecture for XML Binding JAXB 2.0 JSE 6, Java EE 5 11 May, 2006 https://jcp.org/aboutJava/communityprocess/maintenance/jsr222/222ChangeLog.html http://search.maven.org/#artifactdetails%7Cjavax.xml.bind%7Cjaxb-api%7C2.0%7Cjar
«  «   «  2.1 JSE 6u4 14 Dec, 2006 http://search.maven.org/#artifactdetails%7Cjavax.xml.bind%7Cjaxb-api%7C2.1%7Cjar
«  «   «  2.2 JSE 7,
Java EE 6
10 Dec, 2009 https://jaxb.java.net/guide/Which_JAXB_RI_is_included_in_which_JDK_.html http://search.maven.org/#artifactdetails%7Cjavax.xml.bind%7Cjaxb-api%7C2.2%7Cjar
JSR 173 Streaming API for XML StAX 1.0 JSE 6 25 Mar, 2004 https://jcp.org/aboutJava/communityprocess/maintenance/jsr173/jsr173ChangeLog.html
«  «   «  1.2 JSE 6u18 2009
JSR 63 Java API for XML Processing JAXP 1.1 J2EE 1.3 2001 Supports the processing of XML documents using Document Object Model (DOM), Simple API for XML (SAX), and Extensible Stylesheet Language Transformations (XSLT)
«  «  «  1.2 J2EE 1.4 2003
JSR 206 Java API for XML Processing JAXP 1.3 JSE 5 30 Sep, 2004

 

JSON

JSR # Description Nom Version Intégré dans JSE / JEE Date publication Change log Artefact Maven
JSR 353 Java API for JSON Processing JSON-P 1.0 Java EE 7 2013 https://jcp.org/aboutJava/communityprocess/maintenance/jsr353/353ChangeLog.html http://search.maven.org/#artifactdetails%7Cjavax.json%7Cjavax.json-api%7C1.0%7Cbundle
JSR 374 Java API for JSON Processing 1.1 JSON-P 1.1 Java SE 8 Final Release : H1 2017 http://search.maven.org/#artifactdetails%7Cjavax.json%7Cjavax.json-api%7C1.1.0-M1%7Cbundle (Milestone 1)

 

Note :
Génération des tableaux avec http://www.tablesgenerator.com/html_tables
Import/export possible avec fichiers « .tgn »
– jsr-ws.tgn.json
– jsr-xml.tgn

Where is JBoss AS 7.2.0.Final ?

En théorie, JBoss EAP 6.1.x est basé sur JBoss AS 7.2.x. Sauf que cette dernière version est introuvable sur leur page de téléchargements. » http://jbossas.jboss.org/downloads/ Mais pourquoi donc ??? Un article en expliquant les raisons :

Un extrait de cette FAQ JBoss expliquant ce qui est arrivé à la version AS 7.2.0.Final :

Q: What happened to 7.2.0.Final?
A: 7.2.0.Final was always the basis for EAP 6.1.0.Alpha. Due to the new wide-availability of 6.1.0.Alpha, and for simplicity reasons, we’ve released just one release called EAP 6.1.0.Alpha.

Une petite définition de ce qu’est une version EAP (source FAQ JBoss) :

Q. What is JBoss EAP?
A. JBoss Enterprise Application Platform (EAP) is the productized version of JBoss Application Server (AS).  It’s the culmination of thousands of hours of QE, bug-fixes and co-ordination to make sure you can be as productive as possible building your apps.

Un extrait concernant les problèmes de licence (source article openlogic.com) :

EAP.Alpha is licensed under LGPL version 2.1 or later, just the same as previous community releases. Also as before, EAP releases other than Alphas, are available only with a paid production subscription or no-cost developer subscription, which restricts the use of binaries to development purposes only, not to be deployed into production environments.

Un extrait sur l’équivalence entre la version EAP alpha et la version community (AS) (source article openlogic.com) :

As mentioned above in the case of JBoss, the alpha version is « equivalent, or better, quality » to the community version.5 Let’s be clear, so long as any version of JBoss (or any software), and regardless of whatever it is called, is offered under LGPL, the copyright holder cannot require you to do anything beyond what the license already says (e.g., purchase or use a particular version for a particular purpose); this is freedom 0: the freedom to run the program, for any purpose.6  Otherwise, it would not be LGPL anymore.

Enfin un autre article intéressant de Mark Little sur community.jboss.org :

En conclusion, JBoss considère que la version EAP 6.1.0.Alpha  est équivalente en terme de code à la version AS 7.2.0.Final, et pour des raisons pratiques, seule la première version est offerte au téléchargement. J’espère que maintenant c’est (plus) clair !