diff --git a/pom.xml b/pom.xml index 41dfd470..f8a453bc 100644 --- a/pom.xml +++ b/pom.xml @@ -48,7 +48,7 @@ 1.8 1.8 - 5.3.0 + 5.3.0 5.16.3 2.11.1 1.11 diff --git a/src/main/java/org/exist/jms/messaging/MessagingJmsListener.java b/src/main/java/org/exist/jms/messaging/MessagingJmsListener.java index a2a2c90e..6d0074ef 100644 --- a/src/main/java/org/exist/jms/messaging/MessagingJmsListener.java +++ b/src/main/java/org/exist/jms/messaging/MessagingJmsListener.java @@ -279,22 +279,22 @@ private MapType getMessageProperties(final Message msg, final XQueryContext xque addStringKV(map, key, value); } else if (obj instanceof Integer) { - final Integer localValue = msg.getIntProperty(key); + final int localValue = msg.getIntProperty(key); final ValueSequence vs = new ValueSequence(new IntegerValue(localValue)); addKV(map, key, vs); } else if (obj instanceof Double) { - final Double localValue = msg.getDoubleProperty(key); + final double localValue = msg.getDoubleProperty(key); final ValueSequence vs = new ValueSequence(new DoubleValue(localValue)); addKV(map, key, vs); } else if (obj instanceof Boolean) { - final Boolean localValue = msg.getBooleanProperty(key); + final boolean localValue = msg.getBooleanProperty(key); final ValueSequence vs = new ValueSequence(new BooleanValue(localValue)); addKV(map, key, vs); } else if (obj instanceof Float) { - final Float localValue = msg.getFloatProperty(key); + final float localValue = msg.getFloatProperty(key); final ValueSequence vs = new ValueSequence(new FloatValue(localValue)); addKV(map, key, vs); @@ -432,7 +432,7 @@ private Sequence processXML(final byte[] data, final boolean isGzipped) throws X if (validationReport.isValid()) { content = adapter.getDocument(); } else { - final String txt = String.format("Received document is not valid: %s", validationReport.toString()); + final String txt = String.format("Received document is not valid: %s", validationReport); LOG.debug(txt); throw new XPathException(JMS023, txt); } diff --git a/src/main/java/org/exist/jms/replication/subscribe/ReplicationJmsListener.java b/src/main/java/org/exist/jms/replication/subscribe/ReplicationJmsListener.java index 4bb2bf3f..9dbc1d4f 100644 --- a/src/main/java/org/exist/jms/replication/subscribe/ReplicationJmsListener.java +++ b/src/main/java/org/exist/jms/replication/subscribe/ReplicationJmsListener.java @@ -29,7 +29,11 @@ import org.exist.dom.persistent.DocumentImpl; import org.exist.jms.replication.shared.MessageHelper; import org.exist.jms.replication.shared.ReplicationTxnManager; -import org.exist.jms.shared.*; +import org.exist.jms.shared.Constants; +import org.exist.jms.shared.Identity; +import org.exist.jms.shared.Report; +import org.exist.jms.shared.eXistMessage; +import org.exist.jms.shared.eXistMessagingListener; import org.exist.security.Account; import org.exist.security.Group; import org.exist.security.Permission; @@ -641,7 +645,9 @@ private void createCollection(final eXistMessage em) { createOrCheckCollection(sourcePath); // Update meta data - updateCollectionMetadata(sourcePath, userName, groupName, mode, createTime); + try (final Collection collection = updateCollectionMetadata(sourcePath, userName, groupName, mode, createTime)) { + LOG.info("Updated meta data for {}", collection.getURI().toString()); + } } /** @@ -714,7 +720,7 @@ private Collection updateCollectionMetadata(final XmldbURI sourcePath, final Opt permission.setMode(mode.get()); } // Set Create time only - createTime.ifPresent(collection::setCreationTime); + createTime.ifPresent(collection::setCreated); broker.saveCollection(txn, collection); @@ -897,7 +903,7 @@ private void updateMetadataCollection(final eXistMessage em) { permission.setMode(mode.get()); } - created.ifPresent(collection::setCreationTime); + created.ifPresent(collection::setCreated); // Make persistent broker.saveCollection(txn, collection); diff --git a/src/main/java/org/exist/jms/shared/JmsConfiguration.java b/src/main/java/org/exist/jms/shared/JmsConfiguration.java index db212bb3..b98ce89a 100644 --- a/src/main/java/org/exist/jms/shared/JmsConfiguration.java +++ b/src/main/java/org/exist/jms/shared/JmsConfiguration.java @@ -244,7 +244,7 @@ public void validate() throws XPathException { public boolean isDurable() { final String durable = getProperty(Constants.DURABLE); - return durable == null ? false : BooleanUtils.toBoolean(durable); + return durable != null && BooleanUtils.toBoolean(durable); } diff --git a/src/main/java/org/exist/jms/shared/ReportItem.java b/src/main/java/org/exist/jms/shared/ReportItem.java index 790ca246..c84bc5ad 100644 --- a/src/main/java/org/exist/jms/shared/ReportItem.java +++ b/src/main/java/org/exist/jms/shared/ReportItem.java @@ -36,8 +36,8 @@ public class ReportItem { private final Date timestamp; - private Throwable throwable = new Throwable("EMPTY"); - private CONTEXT context = CONTEXT.NOTDEFINED; + private Throwable throwable; + private CONTEXT context; public ReportItem(final Throwable throwable, final CONTEXT context) { this.timestamp = new Date(); diff --git a/src/main/java/org/exist/jms/xquery/management/ManageReceivers.java b/src/main/java/org/exist/jms/xquery/management/ManageReceivers.java index b1b22e35..41c97c69 100644 --- a/src/main/java/org/exist/jms/xquery/management/ManageReceivers.java +++ b/src/main/java/org/exist/jms/xquery/management/ManageReceivers.java @@ -49,31 +49,31 @@ public class ManageReceivers extends BasicFunction { new QName(START, JmsModule.NAMESPACE_URI, JmsModule.PREFIX), "Start receiver", new SequenceType[]{ new FunctionParameterSequenceType(ID, Type.INTEGER, Cardinality.EXACTLY_ONE, RECEIVER_ID),}, - new SequenceType(Type.ITEM, Cardinality.EMPTY) + new SequenceType(Type.ITEM, Cardinality.EMPTY_SEQUENCE) ), new FunctionSignature( new QName(STOP, JmsModule.NAMESPACE_URI, JmsModule.PREFIX), "Stop receiver", new SequenceType[]{ new FunctionParameterSequenceType(ID, Type.INTEGER, Cardinality.EXACTLY_ONE, RECEIVER_ID),}, - new SequenceType(Type.ITEM, Cardinality.EMPTY) + new SequenceType(Type.ITEM, Cardinality.EMPTY_SEQUENCE) ), new FunctionSignature( new QName(CLOSE, JmsModule.NAMESPACE_URI, JmsModule.PREFIX), "Close receiver", new SequenceType[]{ new FunctionParameterSequenceType(ID, Type.INTEGER, Cardinality.EXACTLY_ONE, RECEIVER_ID),}, - new SequenceType(Type.ITEM, Cardinality.EMPTY) + new SequenceType(Type.ITEM, Cardinality.EMPTY_SEQUENCE) ), new FunctionSignature( new QName(REPORT, JmsModule.NAMESPACE_URI, JmsModule.PREFIX), "Get details of receiver", new SequenceType[]{ new FunctionParameterSequenceType(ID, Type.INTEGER, Cardinality.EXACTLY_ONE, RECEIVER_ID),}, - new FunctionReturnSequenceType(Type.NODE, Cardinality.ONE, "XML fragment with receiver information") + new FunctionReturnSequenceType(Type.NODE, Cardinality.EXACTLY_ONE, "XML fragment with receiver information") ), new FunctionSignature( new QName(CLEARREPORT, JmsModule.NAMESPACE_URI, JmsModule.PREFIX), "Clear report", new SequenceType[]{ new FunctionParameterSequenceType(ID, Type.INTEGER, Cardinality.EXACTLY_ONE, RECEIVER_ID),}, - new FunctionReturnSequenceType(Type.NODE, Cardinality.ONE, "Clear report of receiver") + new FunctionReturnSequenceType(Type.NODE, Cardinality.EXACTLY_ONE, "Clear report of receiver") ),}; public ManageReceivers(final XQueryContext context, final FunctionSignature signature) { diff --git a/src/main/java/org/exist/jms/xquery/messaging/RegisterReceiver.java b/src/main/java/org/exist/jms/xquery/messaging/RegisterReceiver.java index b9e2bfd9..7aab0085 100644 --- a/src/main/java/org/exist/jms/xquery/messaging/RegisterReceiver.java +++ b/src/main/java/org/exist/jms/xquery/messaging/RegisterReceiver.java @@ -29,7 +29,6 @@ import org.exist.jms.xquery.MessagingModule; import org.exist.xquery.*; import org.exist.xquery.functions.map.AbstractMapType; -import org.exist.xquery.functions.request.RequestModule; import org.exist.xquery.value.*; import static org.exist.jms.shared.ErrorCodes.JMS010; @@ -87,9 +86,10 @@ public Sequence eval(final Sequence[] args, final Sequence contextSequence) thro final JmsConfiguration config = new JmsConfiguration(); config.loadConfiguration(configMap); - // Remove Request module from expression and xquery context - this.getContext().setModule(RequestModule.NAMESPACE_URI, null); - context.setModule(RequestModule.NAMESPACE_URI, null); + // TODO why was this needed and why did we want to remove it. +// // Remove Request module from expression and xquery context +// this.getContext().setModule(RequestModule.NAMESPACE_URI, null); +// context.setModule(RequestModule.NAMESPACE_URI, null); // Setup listener, pass correct User object // get user via Broker for compatibility < existdb 2.2 diff --git a/src/main/java/org/exist/jms/xquery/messaging/SendMessage.java b/src/main/java/org/exist/jms/xquery/messaging/SendMessage.java index 62e28e7b..e5ca200b 100644 --- a/src/main/java/org/exist/jms/xquery/messaging/SendMessage.java +++ b/src/main/java/org/exist/jms/xquery/messaging/SendMessage.java @@ -46,11 +46,11 @@ public class SendMessage extends BasicFunction { new QName("send", MessagingModule.NAMESPACE_URI, MessagingModule.PREFIX), "Send JMS message", new SequenceType[]{ - new FunctionParameterSequenceType("content", Type.ITEM, Cardinality.ONE, "Send message to remote server"), + new FunctionParameterSequenceType("content", Type.ITEM, Cardinality.EXACTLY_ONE, "Send message to remote server"), new FunctionParameterSequenceType("jmsMessageProperties", Type.MAP, Cardinality.ZERO_OR_ONE, "Application-defined property values"), - new FunctionParameterSequenceType("jmsConfiguration", Type.MAP, Cardinality.ONE, "JMS configuration settings") + new FunctionParameterSequenceType("jmsConfiguration", Type.MAP, Cardinality.EXACTLY_ONE, "JMS configuration settings") }, - new FunctionReturnSequenceType(Type.NODE, Cardinality.ONE, "Confirmation message") + new FunctionReturnSequenceType(Type.NODE, Cardinality.EXACTLY_ONE, "Confirmation message") ), }; diff --git a/src/main/java/org/exist/jms/xquery/replication/ReplicationSwitch.java b/src/main/java/org/exist/jms/xquery/replication/ReplicationSwitch.java index c14d9ce4..bd1a8ba1 100644 --- a/src/main/java/org/exist/jms/xquery/replication/ReplicationSwitch.java +++ b/src/main/java/org/exist/jms/xquery/replication/ReplicationSwitch.java @@ -42,7 +42,7 @@ public class ReplicationSwitch extends BasicFunction { new QName("enable-trigger", ReplicationModule.NAMESPACE_URI, ReplicationModule.PREFIX), "Globally switch on/off the replication trigger", new SequenceType[]{ new FunctionParameterSequenceType("newStatus", Type.BOOLEAN, Cardinality.EXACTLY_ONE, "Value true() enables replication."),}, - new FunctionReturnSequenceType(Type.EMPTY, Cardinality.ZERO, "") + new FunctionReturnSequenceType(Type.EMPTY, Cardinality.EMPTY_SEQUENCE, "") ),}; public ReplicationSwitch(final XQueryContext context, final FunctionSignature signature) { diff --git a/src/main/java/org/exist/jms/xquery/replication/SyncResource.java b/src/main/java/org/exist/jms/xquery/replication/SyncResource.java index 1c7a15ee..e89f0227 100644 --- a/src/main/java/org/exist/jms/xquery/replication/SyncResource.java +++ b/src/main/java/org/exist/jms/xquery/replication/SyncResource.java @@ -58,13 +58,13 @@ public class SyncResource extends BasicFunction { new QName("sync", ReplicationModule.NAMESPACE_URI, ReplicationModule.PREFIX), "Synchronize resource", new SequenceType[]{ new FunctionParameterSequenceType("path", Type.STRING, Cardinality.EXACTLY_ONE, "Path to resource"),}, - new FunctionReturnSequenceType(Type.EMPTY, Cardinality.EMPTY, "No return value") + new FunctionReturnSequenceType(Type.EMPTY, Cardinality.EMPTY_SEQUENCE, "No return value") ), new FunctionSignature( new QName("sync-metadata", ReplicationModule.NAMESPACE_URI, ReplicationModule.PREFIX), "Synchronize meta data of resource", new SequenceType[]{ new FunctionParameterSequenceType("path", Type.STRING, Cardinality.EXACTLY_ONE, "Path to resource"),}, - new FunctionReturnSequenceType(Type.EMPTY, Cardinality.EMPTY, "No return value") + new FunctionReturnSequenceType(Type.EMPTY, Cardinality.EMPTY_SEQUENCE, "No return value") ),}; public SyncResource(final XQueryContext context, final FunctionSignature signature) { diff --git a/src/test/resources/activemq.xml b/src/test/resources/activemq.xml index 7a1dd6f3..a0726525 100644 --- a/src/test/resources/activemq.xml +++ b/src/test/resources/activemq.xml @@ -4,7 +4,8 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"> - +