Giter Club home page Giter Club logo

jcabi-urn's Introduction

logo

EO principles respected here DevOps By Rultor.com We recommend IntelliJ IDEA

mvn PDD status Maven Central Hits-of-Code License

This project is just a parent POM for all other Java projects in "jcabi family".

See www.jcabi.com website for more details.

jcabi-urn's People

Contributors

renovate[bot] avatar rultor avatar valery1707 avatar yegor256 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

jcabi-urn's Issues

0.10

Please, publish a new release 0.10 (or higher). Don't forget to update us here regularly (at least once a week), as explained in this article.

Indie tech review no.1

Review our existing source code and all other technical artifacts and report at least 8 bugs. More about such reviews you can read here. The task will be closed once we have that bugs reported and classified. Don't forget to add itr tag to each of them.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/codecov.yml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • codecov/codecov-action v4.0.0-beta.3
  • ubuntu 22.04
.github/workflows/mvn.yml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
.github/workflows/pdd.yml
  • actions/checkout v4
  • ubuntu 22.04
.github/workflows/xcop.yml
  • actions/checkout v4
  • ubuntu 22.04
maven
pom.xml
  • com.jcabi:jcabi 1.38.0
  • com.jcabi:jcabi-aspects 0.26.0
  • org.projectlombok:lombok 1.18.32
  • org.apache.commons:commons-lang3 3.13.0

  • Check this box to trigger a request for Renovate to run again on this repository

NID "urn" shoud not be allowed

According to RFC 2141, section 2.1, the NID "urn" is not allowed:
"To avoid confusion with the "urn:" identifier, the NID "urn" is reserved and MUST NOT be used."

URNs not lexically equivalent

Sample URNs from specification (RFC 2141, section 6) are not lexically equivalent to each other. Partly this is because of issue #7.

Too many dependencies

Might not be an issue, but an improvement.
The tool is relatively small, however it comes with a lot of transitive dependencies for which look like unnecessary in the URN class itself:

$ mvn dependency:tree
[INFO] --- maven-dependency-plugin:2.7:tree (default-cli) @ jcabi-urn ---
[INFO] com.jcabi:jcabi-urn:jar:1.0-SNAPSHOT
[INFO] +- com.jcabi:jcabi-aspects:jar:0.7.22:compile
[INFO] |  \- com.jcabi:jcabi-log:jar:0.7.21:compile (version managed from 0.7)
[INFO] +- org.projectlombok:lombok:jar:0.12.0:provided
[INFO] +- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] +- org.aspectj:aspectjrt:jar:1.7.3:runtime
[INFO] +- org.apache.commons:commons-lang3:jar:3.1:compile
[INFO] +- org.hibernate:hibernate-validator:jar:5.0.1.Final:provided
[INFO] |  +- org.jboss.logging:jboss-logging:jar:3.1.1.GA:provided
[INFO] |  \- com.fasterxml:classmate:jar:0.8.0:provided
[INFO] +- junit:junit:jar:4.11:test
[INFO] +- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] +- org.hamcrest:hamcrest-library:jar:1.3:test
[INFO] +- org.mockito:mockito-core:jar:1.9.5:test
[INFO] |  \- org.objenesis:objenesis:jar:1.0:test
[INFO] +- org.slf4j:slf4j-log4j12:jar:1.7.5:test
[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.5:compile
[INFO] \- log4j:log4j:jar:1.2.17:test

Hibernate validation? JBoss logging?
Is the use of AspectJ and dependency to jcabi-aspects really needed?
Wouldn't it make sense to accept some code duplication to cut dependencies down?

NID allowes uppercase letters and numbers.

According to RFC 2141, section 2.1, upper-case letters, lower-case letters and numbers are allowed for NID:

<let-num> ::= <upper> | <lower> | <number>

"Further, the Namespace Identifier is case insensitive, so that "ISBN" and "isbn" refer to the same namespace."

NSS validity check is too rigid

The NSS validity check doesn't allow for certain characters. Specification says different (RFC 2141, section 2.2)

<NSS>         ::= 1*<URN chars>

   <URN chars>   ::= <trans> | "%" <hex> <hex>

   <trans>       ::= <upper> | <lower> | <number> | <other> | <reserved>

   <hex>         ::= <number> | "A" | "B" | "C" | "D" | "E" | "F" |
                     "a" | "b" | "c" | "d" | "e" | "f"

   <other>       ::= "(" | ")" | "+" | "," | "-" | "." |
                     ":" | "=" | "@" | ";" | "$" |
                     "_" | "!" | "*" | "'"

Qulice configuration - no license specified.

  1. Checkout master branch
  2. run mvn qulice:check -Pqulice
  3. There are multiple Line does not match expected header line of ' * BSD License'. (HeaderCheck) messages.

This is a known bug of qulice configuration in parent-0.31 (jcabi/jcabi-parent#19), accessed via jcabi-0.16. Suggested action is waiting until jcabi/jcabi#297 fix is released and upgrading jcabi version.

URN class is accepts reserved characters

The URN class has support for query parameters and path segments. Both are not allowed in URNs, according to RFC 2141, because '/','?' are reserved and '&' is excluded in Namespace Specific String (NSS).

See RFC 2141, sections 2.2, 2.3 and 2.3:
"Namespace developers SHOULD NOT use these characters in unencoded form, but rather use the appropriate %-encoding for each character."

"An URN ends when an octet/character from the excluded character set () is encountered. The character from the excluded character set is NOT part of the URN."

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.