-
Notifications
You must be signed in to change notification settings - Fork 1
/
JCRTests.java
140 lines (117 loc) · 4.61 KB
/
JCRTests.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
package com.test.oak;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.UUID;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
import javax.jcr.Property;
import javax.jcr.PropertyIterator;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.Workspace;
import javax.jcr.nodetype.NodeTypeManager;
public class JCRTests {
public static long createNodes(String parentNodeName, int number, Session session) throws Exception{
Workspace ws = session.getWorkspace();
NodeTypeManager manager = ws.getNodeTypeManager();
Node root = session.getRootNode();
long start = System.currentTimeMillis();
Node parent = root.addNode(parentNodeName);
parent.setProperty("count0", 1);
parent.setProperty("searchProperty", "blahblah");
for (int i = 0; i < number; i++) {
createChild(parent, i);
}
session.save();
long end = System.currentTimeMillis();
NodeIterator nI = parent.getNodes();
while(nI.hasNext()){
Node n = nI.nextNode();
PropertyIterator p = n.getProperties();
while(p.hasNext()){
Property pp = p.nextProperty();
}
}
return end-start;
}
private static void createChild(Node parent, int index)
throws Exception {
Node child = parent.addNode("Test" + index);
child.setProperty("searchProperty", "blahblah");
child.setProperty("searchProperty2", "blahblah2");
child.setProperty("searchProperty3", 1);
for (int p = 0; p < 10; p++) {
child.setProperty("count" + p, p);
}
}
public static long moveNodes(Session session, Node node, String newNodeName) throws Exception{
long start = System.currentTimeMillis();
session.move(node.getPath(), "/"+newNodeName);
session.save();
long end = System.currentTimeMillis();
return end-start;
}
public static long copyNodes(Session session, Node node, String newNodeName) throws Exception{
long start = System.currentTimeMillis();
session.getWorkspace().copy(node.getPath(), "/"+newNodeName);
session.save();
long end = System.currentTimeMillis();
return end-start;
}
public static long deleteNode(Session session, Node node) throws RepositoryException{
String nodeName = node.getName();
long start = System.currentTimeMillis();
Node root = session.getRootNode();
Node foo = root.getNode(node.getName());
foo.remove();
session.save();
long end = System.currentTimeMillis();
return end-start;
}
public static long fileUpload(Session session, String filePath, int fileNumber)
throws Exception {
Node root = session.getRootNode();
Node folder = root.addNode("FileUploadTest" + "folder"+UUID.randomUUID());
InputStream initialStream = new FileInputStream(new File(filePath));
long start = System.currentTimeMillis();
for(int i=0;i<fileNumber;i++){
Node file = folder.addNode("File"+i, "nt:file");
Node fileContent = file.addNode("jcr:content","nt:resource");
fileContent.setProperty("jcr:data", initialStream);
initialStream = new FileInputStream(new File(filePath));
}
session.save();
long end = System.currentTimeMillis();
return end-start;
}
public static long update(Session session, String parentName) throws RepositoryException{
long start = System.currentTimeMillis();
Node root = session.getRootNode();
Node parentNodeName = root.getNode(parentName);
NodeIterator nI = parentNodeName.getNodes();
while(nI.hasNext()){
Node childNode = nI.nextNode();
if(childNode.hasProperty("searchProperty")){
childNode.getProperty("searchProperty").setValue("blahblah-updated");
}
}
session.save();
long end = System.currentTimeMillis();
return end-start;
}
public static long read(Session session, String parentName) throws RepositoryException{
long start = System.currentTimeMillis();
Node root = session.getRootNode();
Node parentNodeName = root.getNode(parentName);
NodeIterator nI = parentNodeName.getNodes();
while(nI.hasNext()){
Node childNode = nI.nextNode();
if(childNode.hasProperty("searchProperty")){
childNode.getProperty("searchProperty").getValue();
}
}
long end = System.currentTimeMillis();
return end-start;
}
}