Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(302)

Issue 11960043: Sling GSoC2013 Code Review

Can't Edit
Can't Publish+Mail
Start Review
Created:
12 years, 10 months ago by Ian Boston
Modified:
12 years, 10 months ago
Reviewers:
Ian Boston
Visibility:
Public.

Description

Sling GSoC2013 Code Review

Patch Set 1 #

Total comments: 16
Unified diffs Side-by-side diffs Delta from patch set Stats (+1849 lines, -0 lines) Patch
A main/cassandra/pom.xml View 1 chunk +201 lines, -0 lines 0 comments Download
A main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraConstants.java View 1 chunk +31 lines, -0 lines 1 comment Download
A main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraIterable.java View 1 chunk +18 lines, -0 lines 2 comments Download
A main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraResource.java View 1 chunk +185 lines, -0 lines 2 comments Download
A main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraResourceProvider.java View 1 chunk +120 lines, -0 lines 3 comments Download
A main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraResourceResolver.java View 1 chunk +144 lines, -0 lines 1 comment Download
A main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/mapper/CassandraMapper.java View 1 chunk +30 lines, -0 lines 1 comment Download
A main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/mapper/CassandraMapperException.java View 1 chunk +8 lines, -0 lines 1 comment Download
A main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/mapper/DefaultCassandraMapperImpl.java View 1 chunk +43 lines, -0 lines 1 comment Download
A main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/util/CassandraResourceProviderUtil.java View 1 chunk +142 lines, -0 lines 3 comments Download
A main/cassandra/src/test/java/org/apache/sling/cassandra/test/data/populator/CassandraDataAddTest.java View 1 chunk +95 lines, -0 lines 1 comment Download
A main/cassandra/src/test/java/org/apache/sling/cassandra/test/data/populator/CassandraDataChildNodeIterableTest.java View 1 chunk +112 lines, -0 lines 0 comments Download
A main/cassandra/src/test/java/org/apache/sling/cassandra/test/data/populator/CassandraDataChildNodeTest.java View 1 chunk +111 lines, -0 lines 0 comments Download
A main/cassandra/src/test/java/org/apache/sling/cassandra/test/data/populator/CassandraDataParentNodeTest.java View 1 chunk +104 lines, -0 lines 0 comments Download
A main/cassandra/src/test/java/org/apache/sling/cassandra/test/data/populator/CassandraDataReadTest.java View 1 chunk +103 lines, -0 lines 0 comments Download
A scratch/test/hector-examples-master/LICENSE View 1 chunk +21 lines, -0 lines 0 comments Download
A scratch/test/hector-examples-master/README.mdown View 1 chunk +36 lines, -0 lines 0 comments Download
A scratch/test/hector-examples-master/pom.xml View 1 chunk +80 lines, -0 lines 0 comments Download
A scratch/test/hector-examples-master/src/main/java/org/test/me/BasicTest.java View 1 chunk +113 lines, -0 lines 0 comments Download
A scratch/test/hector-examples-master/src/main/java/org/test/me/CqlQueryTest.java View 1 chunk +152 lines, -0 lines 0 comments Download

Messages

Total messages: 1
Ian Boston
12 years, 10 months ago (2013-07-27 06:04:59 UTC) #1
https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
File
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraConstants.java
(right):

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraConstants.java:23:
public class CassandraConstants {
Needs indentation and Javadoc please.

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
File
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraIterable.java
(right):

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraIterable.java:1:
package org.apache.sling.cassandra.resource.provider;
ASF License header needed here please.

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraIterable.java:7:
public class CassandraIterable implements Iterable {
Some javadoc, even if its just going to say wraps an iterator.
I wonder if something like IterableIterator wouldn't be a better name as there
is nothing specific to cassandra about this class. ?

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
File
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraResource.java
(right):

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraResource.java:68:
} catch (Exception e) {
In general, try not to catch (Exception) as although its quick and easy it will
also tend to hide what its going on. Also its helpful where you do catch
anything and not rethrow it, to log the stack trace at at least debug level. eg
log.debug(e.getMessage(),e);

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraResource.java:81:
}else if(column.getName().equals("resourceType")) {
Looks like there are some formatting issues here. I'll share with you my
formatting setup that should put all of these right. It wont correct trailing
spaces in the code, but you can do that with a regex find replace " $" as the
regex "" as the replacement.

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
File
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraResourceProvider.java
(right):

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraResourceProvider.java:80:
} catch (Exception ignore){
even if you ignore an exception, log it at debug level. It might be the one
thing that helps a deployer work out what went wrong. If the exception is
expected, then say so in the log message.

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraResourceProvider.java:98:
log.error("Error at Provider "+e.getMessage());
log the stack trace at info or debug, however if this is a rare error then think
about logging a stack trace at error.

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraResourceProvider.java:104:
return resource.listChildren();
This might generate a cyclic recursion depending on how resource.listChildren is
implemented. I think with many resources it goes back to the resource resolver
which arrives here. Please verify if I am correct or not.

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
File
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraResourceResolver.java
(right):

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/CassandraResourceResolver.java:31:
public class CassandraResourceResolver implements ResourceResolver {
This class can be removed, you dont need to implement a ResourceResolver.

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
File
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/mapper/CassandraMapper.java
(right):

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/mapper/CassandraMapper.java:22:
public interface CassandraMapper {
Javadoc on the interface would be good.

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
File
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/mapper/CassandraMapperException.java
(right):

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/mapper/CassandraMapperException.java:5:
public CassandraMapperException(String s) {
Think about implementing the other constructors so you can set the cause.

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
File
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/mapper/DefaultCassandraMapperImpl.java
(right):

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/mapper/DefaultCassandraMapperImpl.java:29:
public class DefaultCassandraMapperImpl implements CassandraMapper {
Needs javadoc to say what the class does. In particular you might mention what
the SHA1 is about.

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
File
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/util/CassandraResourceProviderUtil.java
(right):

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/util/CassandraResourceProviderUtil.java:43:
public class CassandraResourceProviderUtil {
Be wary of putting code that is really service code in a utility class. A good
test if if code interacts with or 
modifies an external resource it should not be in a utility class. Utility
static methods should have no side 
effects. COmmunicating with cassandra causes cassandra to log things, so is a
side effect.

This is not a hard and fast rule, since commons-io is littered with really
useful static utility methods that read from streams etc, so just think, is the
code service or utility.

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/util/CassandraResourceProviderUtil.java:45:
private static Log log = LogFactory.getLog(CassandraResourceProviderUtil.class);
Dont use commons logging use slf4j Logger e.g.:
Logger log = LogFactory.getLogger(CassandraResourceProviderUtil.class);

Also, I prefer LOGGER since its a static constant, but thats just being
pedantic.

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/main/java/o...
main/cassandra/src/main/java/org/apache/sling/cassandra/resource/provider/util/CassandraResourceProviderUtil.java:90:
System.out.println(column.getValue().toString());
Avoid System.out and System.err please

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/test/java/o...
File
main/cassandra/src/test/java/org/apache/sling/cassandra/test/data/populator/CassandraDataAddTest.java
(right):

https://codereview.appspot.com/11960043/diff/1/main/cassandra/src/test/java/o...
main/cassandra/src/test/java/org/apache/sling/cassandra/test/data/populator/CassandraDataAddTest.java:25:
import junit.framework.TestCase;
you should be using JUnit 4 ie org.junit and not junit.framework which IIRC is
3.

Then you dont have to extend classes and the correct test runner is used.
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b