This project is just a parent POM for all other Java projects in "jcabi family".
See www.jcabi.com website for more details.
W3C Validators in Java
Home Page: https://w3c.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 1.3 (or higher). Don't forget to update us here regularly (at least once a week), as explained in this article.
When you get the response and it's errors the explanations is always empty. Is there any way to get the message which tell about the problem?
When trying to even run the example snippet of code I get a
java.lang.ClassNotFoundException: com.jcabi.matchers.XhtmlMatchers
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_192]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_192]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[na:1.8.0_192]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_192]
at com.jcabi.http.response.XmlResponse.assertXPath(XmlResponse.java:142) ~[jcabi-http-1.10.2.jar:na]
at com.jcabi.w3c.DefaultHtmlValidator.validate(DefaultHtmlValidator.java:87) ~[jcabi-w3c-1.3.jar:na]
at com.icims.jobfeed.controllers.TestController.html(TestController.java:91) ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_192]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_192]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_192]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_192]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189) ~[spring-web-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) ~[spring-webmvc-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800) ~[spring-webmvc-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038) ~[spring-webmvc-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942) ~[spring-webmvc-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005) ~[spring-webmvc-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897) ~[spring-webmvc-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) ~[tomcat-embed-core-9.0.14.jar:9.0.14]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882) ~[spring-webmvc-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.14.jar:9.0.14]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.14.jar:9.0.14]
at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:262) ~[spring-web-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.14.jar:9.0.14]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) ~[spring-web-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) ~[tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490) [tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) [tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) [tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834) [tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417) [tomcat-embed-core-9.0.14.jar:9.0.14]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.14.jar:9.0.14]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_192]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_192]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.14.jar:9.0.14]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_192]
String xhtml = "<html><body><p>Hello, world!</p></body></html>";
ValidationResponse response =
new ValidatorBuilder().html().validate(xhtml);
assert response.valid();
I am expecting a response back. I do not have an alternative
Puzzle 20-b02d0160
in src/main/java/com/jcabi/w3c/DefaultCssValidator.java:71-73
has to be resolved: introduce a test case to test the success path when has the pattern below and another one to test the processed path at this method... The puzzle was created by jrdalpra on 8-Jan-2016.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.
When I added this dependency to my maven project maven is compiling properly,
but when application start in TC Server in log there's message:
~"can't create instance on entityManagerFacotry"
After remove dependency application is started back without problem.
Right now CI server doesn't verify puzzles and estimates.
So we see a puzzle's error only if Rultor can't merge PR.
It would be nice to add the verification
see https://github.com/yegor256/netbout/blob/master/.travis.yml
Last version is from 2016.
Running it returns invalid error fields:
isource
incomplete. Example: er-->
iexplanation
and msg
are always emptyimessage
is incomplete. Example: The
Configuration:
testImplementation group: 'com.jcabi', name: 'jcabi-w3c', version: '1.3'
testImplementation group: 'com.jcabi', name: 'jcabi-matchers', version: '1.5.3'
https://github.com/jcabi/jcabi-w3c/blob/master/src/main/java/com/jcabi/w3c/ValidatorBuilder.java#L74
uses http protocol but that is no longer served by validator.w3.org only https is.
the resulting "moved permanently" response is not handled by the library and an exception is thrown.
workaround is to explicitly create an html validator with https protocol
Copyright sections still feature 2014 as a year.
ValidationResponse responseCSS = new ValidatorBuilder().css().validate("http://google.com");
returns "Parse Error"
Puzzle 10-1838eb03
in src/test/java/com/jcabi/w3c/DefaultCssValidatorTest.java:95-98
has to be resolved: DefaultCssValidator have to be updated to throw only IOException when W3C validation server is unavailable. Any other exception type can be confusing for users. Remove @ignore annotation after finishing implementation.... The puzzle was created by Piotr Pradzynski on 7-Dec-2015.
If you have any technical questions, don't ask me, submit new tickets instead
There is no estimate in the project yet. We have to create one as explained here
I just was making some tests and I discovered that test DefaultHtmlValidatorTest.validatesHtmlDocument() does not work correctly.
When I changed line 68 to
final ValidationResponse response = validator.validate("this is invalid html");
the test still passes without problem even though "this is invalid html" is not a correct HTML.
You get the warning above when using new ValidatorBuilder()
. According to the first comment of sideshowbarker
from the following thread:
http://stackoverflow.com/questions/30716156/this-interface-to-html5-document-checking-is-deprecated
we should switch to the new validator: https://validator.w3.org/nu/ and stop using the deprecated one: http://validator.w3.org/
Implementations of the interface com.jcabi.w3c.ValidationResponse
MUST be immutable and thread-safe!
The class com.jcabi.w3c.DefaultValidationResponse
implements that interface; however, it is not immutable since it has an evil setter
method.
/**
* Set validity flag.
* @param flag The flag to set
*/
public void setValid(final boolean flag) {
this.ivalid = flag;
}
This method is also unused
throughout the whole project. Why was it added?
It would be great that this library could support local instances of w3c.
It is in the roadmap?
let's release it
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.
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates are currently rate-limited. Click on a checkbox below to force their creation now.
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@b4ffde65f46336ab88eb53be808477a3936bae11
actions/setup-java v4
actions/cache v3
codecov/codecov-action v4
ubuntu 22.04
.github/workflows/mvn.yml
actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
actions/setup-java v4
actions/cache v3
.github/workflows/pdd.yml
actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
ubuntu 22.04
.github/workflows/xcop.yml
actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
ubuntu 22.04
pom.xml
com.jcabi:jcabi 1.37.1
org.apache.httpcomponents:httpmime 4.5.14
org.apache.httpcomponents:httpcore 4.4.16
com.jcabi:jcabi-xml 0.29.0
com.jcabi:jcabi-http 2.0.0
org.projectlombok:lombok 1.18.30
javax.ws.rs:jsr311-api 1.1.1
commons-io:commons-io 2.15.1
com.jcabi:jcabi-log 0.23.0
com.jcabi:jcabi-aspects 0.25.1
javax.json:javax.json-api 1.1.4
com.jcabi:jcabi-manifests 2.1.0
org.apache.commons:commons-lang3 3.14.0
com.jcabi:jcabi-matchers 1.7.0
org.glassfish.grizzly:grizzly-http-servlet-server 2.4.4
com.sun.jersey:jersey-client 1.19.4
org.slf4j:slf4j-log4j12 2.0.3
log4j:log4j 1.2.17
junit:junit 4.13.2
org.junit.vintage:junit-vintage-engine 5.10.1
com.qulice:qulice-maven-plugin 0.21.0
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.
let's use it
Puzzle 10-80fda63a
in src/test/java/com/jcabi/w3c/DefaultHtmlValidatorTest.java:83-86
has to be resolved: DefaultHtmlValidator have to be updated to throw only IOException when W3C validation server is unavailable. Any other exception type can be confusing for users. Remove @ignore annotation after finishing implementation.... The puzzle was created by Piotr Pradzynski on 6-Nov-2015.
If you have any technical questions, don't ask me, submit new tickets instead
Sometimes, if the W3C online validation service is down or busy, one may get a different status code e.g. 502, 500 etc. Consequently, the response text sent is also different and is not in SOAP format, but in text/html format.
However, the program tries to parse the response as an XML (jcabi.http). Specifically asserting using XPATHs /m:validity etc. Since, the response is HTML and not SOAP/XML, the Xerces XML parsing fails.
Is this by design, or should a non 200/OK response handled in a different way?
@dmarkov Looks like we need to add .gitattributes to force EOL of the repo.
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.