This project is just a parent POM for all other Java projects in "jcabi family".
See www.jcabi.com website for more details.
Java URN as in RFC 2141
Home Page: http://urn.jcabi.com/
License: Other
This project is just a parent POM for all other Java projects in "jcabi family".
See www.jcabi.com website for more details.
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.
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.
Copyright sections still feature 2014 as a year.
There is no estimate in the project yet. We have to create one as explained here
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
.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
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
NSS are encoded using a byte-wise loop. This can lead to problems, because the input string is defined as being UTF-8 encoded. This raises the following issue:
"The length of the converted text might not be the same as the length of the source text. Some Unicode characters translate into single bytes, others into pairs or triplets of bytes."
http://docs.oracle.com/javase/tutorial/i18n/text/string.html
Looks like we need to add .gitattributes to force EOL of the repo.
RFC 2141, section 2 states: "The leading "urn:" sequence is case-insensitive."
However, the URN "URN:a" fails the test passesCorrectURNSyntax()
.
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."
The source code says, that the class is still not compliant to RFC 2141.
Is this still true? What is missing?
https://github.com/jcabi/jcabi-urn/blob/master/src/main/java/com/jcabi/urn/URN.java#L54
Sample URNs from specification (RFC 2141, section 6) are not lexically equivalent to each other. Partly this is because of issue #7.
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?
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."
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> ::= "(" | ")" | "+" | "," | "-" | "." |
":" | "=" | "@" | ";" | "$" |
"_" | "!" | "*" | "'"
mvn qulice:check -Pqulice
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.
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."
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.