@Override public void run() { // log.info("START"); try { while (execute) { int next = random.nextInt(nodesMaxIndex); NodeData rndNode = parentNodes[next]; if (random.nextBoolean()) { // put single item if (random.nextBoolean()) { // node cache.put( new TransientNodeData( QPath.makeChildPath( rndNode.getQPath(), InternalQName.parse("[]childNode-" + next)), IdGenerator.generate(), 1, Constants.NT_UNSTRUCTURED, new InternalQName[0], 1, IdGenerator.generate(), rndNode.getACL())); } else { TransientPropertyData pd = new TransientPropertyData( QPath.makeChildPath( rndNode.getQPath(), InternalQName.parse("[]property-" + next)), IdGenerator.generate(), 1, PropertyType.STRING, rndNode.getIdentifier(), false, new TransientValueData("prop data")); cache.put(pd); } itemsProcessed++; } else { // put list of childs if (random.nextBoolean()) { // nodes List<NodeData> cn = createNodesData(rndNode, 100); cache.addChildNodes(rndNode, cn); itemsProcessed += cn.size(); } else { // properties w/o value List<PropertyData> cp = createPropertiesData(rndNode, 100); cache.addChildProperties(rndNode, cp); itemsProcessed += cp.size(); } } Thread.sleep(putTimeout); } } catch (Exception e) { log.error(getName() + " " + e, e); } // log.info("FINISH"); }
/** * properties w/o value. * * @param parent * @param count * @return * @throws Exception */ private List<PropertyData> createPropertiesData(NodeData parent, int count) throws Exception { List<PropertyData> props = new ArrayList<PropertyData>(); for (int i = 1; i <= count; i++) { TransientPropertyData pd = new TransientPropertyData( QPath.makeChildPath(parent.getQPath(), InternalQName.parse("[]property-" + i)), IdGenerator.generate(), 1, PropertyType.STRING, parent.getIdentifier(), false, new TransientValueData("prop data")); props.add(pd); } return props; }
private List<NodeData> createNodesData(NodeData parent, int count) throws Exception { List<NodeData> nodes = new ArrayList<NodeData>(); for (int i = 1; i <= count; i++) { nodes.add( new TransientNodeData( QPath.makeChildPath(parent.getQPath(), InternalQName.parse("[]node" + i)), IdGenerator.generate(), 1, Constants.NT_UNSTRUCTURED, new InternalQName[0], 1, IdGenerator.generate(), parent.getACL())); } return nodes; }
@Override public void run() { // log.info("START"); try { while (execute) { NodeData rndNode = nodes[random.nextInt(nodesMaxIndex)]; if (random.nextBoolean()) { // by id NodeData n = (NodeData) cache.get(rndNode.getIdentifier()); if (n != null) assertEquals(rndNode.getIdentifier(), n.getIdentifier()); } else { // by parent + name NodeData n = (NodeData) cache.get( rndNode.getParentIdentifier(), rndNode.getQPath().getEntries()[rndNode.getQPath().getEntries().length - 1], ItemType.NODE); if (n != null) assertEquals(rndNode.getIdentifier(), n.getIdentifier()); } itemsProcessed++; } } catch (Exception e) { log.error(getName() + " " + e, e); } // log.info("FINISH"); }