private Lock acquireOrRenewLock( LockFeature request, LockManager manager ) throws OWSException { long expiryInMilliseconds = DEFAULT_EXPIRY_IN_MILLISECONDS; if ( request.getExpiryInSeconds() != null ) { expiryInMilliseconds = request.getExpiryInSeconds().longValue() * 1000; } String existingLockId = request.getExistingLockId(); if ( existingLockId != null ) { return renewLock( manager, expiryInMilliseconds, existingLockId ); } return acquireLock( request, manager, expiryInMilliseconds ); }
/** * Performs the given {@link LockFeature} request. * * @param request * request to be handled, must not be <code>null</code> * @param response * response that is used to write the result, must not be <code>null</code> * @throws OWSException * if a WFS specific exception occurs, e.g. a requested feature type is not served * @throws IOException * @throws XMLStreamException */ void doLockFeature( LockFeature request, HttpResponseBuffer response ) throws OWSException, XMLStreamException, IOException { LOG.debug( "doLockFeature: " + request ); LockManager manager = getLockManager(); Lock lock = acquireOrRenewLock( request, manager ); try { writeLockFeatureResponse( request, response, lock ); } catch ( FeatureStoreException e ) { throw new OWSException( "Cannot acquire lock: " + e.getMessage(), NO_APPLICABLE_CODE ); } }
private void writeLockFeatureResponse110( HttpResponseBuffer response, Lock lock ) throws XMLStreamException, IOException, FeatureStoreException { String schemaLocation = WFS_NS + " " + WFS_110_SCHEMA_URL; XMLStreamWriter writer = getXMLResponseWriter( response, "text/xml", schemaLocation ); writer.setPrefix( "wfs", WFS_NS ); writer.writeStartElement( WFS_NS, "LockFeatureResponse" ); writer.writeNamespace( "wfs", WFS_NS ); writer.writeNamespace( "ogc", OGCNS ); writeElement( writer, WFS_NS, "LockId", lock.getId() ); if ( lock.getNumLocked() > 0 ) { writeFeaturesLocked100or110( lock, writer ); } if ( lock.getNumFailedToLock() > 0 ) { writeFeaturesNotLocked110( lock, writer ); } writer.writeEndElement(); writer.flush(); }
private void writeLockFeatureResponse200( HttpResponseBuffer response, Lock lock ) throws XMLStreamException, IOException, FeatureStoreException { String schemaLocation = WFS_200_NS + " " + WFS_200_SCHEMA_URL; XMLStreamWriter writer = getXMLResponseWriter( response, "text/xml", schemaLocation ); writer.setPrefix( "wfs", WFS_200_NS ); writer.writeStartElement( WFS_200_NS, "LockFeatureResponse" ); writer.writeAttribute( "lockId", lock.getId() ); writer.writeNamespace( "wfs", WFS_200_NS ); writer.writeNamespace( "fes", FES_20_NS ); if ( lock.getNumLocked() > 0 ) { writeFeaturesLocked200( lock, writer ); } if ( lock.getNumFailedToLock() > 0 ) { writeFeaturesNotLocked200( lock, writer ); } writer.writeEndElement(); writer.flush(); }
private void writeLockFeatureResponse100( HttpResponseBuffer response, Lock lock ) throws XMLStreamException, IOException, FeatureStoreException { String schemaLocation = WFS_NS + " " + WFS_100_TRANSACTION_URL; XMLStreamWriter writer = getXMLResponseWriter( response, "text/xml", schemaLocation ); writer.setPrefix( "wfs", WFS_NS ); writer.writeStartElement( WFS_NS, "WFS_LockFeatureResponse" ); writer.writeNamespace( "wfs", WFS_NS ); writer.writeNamespace( "ogc", OGCNS ); writeElement( writer, WFS_NS, "LockId", lock.getId() ); if ( lock.getNumLocked() > 0 ) { writeFeaturesLocked100or110( lock, writer ); } if ( lock.getNumFailedToLock() > 0 ) { writeFeaturesNotLocked100( lock, writer ); } writer.writeEndElement(); writer.flush(); }
checkTransactionsEnabled( requestName ); LockFeature lockFeature = LockFeatureKVPAdapter.parse( kvpParamsUC ); lockFeatureHandler.doLockFeature( lockFeature, response ); break; case Transaction:
lockFeatureHandler = new LockFeatureHandler( this ); List<URL> list = new ArrayList<URL>(); for ( String file : jaxbConfig.getStoredQuery() ) {
lockFeatureAdapter.setRootElement( body ); LockFeature lockFeature = lockFeatureAdapter.parse(); lockFeatureHandler.doLockFeature( lockFeature, response ); break; case Transaction:
lockFeatureAdapter.setRootElement( new XMLAdapter( xmlStream ).getRootElement() ); LockFeature lockFeature = lockFeatureAdapter.parse(); lockFeatureHandler.doLockFeature( lockFeature, response ); break; case Transaction: