/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.ambari.view.property; import org.apache.ambari.view.ViewContext; import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.Consumes; import javax.ws.rs.core.Context; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import java.io.IOException; import java.util.Map; import java.util.Iterator; /** * The Property service. */ public class PropertyService { /** * The view context. */ @Inject ViewContext context; /** * Handles: GET /. * * @param headers http headers * @param ui uri info * * @return value JSON representation */ @GET @Path("/") @Produces({"text/plain", "application/json"}) public Response getValue(@Context HttpHeaders headers, @Context UriInfo ui) { Map props = context.getProperties();; Iterator it = props.entrySet().iterator(); StringBuffer buf = new StringBuffer(); boolean first = true; buf.append("["); while(it.hasNext()) { Map.Entry pairs = (Map.Entry)it.next(); if (first == false) buf.append(",\n"); buf.append("{\""); buf.append(pairs.getKey()); buf.append("\" : \""); buf.append(pairs.getValue()); buf.append("\"}"); first = false; } buf.append("]"); return Response.ok(buf.toString()).build(); } } // end PropertyService