{"id":16416070,"url":"https://github.com/phax/ph-jaxb-plugin","last_synced_at":"2025-03-23T06:31:28.654Z","repository":{"id":19992514,"uuid":"23259789","full_name":"phax/ph-jaxb-plugin","owner":"phax","description":"JAXB 4.x plugin that adds some commonly needed functionality","archived":false,"fork":false,"pushed_at":"2025-03-03T19:03:33.000Z","size":613,"stargazers_count":4,"open_issues_count":2,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-18T18:42:33.115Z","etag":null,"topics":["jaxb","jaxb-plugin","maven","plugin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phax.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-08-23T15:54:36.000Z","updated_at":"2025-03-03T19:03:37.000Z","dependencies_parsed_at":"2023-11-07T14:41:26.710Z","dependency_job_id":"0de2d80d-15c6-4e71-8db7-60f1827e419b","html_url":"https://github.com/phax/ph-jaxb-plugin","commit_stats":null,"previous_names":["phax/ph-jaxb22-plugin"],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phax%2Fph-jaxb-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phax%2Fph-jaxb-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phax%2Fph-jaxb-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phax%2Fph-jaxb-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phax","download_url":"https://codeload.github.com/phax/ph-jaxb-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245066496,"owners_count":20555402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jaxb","jaxb-plugin","maven","plugin"],"created_at":"2024-10-11T07:08:19.496Z","updated_at":"2025-03-23T06:31:28.029Z","avatar_url":"https://github.com/phax.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ph-jaxb-plugin\n\nJAXB 4.0 plugin that adds some commonly needed functionality.\n\nThe old version for JAXB 2.2 was called `ph-jaxb22-plugin`\n\nThis project is licensed under the Apache 2 license.\n\n# Maven usage\n\nAdd something **like** the following to your pom.xml to use this artifact:\n\n```xml\n\u003cplugin\u003e\n  \u003cgroupId\u003ecom.evolvedbinary.maven.jvnet\u003c/groupId\u003e\n  \u003cartifactId\u003ejaxb2-maven-plugin\u003c/artifactId\u003e\n  \u003cversion\u003e0.15.0\u003c/version\u003e\n  \u003cexecutions\u003e\n    \u003cexecution\u003e\n      \u003cgoals\u003e\n        \u003cgoal\u003egenerate\u003c/goal\u003e\n      \u003c/goals\u003e\n    \u003c/execution\u003e\n  \u003c/executions\u003e\n  \u003cconfiguration\u003e\n    \u003c!-- regular plugin configuration goes here --\u003e\n    \u003cargs\u003e\n      \u003c!-- other direct arguments like -no-header --\u003e\n      \u003carg\u003e-Xph-default-locale\u003c/arg\u003e\n      \u003carg\u003een_US\u003c/arg\u003e\n      \u003carg\u003e-Xph-annotate\u003c/arg\u003e\n      \u003carg\u003e-Xph-fields-private\u003c/arg\u003e\n      \u003carg\u003e-Xph-code-quality\u003c/arg\u003e\n      \u003carg\u003e-Xph-implements\u003c/arg\u003e\n      \u003carg\u003ejava.io.Serializable\u003c/arg\u003e\n      \u003carg\u003e-Xph-equalshashcode\u003c/arg\u003e\n      \u003carg\u003e-Xph-tostring\u003c/arg\u003e\n      \u003carg\u003e-Xph-list-extension\u003c/arg\u003e\n      \u003carg\u003e-Xph-bean-validation11\u003c/arg\u003e\n      \u003carg\u003e-Xph-csu\u003c/arg\u003e\n      \u003carg\u003e-Xph-cloneable2\u003c/arg\u003e\n    \u003c/args\u003e\n  \u003c/configuration\u003e\n  \u003cdependencies\u003e\n    \u003cdependency\u003e\n      \u003cgroupId\u003ecom.helger\u003c/groupId\u003e\n      \u003cartifactId\u003eph-jaxb-plugin\u003c/artifactId\u003e\n      \u003c!-- Use the right version below --\u003e\n      \u003cversion\u003e4.0.0\u003c/version\u003e\n    \u003c/dependency\u003e\n  \u003c/dependencies\u003e\n\u003c/plugin\u003e\n```\n\nFor usage with JAXB 2.2 use this dependency:\n\n```xml\n    \u003cdependency\u003e\n      \u003cgroupId\u003ecom.helger\u003c/groupId\u003e\n      \u003cartifactId\u003eph-jaxb22-plugin\u003c/artifactId\u003e \u003c!-- different!!! --\u003e\n      \u003cversion\u003e2.3.3.3\u003c/version\u003e\n    \u003c/dependency\u003e\n```\n\n# JAXB Plugins\n\n* `ph-annotate` - Create `@javax.annotation.Nonnull`/`@javax.annotation.Nullable` annotations in all bean generated objects as well as in the `ObjectFactory` classes\n* `ph-bean-validation10` - inject Bean validation 1.0 annotations (JSR 303)\n* `ph-bean-validation11` - inject Bean validation 1.1 annotations (JSR 349)\n* `ph-cloneable` (since 2.2.11.7) - implement `clone()` of `Cloneable` interface and `cloneTo(target)`. This requires the created code to depend on [ph-commons](https://github.com/phax/ph-commons).\n* `ph-cloneable2` (since 2.2.11.12) - implement `clone()` of `Cloneable` using `com.helger.commons.lang.IExplicitlyCloneable` interface and `cloneTo(target)`. This requires the created code to depend on [ph-commons \u0026ge; 9.1.8](https://github.com/phax/ph-commons).\n* `ph-code-quality` - fix some issues that cause warnings in the generated code.\n    * All `ObjectFactory` `QName` members are made public.\n    * Adding JavaDocs to all `ObjectFactory` `JAXBElement\u003c...\u003e create...` methods\n* `ph-csu` - add `@CodingStyleguideUnaware` annotations to all classes. This requires the created code to depend on [ph-commons](https://github.com/phax/ph-commons).\n* `ph-default-locale` `locale` - set Java default locale to the specified parameter. Use e.g. `en_US`\n* `ph-equalshashcode` - auto implement `equals` and `hashCode` using `com.helger.commons.equals.EqualsHelper` and `com.helger.commons.hashcode.HashCodeGenerator`. This requires the created code to depend on [ph-commons](https://github.com/phax/ph-commons). \n* `ph-fields-private` - mark all fields as private\n* `ph-implements` `fullyQualifiedInterfaceName[,otherInterfaceName]` - implement 1-n interfaces in all classes/enums (e.g. `java.io.Serializable`)\n* `ph-list-extension` - add additional methods for `List` types:\n    * `void set...(List)` - set a new `List`\n    * `boolean has...Entries()` - returns `true` if at least one entry is present\n    * `boolean hasNo...Entries()` - returns `true` if no entry is present\n    * `int get...Count()` (or `get...ListCount`) - returns the number of contained entries\n    * `T get...AtIndex(int)` - get the element at the specified index\n    * `void add...(T)` - add a new entry to the list\n* `ph-offset-dt-extension` (since 2.3.3.2) - add additional methods for Offset* date time types using their `Local` counterparts\n* `ph-tostring` - auto implement `toString` using `com.helger.commons.string.ToStringGenerator.getToString()`. This requires the created code to depend on [ph-commons \u003e= 8.6.2](https://github.com/phax/ph-commons). \n* `ph-value-extender` (since 2.3.1.3) - create additional constructors with the 'value' as argument as well as getter and setter for the value\n\n# News and noteworthy\n\n* v4.0.3 - 2023-09-20\n    * If the `ph-list-extension` is used and  `get...Count()` is already present, a `get...ListCount()` is created instead\n* v4.0.2 - 2023-04-20\n    * Improved debug logging further\n    * Fixed consistency error in `ph-value-extender` plugin. See [issue #5](https://github.com/phax/ph-jaxb-plugin/issues/5) - thx @hujian19\n* v4.0.1 - 2023-04-17\n    * Improved logging, so that the `-debug` switch of XJC is honoured\n* v4.0.0 - 2022-09-13\n    * Updated to JAXB 4.0\n    * Requires at least Java 11\n    * Changed the artifact ID from `ph-jaxb22-plugin` to `ph-jaxb-plugin`\n    * Changed all the internal namespaces from `com.helger.jaxb22.plugin` to `com.helger.jaxb.plugin`\n    * Added new plugin `-Xph-namespace-prefix` to force a certain prefix via `@XmlNs` annotation\n* v2.3.3.3 - 2021-05-02\n    * Requires ph-commons 10.1.0\n    * Plugin `-Xph-offset-dt-extension` now also supports `XMLOffsetDate`\n    * Added class `PeriodDuration` as being \"not clonable\"\n* v2.3.3.2 - 2021-03-21\n    * Updated to ph-commons 10\n    * Added new plugin `-Xph-offset-dt-extension`\n    * Removed plugin `-Xph-tostring-legacy`\n* v2.3.3.1 - 2020-10-05\n    * Cloneable plugins now create a \"HashMap\" instead of a \"CommonsHashMap\"\n* v2.3.3.0 - 2020-09-17\n    * Updated to Jakarta JAXB 2.3.3\n* v2.3.2.6 - 2020-04-29\n    * Fixed an error in cloning if an enumeration from an episode was referenced\n* v2.3.2.5 - 2020-04-24\n    * Ignoring static fields if the global binding `fixedAttributeAsConstantProperty=\"true\"` is used\n* v2.3.2.4 - 2019-12-12\n    * Added class `DataHandler` as being \"not clonable\"\n* v2.3.2.3 - 2019-10-04\n    * Fixed a missing `@Valid` annotation for anonymous nested types ([issue #2](https://github.com/phax/ph-jaxb22-plugin/issues/2)) \n* v2.3.2.2 - 2019-05-07\n    * Using unbounded version instead of limiting to Java 12.x\n* v2.3.2.1 - 2019-05-06\n    * Version number reflects latest JAXB version in use\n    * Updated to ph-commons 9.3.3 with Java 12 support\n* v2.3.1.5 - 2019-05-05\n    * Started Java 12 support \n* v2.3.1.4 - 2019-01-26\n    * Fixed JavaDoc error in created code when constructor parameter is a List \n* v2.3.1.3 - 2019-01-25\n    * Integrated `ph-ubl-value` from ph-ubl as as `ph-value-extender` into this project. \n* v2.3.1.2 - 2018-12-01\n    * Added creation of bean validation `@Valid` annotation. Cascading bean validation now works properly.\n* v2.3.1.1 - 2018-11-22\n    * Added support for JAXB 2.3.1 when using Java 9 or higher - still works with JAXB 2.2.11 for Java 8\n    * Updated to ph-commons 9.2.0 \n    * Created code requires at least ph-commons 9.2.0\n* v2.2.11.13 - 2018-10-31\n    * Added `QName` as an immutable type for cloning\n* v2.2.11.12 - 2018-10-31\n    * Added option `-Xph-cloneable2` to implement `Cloneable` based on the `com.helger.commons.lang.IExplicitlyCloneable` interface. That means that created code requires at least ph-commons 9.1.8.\n* v2.2.11.11 - 2018-03-13\n    * Fixed a problem in `cloneTo` with `null` `List` values \n* v2.2.11.10 - 2017-11-05\n    * Updated to ph-commons 9.0.0\n* v2.2.11.9 - 2017-02-16\n    * Added option `-Xph-tostring` requires ph-commons \u003e= 8.6.2 \n    * Added option `-Xph-tostring-legacy`\n* v2.2.11.8 - 2016-07-27\n    * Fixed bug in cloning of abstract class\n* v2.2.11.7 - 2016-06-10\n    * JDK8 is required\n    * Added generic cloning \n    * the `ph-csu` settings is now also applied on nested generated classes\n* v2.2.11.6 - 2015-07-21\n    * Fixed error in `getXXXCount` method name\n* v2.2.11.5 - 2015-07-01\n    * Extended `ph-list-extension` with the `add` method\n    * Updated to ph-commons 6.0.0\n* v2.2.11.4 - 2015-03-31\n    * Disabled the parameter renaming in the PluginCodeQuality so that JavaDocs can be generated with Java 8\n* v2.2.11.3 - 2015-03-11\n* v2.2.11.2 - 2015-02-06\n    * Extended `ph-csu` for all enums as well\n* v2.2.11.1 - 2015-02-06\n    * Added new option `ph-csu` to add the CodingStyleguideUnaware annotation to all classes\n* v2.2.11 - 2014-12-02\n    * linked against JAXB 2.2.11\n* v2.2.7 - 2014-08-24\n    * linked against JAXB 2.2.7\n\n---\n\nMy personal [Coding Styleguide](https://github.com/phax/meta/blob/master/CodingStyleguide.md) |\nIt is appreciated if you star the GitHub project if you like it.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphax%2Fph-jaxb-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphax%2Fph-jaxb-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphax%2Fph-jaxb-plugin/lists"}