Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Registro de anotaciones, metadatos e identificadores de usuario
En la clase de modelo de juego, la aplicación registra objetos Game
en un bloque de metadatos cada vez que se guarda un juego en DynamoDB. De forma independiente, la aplicación registra los identificadores de juego en anotaciones para su uso con expresiones de filtro.
ejemplo src/main/java/scorekeep/GameModel.java
: anotaciones y metadatos
import com.amazonaws.xray.AWSXRay;
import com.amazonaws.xray.entities.Segment;
import com.amazonaws.xray.entities.Subsegment;
...
public void saveGame(Game game) throws SessionNotFoundException {
// wrap in subsegment
Subsegment subsegment = AWSXRay.beginSubsegment("## GameModel.saveGame");
try {
// check session
String sessionId = game.getSession();
if (sessionModel.loadSession(sessionId) == null ) {
throw new SessionNotFoundException(sessionId);
}
Segment segment = AWSXRay.getCurrentSegment();
subsegment.putMetadata("resources", "game", game);
segment.putAnnotation("gameid", game.getId());
mapper.save(game);
} catch (Exception e) {
subsegment.addException(e);
throw e;
} finally {
AWSXRay.endSubsegment();
}
}
En el controlador de movimiento, la aplicación registra los identificadores de usuario con setUser
. Los identificadores de usuario se registran en un campo aparte en segmentos y se indexan para su uso con la búsqueda.
ejemplo src/main/java/scorekeep/MoveController.java : ID de usuario
import com.amazonaws.xray.AWSXRay;
...
@RequestMapping(value="/{userId}", method=RequestMethod.POST)
public Move newMove(@PathVariable String sessionId, @PathVariable String gameId, @PathVariable String userId, @RequestBody String move) throws SessionNotFoundException, GameNotFoundException, StateNotFoundException, RulesException {
AWSXRay.getCurrentSegment().setUser(userId);
return moveFactory.newMove(sessionId, gameId, userId, move);
}