Skip to content

Commit e07dbc4

Browse files
committed
Merge remote-tracking branch 'origin/dev' into dev
2 parents a36c80e + 8d5ac68 commit e07dbc4

File tree

7 files changed

+60
-38
lines changed

7 files changed

+60
-38
lines changed

src/main/java/com/marklogic/client/alerting/RuleDefinition.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,12 +262,15 @@ public void write(OutputStream out) throws IOException {
262262
"description", RequestConstants.RESTAPI_NS);
263263
serializer.writeCharacters(getDescription());
264264
serializer.writeEndElement();
265+
serializer.flush();
265266

266267
// logger.debug("Send: " + new String(queryPayload));
267268
XMLEventWriter eventWriter = factory.createXMLEventWriter(out);
268269
for (XMLEvent event : this.queryPayload) {
269270
eventWriter.add(event);
270271
}
272+
eventWriter.flush();
273+
out.flush();
271274

272275
writeMetadataElement(serializer);
273276

src/main/java/com/marklogic/client/eval/ServerEvaluationCall.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*/
1616
package com.marklogic.client.eval;
1717

18+
import com.marklogic.client.FailedRequestException;
19+
import com.marklogic.client.ForbiddenUserException;
1820
import com.marklogic.client.Transaction;
1921
import com.marklogic.client.io.marker.AbstractReadHandle;
2022
import com.marklogic.client.io.marker.AbstractWriteHandle;
@@ -37,7 +39,10 @@ public interface ServerEvaluationCall {
3739
public ServerEvaluationCall transaction(Transaction transaction);
3840
public ServerEvaluationCall addNamespace(String prefix, String namespaceURI);
3941
public ServerEvaluationCall namespaceContext(EditableNamespaceContext namespaces);
40-
public <T> T evalAs(Class<T> responseType);
41-
public <H extends AbstractReadHandle> H eval(H responseHandle);
42-
public EvalResultIterator eval();
42+
public <T> T evalAs(Class<T> responseType)
43+
throws ForbiddenUserException, FailedRequestException;
44+
public <H extends AbstractReadHandle> H eval(H responseHandle)
45+
throws ForbiddenUserException, FailedRequestException;
46+
public EvalResultIterator eval()
47+
throws ForbiddenUserException, FailedRequestException;
4348
}

src/main/java/com/marklogic/client/impl/JerseyServices.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3642,7 +3642,7 @@ public EvalResult.Type getType() {
36423642
}
36433643
String xPrimitive = content.getHeader("X-Primitive");
36443644
if ( xPrimitive == null ) {
3645-
return EvalResult.Type.NULL;
3645+
return EvalResult.Type.OTHER;
36463646
} else if ( "string".equals(xPrimitive) || "untypedAtomic".equals(xPrimitive) ) {
36473647
return EvalResult.Type.STRING;
36483648
} else if ( "boolean".equals(xPrimitive) ) {
@@ -3691,6 +3691,8 @@ public EvalResult.Type getType() {
36913691
return EvalResult.Type.QNAME;
36923692
} else if ( "time".equals(xPrimitive) ) {
36933693
return EvalResult.Type.TIME;
3694+
} else if ( "null".equals(xPrimitive) ) {
3695+
return EvalResult.Type.NULL;
36943696
}
36953697
return EvalResult.Type.OTHER;
36963698
}

src/main/java/com/marklogic/client/impl/ServerEvaluationCallImpl.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import java.util.HashMap;
1919

2020
import com.marklogic.client.DatabaseClientFactory.HandleFactoryRegistry;
21+
import com.marklogic.client.FailedRequestException;
22+
import com.marklogic.client.ForbiddenUserException;
2123
import com.marklogic.client.Transaction;
2224
import com.marklogic.client.eval.EvalResultIterator;
2325
import com.marklogic.client.eval.ServerEvaluationCall;
@@ -131,7 +133,9 @@ public ServerEvaluationCall transaction(Transaction transaction) {
131133
}
132134

133135
@Override
134-
public <T> T evalAs(Class<T> responseType) {
136+
public <T> T evalAs(Class<T> responseType)
137+
throws ForbiddenUserException, FailedRequestException
138+
{
135139
if (responseType == null) throw new IllegalArgumentException("responseType cannot be null");
136140

137141
ContentHandle<T> readHandle = handleRegistry.makeHandle(responseType);
@@ -142,7 +146,9 @@ public <T> T evalAs(Class<T> responseType) {
142146
}
143147

144148
@Override
145-
public <H extends AbstractReadHandle> H eval(H responseHandle) {
149+
public <H extends AbstractReadHandle> H eval(H responseHandle)
150+
throws ForbiddenUserException, FailedRequestException
151+
{
146152
EvalResultIterator iterator = eval();
147153
try {
148154
if ( iterator == null || iterator.hasNext() == false ) return null;
@@ -151,7 +157,9 @@ public <H extends AbstractReadHandle> H eval(H responseHandle) {
151157
}
152158

153159
@Override
154-
public EvalResultIterator eval() {
160+
public EvalResultIterator eval()
161+
throws ForbiddenUserException, FailedRequestException
162+
{
155163
return services.postEvalInvoke(requestLogger, code, modulePath, evalContext,
156164
vars, namespaceContext, transactionId);
157165
}

src/main/java/com/marklogic/client/pojo/PojoRepository.java

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -82,112 +82,112 @@ public interface PojoRepository<T, ID extends Serializable> {
8282
* serialized JSON format.
8383
*/
8484
public void write(T entity)
85-
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
85+
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
8686
/** Does everything in {@link #write(Object) write(T)} but also adds your collections to the
8787
* persisted instance.
8888
*/
8989
public void write(T entity, String... collections)
90-
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
90+
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
9191
/** Does everything in {@link #write(Object) write(T)} but in your
9292
* <a href="http://docs.marklogic.com/guide/app-dev/transactions">
9393
* multi-statement transaction</a> context.
9494
*/
9595
public void write(T entity, Transaction transaction)
96-
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
96+
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
9797
/** Does everything in {@link #write(Object) write(T)} but also adds your collections to the
9898
* persisted instance and performs the write in your
9999
* <a href="http://docs.marklogic.com/guide/app-dev/transactions">
100100
* multi-statement transaction</a> context.
101101
* .
102102
*/
103103
public void write(T entity, Transaction transaction, String... collections)
104-
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
104+
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
105105

106106
/** @return true if a document exists in the database with the id */
107107
public boolean exists(ID id)
108-
throws ForbiddenUserException, FailedRequestException;
108+
throws ForbiddenUserException, FailedRequestException;
109109

110110
/** @return in the context of transaction, true if a document exists in the database with
111111
* the id */
112112
public boolean exists(ID id, Transaction transaction)
113-
throws ForbiddenUserException, FailedRequestException;
113+
throws ForbiddenUserException, FailedRequestException;
114114

115115
/** @return the number of documents of type T persisted in the database */
116116
public long count()
117-
throws ForbiddenUserException, FailedRequestException;
117+
throws ForbiddenUserException, FailedRequestException;
118118

119119
/** @return in the context of transaction, the number of documents of type T persisted in
120120
* the database */
121121
public long count(Transaction transaction)
122-
throws ForbiddenUserException, FailedRequestException;
122+
throws ForbiddenUserException, FailedRequestException;
123123

124124
/** @return the number of documents of type T persisted in the database with at least
125125
* one of the criteria collections*/
126126
public long count(String... collection)
127-
throws ForbiddenUserException, FailedRequestException;
127+
throws ForbiddenUserException, FailedRequestException;
128128

129129
/** @return in the context of transaction, the number of documents of type T persisted in
130130
* the database with at least one of the criteria collections*/
131131
public long count(String[] collections, Transaction transaction)
132-
throws ForbiddenUserException, FailedRequestException;
132+
throws ForbiddenUserException, FailedRequestException;
133133

134134
/** @return the number of documents of type T persisted in the database which match
135135
* the query */
136136
public long count(PojoQueryDefinition query)
137-
throws ForbiddenUserException, FailedRequestException;
137+
throws ForbiddenUserException, FailedRequestException;
138138

139139
/** @return in the context of transaction, the number of documents of type T persisted in the
140140
* database which match the query */
141141
public long count(PojoQueryDefinition query, Transaction transaction)
142-
throws ForbiddenUserException, FailedRequestException;
142+
throws ForbiddenUserException, FailedRequestException;
143143

144144
/** Deletes from the database the documents with the corresponding ids */
145145
public void delete(ID... ids)
146-
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
146+
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
147147

148148
/** As part of transaction, deletes from the database the documents with the corresponding ids */
149149
public void delete(ID[] ids, Transaction transaction)
150-
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
150+
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
151151

152152
/** Deletes from the database all documents of type T persisted by the pojo facade */
153153
public void deleteAll()
154-
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
154+
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
155155

156156
/** As part of transaction, deletes from the database all documents of type T persisted by
157157
* the pojo facade */
158158
public void deleteAll(Transaction transaction)
159-
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
159+
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
160160

161161
/* REST API does not currently support DELETE /search with multiple collection arguments
162162
public void deleteAll(String... collections)
163-
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
163+
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
164164
*/
165165

166166
public T read(ID id)
167-
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
167+
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
168168
public T read(ID id, Transaction transaction)
169-
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
169+
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
170170
public PojoPage<T> read(ID[] ids)
171-
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
171+
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
172172
public PojoPage<T> read(ID[] ids, Transaction transaction)
173-
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
173+
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
174174
public PojoPage<T> readAll(long start)
175-
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
175+
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
176176
public PojoPage<T> readAll(long start, Transaction transaction)
177-
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
177+
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException;
178178

179179
public PojoPage<T> search(long start, String... collections)
180-
throws ForbiddenUserException, FailedRequestException;
180+
throws ForbiddenUserException, FailedRequestException;
181181
public PojoPage<T> search(long start, Transaction transaction, String... collections)
182-
throws ForbiddenUserException, FailedRequestException;
182+
throws ForbiddenUserException, FailedRequestException;
183183
public PojoPage<T> search(PojoQueryDefinition query, long start)
184-
throws ForbiddenUserException, FailedRequestException;
184+
throws ForbiddenUserException, FailedRequestException;
185185
public PojoPage<T> search(PojoQueryDefinition query, long start, Transaction transaction)
186-
throws ForbiddenUserException, FailedRequestException;
186+
throws ForbiddenUserException, FailedRequestException;
187187
public PojoPage<T> search(PojoQueryDefinition query, long start, SearchReadHandle searchHandle)
188-
throws ForbiddenUserException, FailedRequestException;
188+
throws ForbiddenUserException, FailedRequestException;
189189
public PojoPage<T> search(PojoQueryDefinition query, long start, SearchReadHandle searchHandle, Transaction transaction)
190-
throws ForbiddenUserException, FailedRequestException;
190+
throws ForbiddenUserException, FailedRequestException;
191191

192192
public PojoQueryBuilder<T> getQueryBuilder();
193193

src/test/java/com/marklogic/client/test/EvalTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public class EvalTest {
5757
@BeforeClass
5858
public static void beforeClass() {
5959
Common.connectEval();
60-
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.wire", "debug");
60+
//System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.wire", "debug");
6161
}
6262
@AfterClass
6363
public static void afterClass() {
@@ -326,6 +326,9 @@ private void runAndTest(ServerEvaluationCall call)
326326
result = results.next();
327327
assertEquals("myCtsQuery should be Type.OTHER", EvalResult.Type.OTHER, result.getType());
328328
assertEquals("myCtsQuery should be Format.TEXT", Format.TEXT, result.getFormat());
329+
result = results.next();
330+
assertEquals("myFunction should be Type.OTHER", EvalResult.Type.OTHER, result.getType());
331+
assertEquals("myFunction should be Format.TEXT", Format.TEXT, result.getFormat());
329332
} finally { results.close(); }
330333
}
331334

src/test/resources/evaltest.xqy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,12 @@ let $myAttribute := $myElement/@*
3333
let $myComment := $myComment/comment()
3434
let $myProcessingInstruction := $myProcessingInstruction/processing-instruction()
3535
let $myCtsQuery := cts:word-query('a')
36+
let $myFunction := xdmp:functions()[2]
3637
return (
3738
$test:myString, $myArray, $myObject, $myAnyUri,
3839
$myBinary, $myBase64Binary, $myHexBinary, $myDuration, $myQName,
3940
$myDocument, $myAttribute, $myComment, $myElement, $myProcessingInstruction, $myText,
4041
$myBool, $myInteger, $myBigInteger, $myDecimal, $myDouble, $myFloat,
4142
$myGDay, $myGMonth, $myGMonthDay, $myGYear, $myGYearMonth, $myDate, $myDateTime, $myTime,
42-
$myNull, $myCtsQuery
43+
$myNull, $myCtsQuery, $myFunction
4344
)

0 commit comments

Comments
 (0)