HttpRemoteJsonResource.java revision 81e0baf43f70767a19dd915727f79d142af56a7b
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * Copyright (c) 2011-2013 ForgeRock AS. All Rights Reserved
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * The contents of this file are subject to the terms
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * of the Common Development and Distribution License
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * (the License). You may not use this file except in
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * compliance with the License.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * You can obtain a copy of the License at
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * See the License for the specific language governing
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * permission and limitations under the License.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * When distributing Covered Code, include this CDDL
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * Header Notice in each file and include the License file
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * If applicable, add the following below the CDDL Header,
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * with the fields enclosed by brackets [] replaced by
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * your own identifying information:
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * "Portions Copyrighted [year] [name of copyright owner]"
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport org.forgerock.json.fluent.JsonValueException;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport org.forgerock.json.resource.ActionRequest;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport org.forgerock.json.resource.BadRequestException;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport org.forgerock.json.resource.CreateRequest;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport org.forgerock.json.resource.DeleteRequest;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport org.forgerock.json.resource.InternalServerErrorException;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport org.forgerock.json.resource.PatchOperation;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport org.forgerock.json.resource.QueryResultHandler;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport org.forgerock.json.resource.ResultHandler;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport org.forgerock.json.resource.UpdateRequest;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport org.restlet.ext.jackson.JacksonRepresentation;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport org.restlet.representation.EmptyRepresentation;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport org.restlet.representation.Representation;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * A {@link Connection} to the remote OpenIDM instance.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkpublic class HttpRemoteJsonResource implements Connection {
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * Requests that the origin server accepts the entity enclosed in the
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * request as a new subordinate of the resource identified by the request
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5">HTTP
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * RFC - 9.5 POST</a>
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk public static final Method PATCH = new Method("PATCH");
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /**Base reference used for requesting this resource. */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /** Username used for authentication when accessing the resource. */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /** Password used for authentication when accessing the resource. */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * Construct the HttpRemoteJsonResource.
return result;
throw new UnsupportedOperationException();
public void close() {
JsonValue result = handle(request, request.getResourceName() + "/" + request.getNewResourceId(), null);
throw new UnsupportedOperationException();
return null;
throw new UnsupportedOperationException();
public boolean isClosed() {
public boolean isValid() {
throw new UnsupportedOperationException();
throw new UnsupportedOperationException();
return null;
return null;
throw new UnsupportedOperationException();
throw new UnsupportedOperationException();
throw new UnsupportedOperationException();
ClientResource clientResource = new ClientResource(new Context(), new Reference(baseReference, ref));
return clientResource;
case CREATE:
case READ:
case UPDATE:
case DELETE:
case PATCH:
case QUERY:
case ACTION:
throw new BadRequestException();
return result;
} catch (ResourceException e) {
} catch (Exception e) {
throw new InternalServerErrorException(e);
case CREATE:
case UPDATE:
case PATCH:
return value;
case ACTION:
return content;
return result;
return username;
return password;