Skip to content

patrodyne/hisrc-basicjaxb

 
 

Repository files navigation

HiSrc BasicJAXB

A library of XJC plugins and tools to extend JAXB.

Description

This repository is a fork of JAXB2 Basics. The original project was developed by the admirable Alexey Valikov (a.k.a. Highsource). This repository contains Java projects to build Maven artifact(s) related to the Java Architecture for XML Binding (JAXB) framework. It is one of a family of repositories forked from Highsource that provide tools for JAXB and JPA processing. Repo and artifact names have been changed to reflect the familial connection between the repositories and to fix a conformance issue with the original maven-jaxb2-plugin name.

Hint: You can manage the number of spaces a tab is equal to for your GitHub personal account (i.e. 1 tab = 4 spaces) when viewing files in this repository. Here's how.

List of repositories in this family

Patrodyne Highsource Purpose
hisrc-basicjaxb-annox annox Parse XML Schema to find Java annotation declarations.
hisrc-basicjaxb jaxb2-basics A library of XJC plugins and tools to extend JAXB.
hisrc-higherjaxb maven-jaxb2-plugin Maven plugin to generated Java source from XML Schema.
hisrc-hyperjaxb-annox jaxb2-annotate-plugin XJC plugin to add arbitrary Java annotations to JAXB.
hisrc-hyperjaxb hyperjaxb3 Maven and XJC plugins to add JPA annotations to JAXB.

Graph of repository relationships

Patrodyne-Highsource Graph

Releases

GitHub Releases, Demonstrations

Maven Repositories

JavaDoc

Goals

New goals for the next release are:

  • New explorations for copy and merge strategies.

Status

In Progress

  • Review in progress.

Completed

  • Review in progress.

Fork History

Version 2.2.1

  • Added FixedValuePlugin to set fixed values from the schema.
  • For FluentApiPlugin:
    • Allow blank fluent method prefix.
    • Provide alternative logic to resolve the field's class name.
    • Added EnforceTypeSafety parameter for mixed type lists.
    • Added OverrideFluentMethods parameter for strong return types.
  • Handle anonymous simple type for DefaultValuePlugin.
  • Support 'otherAttributes' (anyAttribute) in several XJC plugins.
  • Updated Maven plugin and dependency versions.
  • Build with JDK 21 and Java 11 compatibility.

Version 2.2.0

  • Replaced old maven-compat layer with Maven Resolver/Aether.
  • Parameterized fluent method prefix.
  • Fixed FluentApiPlugin to process nested classes.
  • Added FixOtherAttributes XJC plugin.
  • Added PropertyListenerPlugin XJC plugin.
  • Added required and selector options to the value-constructor plugin.
  • Added DomHandler option to wildcard plugin.
  • Removed hisrc-basicjaxb-runtime dep from SimpleToStringPlugin.
  • Updated Maven plugin and dependency versions.
  • Build with JDK 21 and Java 11 compatibility.

Version 2.1.1

  • Standardized the plugin option name and usage for all XJC plugins.
  • Standardized logging and error handling for all XJC plugins.
  • Added XJC DefaultValuePlugin to set default values in the schema.
  • Added XJC FluentApiPlugin with method chaining for fluent configuration.
  • Added XJC ValueConstructorPlugin for generating constructors.
  • Added annotates to the InheritancePlugin for Java annotations.
  • Added sample, xjc-basic, to bundle the XJC tool and hisrc-basicjaxb.
  • Update Maven plugin and dependency versions.
  • Resolved deprecated method(s).
  • Reviewed Other XJC Plugins

Version 2.1.0

  • Clean up Java compiler lint warnings.
  • Replace deprecated XJC plugin strategies v1 with v2.
  • Recheck Dependency Management for newer versions.
  • Configure menu, log and Maven options from build-CFG.sh.
  • Include JVM system arguments from src/test/resources/jvmsystem.arguments.
  • Moved 'explore' and 'samples' folder to new 'assembly' folder and restored int. testing.
  • Set log levels for basic strategies in simplelogger.properties.
  • Improved debug and trace logging JAXB plugin strategies.
  • Compile sources and generate classes for Java release v11 using JDK 17.
  • Replaced maven.compiler.source/target="11" with maven.compiler.release="11".
  • Moved org.jvnet.basicjaxb.lang.Foo2 to org.jvnet.basicjaxb.lang.Foo.
  • hashCode2, equals2, toString2 become hashCode, equals, toString.
  • Update JAXB dependencies from 3.x to 4.x.

Version 2.0.0

  • Update dependencies with newer versions including the Jakarta namespace.
  • Replace 'eclipse-only' lifecyle profile with 'm2e' XML directive.
  • Convert DOS line endings to Unix newlines.
  • Update JUnit v4 to JUnit v5.
  • Replace Spring DI with Jakarta CDI.
  • Rename packages:
    • BasicJAXB Annotations
      • OLD: org.jvnet.annox
      • NEW: org.jvnet.basicjaxb_annox
    • BasicJAXB XJC Plugin
      • OLD: org.jvnet.jaxb2_commons
      • NEW: org.jvnet.basicjaxb
    • HigherJAXB Maven Plugin
      • OLD: org.jvnet.mjiip
      • NEW: org.jvnet.higherjaxb
    • HigherJAXB Maven Mojo
      • OLD: org.jvnet.jaxb2.maven2
      • NEW: org.jvnet.higherjaxb.mojo
    • HyperJAXB Persistence
      • OLD: org.jvnet.hyperjaxb[23]
      • NEW: org.jvnet.hyperjaxb
  • Rename namespaces:
    • BasicJAXB XJC Annotations
      • OLD: http://annox.dev.java.net
      • NEW: http://jvnet.org/basicjaxb/xjc/annox
    • BasicJAXB XJC Plugin
      • OLD: http://jaxb2-commons.dev.java.net/basic
      • NEW: http://jvnet.org/basicjaxb/xjc
    • HyperJAXB Persistence
      • OLD: http://hyperjaxb3.jvnet.org/ejb/schemas/customizations
      • NEW: http://jvnet.org/hyperjaxb/jpa
  • Update version to 2.0.0 due to Jakarta EE and other name changes.

Version 0.12.2

  • Added demonstration explorations as GitHub releases.
  • Updated dependencies with newer versions excluding the Jakarta namespace.

Version 0.12.1

  • Obsolete build scripts have been removed.
  • New build scripts have been added.
  • POMs have been refactored with renamed artifacts.
  • POMs have been updated to reduce warnings and errors.
  • Configured SLF4J with SimpleLogger as the log framework.
  • Updated Java sources to resolve warnings/errors.
  • Verification of unit and integration tests.