- From: Guido García Bernardo <ggarciab@itdeusto.com>
- Date: Mon, 15 Oct 2007 12:48:25 +0200
- To: public-mobileok-checker@w3.org
Hello,
From my brief experience using it, I would like to share some thougths
about the checker, mainly about the code extensibility.
1. Request headers
I think support for overriding those headers not defined by mobileOK
Basic will be very useful, not only to extend it, but for other purposes
like validating if a website is mobileOk in different languages...
2. Package-visibility
A lot of methods are only visible from classes in the package
org.w3c.mwi.mobileok.basic
That makes it hard to reuse classes from third party developments (like
mine :)
For example, DOMUtils is generic enough to define its methods as
public. At least domToStream and domToStrings that are used from the
Tester class. You can simply move DOMUtils to a new
org.w3c.mwi.mobileok.utils package, and see how that "brokes" the code...
The same with the class Preprocessor that is not public and for the
following methods used if you want to run the tests from your own class:
public interface TestImplementation
public TestResults()
public void addTestResult(final TestResult result)
public static TestImplementation getImplementation(final TestType type)
Now it works only because the Tester class is included into the package
org.w3c.mwi.mobileok.basic.
3. Maybe all AbstractTestImplementation classes should be moved to a new
package "org.w3c.mwi.mobileok.basic.tests", to improve the code
understandability to new arrived developers :)
4. Not sure about this, but in the class HTTPResource you could use a
MultiThreadedHttpConnectionManager
MultiThreadedHttpConnectionManager connectionManager = new
MultiThreadedHttpConnectionManager();
HttpClient client = new HttpClient(connectionManager);
and the call to method.releaseConnection(); should go in a finally block
More info here :
http://jakarta.apache.org/httpcomponents/httpclient-3.x/threading.html
5. The class HTTPRedirect uses the getResponseBody method, that may
result on java.lang.OutOfMemoryError exceptions. This is important when
the code follows a link to a big resource (like a PDF file...).
Not sure about if this is important in mobileOk tests. Right now I have
added a list of Content-Types that I do not want to follow, like
"application/pdf".
final class HTTPRedirect {
HTTPRedirect(final HttpMethod httpMethod) throws IOException {
...
rawBody = httpMethod.getResponseBody();
...
}
}
Best regards,
--
Guido García Bernardo
ITDeusto
Received on Monday, 15 October 2007 10:48:10 UTC