Skip to content
This repository has been archived by the owner on Jul 9, 2022. It is now read-only.

Commit

Permalink
Migrate to 1.7.0
Browse files Browse the repository at this point in the history
TODO
  - Tests on the aspects
  - ftl tests and fixups for the new operations
  - manual testing with a suitably mongoish webapp
  • Loading branch information
jkew committed Sep 29, 2011
1 parent 209268f commit 3eddc2d
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 32 deletions.
Expand Up @@ -2,6 +2,8 @@ package org.harrison.insight.plugin.mongodb;

import java.util.List;

import com.springsource.insight.intercept.operation.OperationList;
import com.springsource.insight.intercept.operation.OperationType;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.Signature;

Expand All @@ -14,7 +16,8 @@ import com.springsource.insight.collection.AbstractOperationCollectionAspect;
import com.springsource.insight.intercept.operation.Operation;

public aspect MongoCollectionOperationCollectionAspect extends
AbstractOperationCollectionAspect {
AbstractOperationCollectionAspect {
public static final OperationType TYPE = OperationType.valueOf("mongo_collection_operation");

public pointcut insertExecute():
execution(WriteResult DBCollection.insert(..));
Expand Down Expand Up @@ -87,11 +90,18 @@ public aspect MongoCollectionOperationCollectionAspect extends

@Override
protected Operation createOperation(final JoinPoint joinPoint) {
final Signature signature = joinPoint.getSignature();
final DBCollection collection = (DBCollection) joinPoint.getThis();

return new MongoCollectionOperation(getSourceCodeLocation(joinPoint),
signature.getName(), ArgUtils.toString(joinPoint.getArgs()),
collection.getFullName());
final Signature signature = joinPoint.getSignature();
final DBCollection collection = (DBCollection) joinPoint.getThis();
Operation op = new Operation()
.label("MongoDB: " + collection + "." + signature.getName() + "()")
.type(TYPE).sourceCodeLocation(getSourceCodeLocation(joinPoint))
.put("collection", collection.getFullName());
OperationList opList = op.createList("args");
List<String> args = ArgUtils.toString(joinPoint.getArgs());
for (String arg : args) {
opList.add(arg);
}

return op;
}
}
Expand Up @@ -3,6 +3,8 @@ package org.harrison.insight.plugin.mongodb;
import java.util.ArrayList;
import java.util.List;

import com.springsource.insight.intercept.operation.OperationList;
import com.springsource.insight.intercept.operation.OperationType;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.Signature;

Expand All @@ -11,11 +13,10 @@ import com.springsource.insight.collection.AbstractOperationCollectionAspect;
import com.springsource.insight.intercept.operation.Operation;

public aspect MongoCursorOperationCollectionAspect extends
AbstractOperationCollectionAspect {
private static final String UNKNOWN = "?unknown?";
private static final List<String> EMPTY_ARGS = new ArrayList<String>();
AbstractOperationCollectionAspect {
public static final OperationType TYPE = OperationType.valueOf("mongo_cursor_operation");

private pointcut nextExecution():
private pointcut nextExecution():
execution(* DBCursor.next(..));

private pointcut skipExecution():
Expand Down Expand Up @@ -43,20 +44,27 @@ public aspect MongoCursorOperationCollectionAspect extends

@Override
protected Operation createOperation(final JoinPoint joinPoint) {
final Signature signature = joinPoint.getSignature();
final DBCursor cursor = (DBCursor) joinPoint.getTarget();

if (cursor == null) {
return new MongoCursorOperation(getSourceCodeLocation(joinPoint),
signature.getName(), EMPTY_ARGS, UNKNOWN, UNKNOWN, UNKNOWN);
}

final String collectionName = MongoUtils.extractCollectionName(cursor);

return new MongoCursorOperation(getSourceCodeLocation(joinPoint),
signature.getName(), ArgUtils.toString(joinPoint.getArgs()),
ArgUtils.toString(cursor.getKeysWanted()),
ArgUtils.toString(cursor.getQuery()), collectionName);
}
final Signature signature = joinPoint.getSignature();
final DBCursor cursor = (DBCursor) joinPoint.getTarget();
Operation op = new Operation()
.type(TYPE)
.label("MongoDB: DBCursor." + signature.getName() + "()")
.sourceCodeLocation(getSourceCodeLocation(joinPoint));

if (cursor == null) {
return op;
}

final String collectionName = MongoUtils.extractCollectionName(cursor);
op.put("collection", collectionName)
.put("keysWanted", ArgUtils.toString(cursor.getKeysWanted()))
.put("query", ArgUtils.toString(cursor.getQuery()));
OperationList opList = op.createList("args");
List<String> args = ArgUtils.toString(joinPoint.getArgs());
for (String arg : args) {
opList.add(arg);
}
return op;

}
}
@@ -1,23 +1,30 @@
package org.harrison.insight.plugin.mongodb;

import com.springsource.insight.intercept.operation.OperationList;
import com.springsource.insight.intercept.operation.OperationType;
import org.aspectj.lang.JoinPoint;

import com.mongodb.CommandResult;
import com.mongodb.DB;
import com.springsource.insight.collection.AbstractOperationCollectionAspect;
import com.springsource.insight.intercept.operation.Operation;

public aspect MongoDbOperationCollectionAspect extends
AbstractOperationCollectionAspect {
import java.util.List;

public aspect MongoDbOperationCollectionAspect extends AbstractOperationCollectionAspect {

public static final OperationType TYPE = OperationType.valueOf("mongo_db_operation");

public pointcut collectionPoint(): execution(CommandResult DB.command(..));

@Override
protected Operation createOperation(final JoinPoint joinPoint) {
Operation op = new Operation();
Operation op = new Operation().label("MongoDB: DB." + joinPoint.getSignature().getName() + "()").type(TYPE);
OperationList opList = op.createList("args");
List<String> args = ArgUtils.toString(joinPoint.getArgs());
for (String arg : args) {
opList.add(arg);
}
return op;
return new MongoDbOperation(getSourceCodeLocation(joinPoint), joinPoint
.getSignature().getName(), ArgUtils.toString(joinPoint
.getArgs()));
}
}

0 comments on commit 3eddc2d

Please sign in to comment.