json-playback-player-parent

Frameworks and APIs for exchanging/interoperation entity object graph states and their operations (changing fields, collections modifications, etc) between two software layers using json.

License

License

Categories

Categories

JSON Data
GroupId

GroupId

io.github.hailtondecastro
ArtifactId

ArtifactId

json-playback-player-parent
Last Version

Last Version

1
Release Date

Release Date

Type

Type

pom
Description

Description

json-playback-player-parent
Frameworks and APIs for exchanging/interoperation entity object graph states and their operations (changing fields, collections modifications, etc) between two software layers using json.
Project URL

Project URL

https://github.com/hailtondecastro/json-playback-player-java
Source Code Management

Source Code Management

https://github.com/hailtondecastro/json-playback-player-java

Download json-playback-player-parent

How to add to project

<!-- https://jarcasting.com/artifacts/io.github.hailtondecastro/json-playback-player-parent/ -->
<dependency>
    <groupId>io.github.hailtondecastro</groupId>
    <artifactId>json-playback-player-parent</artifactId>
    <version>1</version>
    <type>pom</type>
</dependency>
// https://jarcasting.com/artifacts/io.github.hailtondecastro/json-playback-player-parent/
implementation 'io.github.hailtondecastro:json-playback-player-parent:1'
// https://jarcasting.com/artifacts/io.github.hailtondecastro/json-playback-player-parent/
implementation ("io.github.hailtondecastro:json-playback-player-parent:1")
'io.github.hailtondecastro:json-playback-player-parent:pom:1'
<dependency org="io.github.hailtondecastro" name="json-playback-player-parent" rev="1">
  <artifact name="json-playback-player-parent" type="pom" />
</dependency>
@Grapes(
@Grab(group='io.github.hailtondecastro', module='json-playback-player-parent', version='1')
)
libraryDependencies += "io.github.hailtondecastro" % "json-playback-player-parent" % "1"
[io.github.hailtondecastro/json-playback-player-parent "1"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

json-playback-player-java

Framework for integrate entity object graph operations (field, collections modifications, etc) between backend and frontend.

Source control, developer and build/ci environment.

Github commits (developer environment)

Signing commits, on shell:

$ cd /c/git/github.com/hailtondecastro/json-playback-player-hibernate
$ git config --global commit.gpgsign true
$ gpg --list-secret-keys --keyid-format LONG
$ gpg --full-generate-key
  gpg (GnuPG) 2.2.11-unknown; Copyright (C) 2018 Free Software Foundation, Inc.
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.
  
  Please select what kind of key you want:
     (1) RSA and RSA (default)
     (2) DSA and Elgamal
     (3) DSA (sign only)
     (4) RSA (sign only)
  Your selection?
  RSA keys may be between 1024 and 4096 bits long.
  What keysize do you want? (2048) 4096
  Requested keysize is 4096 bits
  Please specify how long the key should be valid.
           0 = key does not expire
        <n>  = key expires in n days
        <n>w = key expires in n weeks
        <n>m = key expires in n months
        <n>y = key expires in n years
  Key is valid for? (0)
  Key does not expire at all
  Is this correct? (y/N) Y
  
  GnuPG needs to construct a user ID to identify your key.
  
  Real name: hailtondecastro
  Email address: [email protected]
  Comment: ...
  You selected this USER-ID:
      "hailtondecastro (...) <[email protected]>"
  
  Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
  We need to generate a lot of random bytes. It is a good idea to perform
  some other action (type on the keyboard, move the mouse, utilize the
  disks) during the prime generation; this gives the random number
  generator a better chance to gain enough entropy.
  We need to generate a lot of random bytes. It is a good idea to perform
  some other action (type on the keyboard, move the mouse, utilize the
  disks) during the prime generation; this gives the random number
  generator a better chance to gain enough entropy.
  gpg: key 7B34C45B030EAE3F marked as ultimately trusted
  gpg: directory '/c/Users/63315947368/.gnupg/openpgp-revocs.d' created
  gpg: revocation certificate stored as '/c/Users/63315947368/.gnupg/openpgp-revocs.d/2AAD7BC5340A5AD35E0EB1117B34C45B030EAE3F.rev'
  public and secret key created and signed.
  
  pub   rsa4096 2019-07-08 [SC]
        2AAD7BC5340A5AD35E0EB1117B34C45B030EAE3F
  uid                      hailtondecastro (...) <[email protected]>
$ git config --global user.signingkey 2AAD7BC5340A5AD35E0EB1117B34C45B030EAE3F
$ # Show GPG key
$ gpg --armor --export 7B34C45B030EAE3F
$ gpg --armor --export 2AAD7BC5340A5AD35E0EB1117B34C45B030EAE3F > /C/git/github.com/hailton-github.com.gpg.pub 
$ gpg --armor --export-secret-key 2AAD7BC5340A5AD35E0EB1117B34C45B030EAE3F > /C/git/github.com/hailton-github.com.gpg
$ # do it for every git clone:
$ git config --local user.name hailtondecastro
$ git config --local user.email [email protected]
$ # between every commit and push:
$ git commit --amend --reset-author --no-edit -S
$ # or, for all non pushed commit's
$ git rebase --exec 'git commit --amend --no-edit -n --no-verify -S'
$ # Run this and submit the content to [Add new GPG keys](https://github.com/settings/gpg/new):
$ gpg --armor --export 2AAD7BC5340A5AD35E0EB1117B34C45B030EAE3F
$ # BEGIN: if using eclipse + windows
$ export GNUPGHOME="$APPDATA/gnupg"
$ export GNUPGHOME=$( echo "$GNUPGHOME" | sed -e 's/\\/\//g' )
$ export GNUPGHOME=$( echo "$GNUPGHOME" | sed -e 's/^\([A-Z]\):/\/\1/g' )
$ echo "$GNUPGHOME"
$ gpg --list-secret-keys --keyid-format LONG
$ # If get error below delete gnupg_spawn_agent_sentinel.lock:
$ #   gpg: invalid size of lockfile '/C/Users/63315947368/AppData/Roaming/gnupg/gnupg_spawn_agent_sentinel.lock'
$ #   gpg: cannot read lockfile
$ #   $ rm $GNUPGHOME/gnupg_spawn_agent_sentinel.lock
$ gpg --import /C/git/github.com/hailton-github.com.gpg.pub
$ # If get error below delete pubring.kbx.lock:
$ #   gpg: invalid size of lockfile '/C/Users/63315947368/AppData/Roaming/gnupg/pubring.kbx.lock'
$ #   gpg: cannot read lockfile
$ #   $ rm $GNUPGHOME/pubring.kbx.lock
$ gpg --import --allow-secret-key-import /C/git/github.com/hailton-github.com.gpg
$ # END: if using eclipse + windows

Skipping a build on travis: put [skip travis] on comment. ref.: Customizing the Build - Travis CI.
Maven Deploy on central.sonatype.org with travis: Override the "deploy" tag and push it.

Claim Your Namespace on the Central Repository (central.sonatype.org)

Acording to OSSRH Guide:

  1. Create your JIRA account
  2. Create a New Project ticket with:
  3. Wait for instructions like this:
    "Please provide proof that you own/control that Github username/organization. You can do this by creating a public repo under hailtondecastro.github.io called OSSRH-50112 and commenting with the URL when you're done so we can verify."
  4. Wait!

Working with PGP Signatures (central.sonatype.org)

On shell:

$ cd /c/git/github.com/hailtondecastro/json-playback-player-hibernate
$ # copy the PASSPHRASE generated below
$ gpg --gen-random --armor 1 60
$ gpg --full-generate-key
  gpg (GnuPG) 2.2.11-unknown; Copyright (C) 2018 Free Software Foundation, Inc.
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.
  
  Please select what kind of key you want:
     (1) RSA and RSA (default)
     (2) DSA and Elgamal
     (3) DSA (sign only)
     (4) RSA (sign only)
  Your selection? 1
  RSA keys may be between 1024 and 4096 bits long.
  What keysize do you want? (2048) 4096
  Requested keysize is 4096 bits
  Please specify how long the key should be valid.
           0 = key does not expire
        <n>  = key expires in n days
        <n>w = key expires in n weeks
        <n>m = key expires in n months
        <n>y = key expires in n years
  Key is valid for? (0) 100
  Key expires at qui,  at 28/03/2021 08:05:41 Hora oficial do Brasil
  Is this correct? (y/N) y
  
  GnuPG needs to construct a user ID to identify your key.
  
  Real name: hailtondecastro
  Email address: [email protected]
  Comment: gpg for travis-ci.com
  You selected this USER-ID:
      "hailtondecastro (gpg for travis-ci.com) <[email protected]>"
  
  Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
  We need to generate a lot of random bytes. It is a good idea to perform
  some other action (type on the keyboard, move the mouse, utilize the
  disks) during the prime generation; this gives the random number
  generator a better chance to gain enough entropy.
  We need to generate a lot of random bytes. It is a good idea to perform
  some other action (type on the keyboard, move the mouse, utilize the
  disks) during the prime generation; this gives the random number
  generator a better chance to gain enough entropy.
  gpg: key EA7BBD7233EA9213 marked as ultimately trusted
  gpg: directory 'C:/Users/63315947368/AppData/Roaming/gnupg/openpgp-revocs.d' created
  gpg: revocation certificate stored as 'C:/Users/63315947368/AppData/Roaming/gnupg/openpgp-revocs.d\047DC3C2E28CCC3B76906AEFEA7BBD7233EA9213.rev'
  
  pub   rsa4096 2020-12-18 [SC] [expires: 2021-03-28]
        047DC3C2E28CCC3B76906AEFEA7BBD7233EA9213
  uid                      hailtondecastro (gpg for travis-ci.com) <[email protected]>
  sub   rsa4096 2020-12-18 [E] [expires: 2021-03-28]
$ gpg --export-secret-keys 047DC3C2E28CCC3B76906AEFEA7BBD7233EA9213 > travis.gpg
$ gpg --armor --export     047DC3C2E28CCC3B76906AEFEA7BBD7233EA9213 > travis.gpg.pub
$ gpg --keyserver http://keys.openpgp.org --send-keys 047DC3C2E28CCC3B76906AEFEA7BBD7233EA9213 

Update pom.xml:

  				<plugin>
  					<groupId>org.apache.maven.plugins</groupId>
  					<artifactId>maven-gpg-plugin</artifactId>
  					<version>1.6</version>
  					<executions>
  						<execution>
  							<id>sign-artifacts</id>
  							<phase>verify</phase>
  							<goals>
  								<goal>sign</goal>
  							</goals>
  							<configuration>
  								<keyname>047DC3C2E28CCC3B76906AEFEA7BBD7233EA9213</keyname>
  							</configuration>
  						</execution>
  					</executions>
  				</plugin>

Commit and push 'travis.gpg' and 'travis.gpg.pub'.
References:

travis-ci.com

On hailtondecastro/json-playback-player-hibernate - Travis CI settings:

  1. Secret variables (DISPLAY VALUE IN BUILD LOG "off" and remember escape special character):

Attemption: If you are using character other then [a-z0-1] then replace by regular expression '([^a-z0-9])' by '\$1', with no quote.

Versions

Version
1