{"action":"created","issue":{"url":"https://api.github.com/repos/benas/jPopulator/issues/32","labels_url":"https://api.github.com/repos/benas/jPopulator/issues/32/labels{/name}","comments_url":"https://api.github.com/repos/benas/jPopulator/issues/32/comments","events_url":"https://api.github.com/repos/benas/jPopulator/issues/32/events","html_url":"https://github.com/benas/jPopulator/pull/32","id":98708837,"number":32,"title":"Maven multi modules","user":{"login":"Toilal","id":1165758,"avatar_url":"https://avatars.githubusercontent.com/u/1165758?v=3","gravatar_id":"","url":"https://api.github.com/users/Toilal","html_url":"https://github.com/Toilal","followers_url":"https://api.github.com/users/Toilal/followers","following_url":"https://api.github.com/users/Toilal/following{/other_user}","gists_url":"https://api.github.com/users/Toilal/gists{/gist_id}","starred_url":"https://api.github.com/users/Toilal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Toilal/subscriptions","organizations_url":"https://api.github.com/users/Toilal/orgs","repos_url":"https://api.github.com/users/Toilal/repos","events_url":"https://api.github.com/users/Toilal/events{/privacy}","received_events_url":"https://api.github.com/users/Toilal/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-08-03T09:48:52Z","updated_at":"2015-09-04T07:08:24Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/benas/jPopulator/pulls/32","html_url":"https://github.com/benas/jPopulator/pull/32","diff_url":"https://github.com/benas/jPopulator/pull/32.diff","patch_url":"https://github.com/benas/jPopulator/pull/32.patch"},"body":"I think it's ready to merge.\r\n\r\nThis is a big change, I think you could consider releasing this as the next major release, even if API is still compatible with current codebase.\r\n\r\n- All features have been splitted into maven modules.\r\n\r\n- Every piece of random data is now generated through the [Randomizer](https://github.com/Toilal/jPopulator/blob/maven-multi-modules/jpopulator-api/src/main/java/io/github/benas/jpopulator/api/Randomizer.java) interface. It ensure consistency between randomizers used internally by jPopulator and those writen by the user.\r\n\r\n- Internal randomizers are now declared in [RandomizerRegistry](https://github.com/Toilal/jPopulator/blob/maven-multi-modules/jpopulator-api/src/main/java/io/github/benas/jpopulator/api/RandomizerRegistry.java) implementations. Each registry is a set of Randomizers, and is automatically registered in PopulatorBuilder using Java Provider API ([ServiceLoader](https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html) + `META-INF/services/io.github.benas.jpopulator.api.RandomizerRegistry` file). Currently, there's 3 registries : [InternalRandomizerRegistry](https://github.com/Toilal/jPopulator/blob/maven-multi-modules/jpopulator-core/src/main/java/io/github/benas/jpopulator/randomizers/registry/InternalRandomizerRegistry.java), [JodaRandomizerRegistry](https://github.com/Toilal/jPopulator/blob/maven-multi-modules/jpopulator-joda-time/src/main/java/io/github/benas/jpopulator/randomizers/registry/JodaRandomizerRegistry.java) and [ValidationRandomizerRegistry](https://github.com/Toilal/jPopulator/blob/maven-multi-modules/jpopulator-validation/src/main/java/io/github/benas/jpopulator/randomizers/registry/ValidationRandomizerRegistry.java)\r\n\r\n- [PopulatorBuilder](https://github.com/Toilal/jPopulator/blob/maven-multi-modules/jpopulator-core/src/main/java/io/github/benas/jpopulator/impl/PopulatorBuilder.java) now supports a `registerRandomizerRegistry` method to add custom randomizer registries. Also, `disableDefaultRegistries` allow disabling of default registries provided by Java Provider API.\r\n\r\n- To skip a value, a [Randomizer](https://github.com/Toilal/jPopulator/blob/maven-multi-modules/jpopulator-api/src/main/java/io/github/benas/jpopulator/api/Randomizer.java) should now throw [RandomizerSkipException](https://github.com/Toilal/jPopulator/blob/maven-multi-modules/jpopulator-api/src/main/java/io/github/benas/jpopulator/api/RandomizerSkipException.java) instead of returning `null`. As a consequence, a Randomizer returning `null` will be effective and the `null` value will be set on the requested field. (required for @Null validation randomizer).\r\n\r\n- An [EnumRandomizer](https://github.com/Toilal/jPopulator/blob/maven-multi-modules/jpopulator-api/src/main/java/io/github/benas/jpopulator/api/EnumRandomizer.java) interface has been added to the API to support future customization of enum random values."},"comment":{"url":"https://api.github.com/repos/benas/jPopulator/issues/comments/137662356","html_url":"https://github.com/benas/jPopulator/pull/32#issuecomment-137662356","issue_url":"https://api.github.com/repos/benas/jPopulator/issues/32","id":137662356,"user":{"login":"benas","id":1210553,"avatar_url":"https://avatars.githubusercontent.com/u/1210553?v=3","gravatar_id":"","url":"https://api.github.com/users/benas","html_url":"https://github.com/benas","followers_url":"https://api.github.com/users/benas/followers","following_url":"https://api.github.com/users/benas/following{/other_user}","gists_url":"https://api.github.com/users/benas/gists{/gist_id}","starred_url":"https://api.github.com/users/benas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benas/subscriptions","organizations_url":"https://api.github.com/users/benas/orgs","repos_url":"https://api.github.com/users/benas/repos","events_url":"https://api.github.com/users/benas/events{/privacy}","received_events_url":"https://api.github.com/users/benas/received_events","type":"User","site_admin":false},"created_at":"2015-09-04T07:08:24Z","updated_at":"2015-09-04T07:08:24Z","body":"Hello Rémi,\r\n\r\nSorry for being late, there are a lot of changes and I did not got time to check them all.\r\n\r\nEverything looks good. I'll merge your PR as soon as I can.\r\n\r\nKind regards\r\nMahmoud"}}