List of usage examples for org.apache.http.client.utils URIBuilder toString
@Override
public String toString()
From source file:org.eclipse.rdf4j.http.client.SPARQLProtocolSession.java
protected HttpUriRequest getQueryMethod(QueryLanguage ql, String query, String baseURI, Dataset dataset, boolean includeInferred, int maxQueryTime, Binding... bindings) { List<NameValuePair> queryParams = getQueryMethodParameters(ql, query, baseURI, dataset, includeInferred, maxQueryTime, bindings);//from ww w. j a v a 2 s.c o m HttpUriRequest method; String queryUrlWithParams; try { URIBuilder urib = new URIBuilder(getQueryURL()); for (NameValuePair nvp : queryParams) urib.addParameter(nvp.getName(), nvp.getValue()); queryUrlWithParams = urib.toString(); } catch (URISyntaxException e) { throw new AssertionError(e); } if (shouldUsePost(queryUrlWithParams)) { // we just built up a URL for nothing. oh well. // It's probably not much overhead against // the poor triplestore having to process such as massive query HttpPost postMethod = new HttpPost(getQueryURL()); postMethod.setHeader("Content-Type", Protocol.FORM_MIME_TYPE + "; charset=utf-8"); postMethod.setEntity(new UrlEncodedFormEntity(queryParams, UTF8)); method = postMethod; } else { method = new HttpGet(queryUrlWithParams); } // functionality to provide custom http headers as required by the // applications for (Map.Entry<String, String> additionalHeader : additionalHttpHeaders.entrySet()) { method.addHeader(additionalHeader.getKey(), additionalHeader.getValue()); } return method; }
From source file:org.apache.ambari.server.controller.metrics.timeline.AMSPropertyProviderTest.java
@Test public void testPopulateResourcesForMultipleHostMetricscPointInTime() throws Exception { setUpCommonMocks();//ww w . jav a 2 s . c o m TestStreamProvider streamProvider = new TestStreamProvider(MULTIPLE_HOST_METRICS_FILE_PATH); injectCacheEntryFactoryWithStreamProvider(streamProvider); TestMetricHostProvider metricHostProvider = new TestMetricHostProvider(); ComponentSSLConfiguration sslConfiguration = mock(ComponentSSLConfiguration.class); Map<String, Map<String, PropertyInfo>> propertyIds = PropertyHelper .getMetricPropertyIds(Resource.Type.Host); AMSPropertyProvider propertyProvider = new AMSHostPropertyProvider(propertyIds, streamProvider, sslConfiguration, cacheProvider, metricHostProvider, CLUSTER_NAME_PROPERTY_ID, HOST_NAME_PROPERTY_ID); Resource resource = new ResourceImpl(Resource.Type.Host); resource.setProperty(CLUSTER_NAME_PROPERTY_ID, "c1"); resource.setProperty(HOST_NAME_PROPERTY_ID, "h1"); Map<String, TemporalInfo> temporalInfoMap = Collections.emptyMap(); Request request = PropertyHelper.getReadRequest(new HashSet<String>() { { add(PROPERTY_ID1); add(PROPERTY_ID2); } }, temporalInfoMap); Set<Resource> resources = propertyProvider.populateResources(Collections.singleton(resource), request, null); Assert.assertEquals(1, resources.size()); Resource res = resources.iterator().next(); Map<String, Object> properties = PropertyHelper.getProperties(resources.iterator().next()); Assert.assertNotNull(properties); URIBuilder uriBuilder = AMSPropertyProvider.getAMSUriBuilder("localhost", 6188, false); uriBuilder.addParameter("metricNames", "cpu_user,mem_free"); uriBuilder.addParameter("hostname", "h1"); uriBuilder.addParameter("appId", "HOST"); URIBuilder uriBuilder2 = AMSPropertyProvider.getAMSUriBuilder("localhost", 6188, false); uriBuilder2.addParameter("metricNames", "mem_free,cpu_user"); uriBuilder2.addParameter("hostname", "h1"); uriBuilder2.addParameter("appId", "HOST"); Assert.assertTrue(uriBuilder.toString().equals(streamProvider.getLastSpec()) || uriBuilder2.toString().equals(streamProvider.getLastSpec())); Double val1 = (Double) res.getPropertyValue(PROPERTY_ID1); Assert.assertNotNull("No value for property " + PROPERTY_ID1, val1); Assert.assertEquals(41.088, val1, 0.001); Double val2 = (Double) res.getPropertyValue(PROPERTY_ID2); Assert.assertNotNull("No value for property " + PROPERTY_ID2, val2); Assert.assertEquals(2.47025664E8, val2, 0.1); }
From source file:org.apache.ambari.server.controller.metrics.timeline.AMSPropertyProviderTest.java
@Test public void testPopulateResourcesForHostComponentMetricsForMultipleHosts() throws Exception { setUpCommonMocks();/*from ww w .j ava 2 s .c om*/ TestStreamProviderForHostComponentMultipleHostsMetricsTest streamProvider = new TestStreamProviderForHostComponentMultipleHostsMetricsTest( null); injectCacheEntryFactoryWithStreamProvider(streamProvider); TestMetricHostProvider metricHostProvider = new TestMetricHostProvider("h1"); ComponentSSLConfiguration sslConfiguration = mock(ComponentSSLConfiguration.class); Map<String, Map<String, PropertyInfo>> propertyIds = PropertyHelper .getMetricPropertyIds(Resource.Type.HostComponent); Resource resource = new ResourceImpl(Resource.Type.Host); resource.setProperty(CLUSTER_NAME_PROPERTY_ID, "c1"); resource.setProperty(HOST_NAME_PROPERTY_ID, "h1"); resource.setProperty(COMPONENT_NAME_PROPERTY_ID, "DATANODE"); Map<String, TemporalInfo> temporalInfoMap = new HashMap<String, TemporalInfo>(); temporalInfoMap.put(PROPERTY_ID4, new TemporalInfoImpl(1416445244801L, 1416448936464L, 1L)); Request request = PropertyHelper.getReadRequest(new HashSet<String>() { { add(PROPERTY_ID4); add("params/padding/NONE"); // Ignore padding to match result size } }, temporalInfoMap); AMSPropertyProvider propertyProvider = new AMSHostComponentPropertyProvider(propertyIds, streamProvider, sslConfiguration, cacheProvider, metricHostProvider, CLUSTER_NAME_PROPERTY_ID, HOST_NAME_PROPERTY_ID, COMPONENT_NAME_PROPERTY_ID); Set<Resource> resources1 = propertyProvider.populateResources(Collections.singleton(resource), request, null); Assert.assertEquals(1, resources1.size()); Resource res1 = resources1.iterator().next(); Map<String, Object> properties = PropertyHelper.getProperties(resources1.iterator().next()); Assert.assertNotNull(properties); ///////////////////////////////////// metricHostProvider = new TestMetricHostProvider("h2"); resource = new ResourceImpl(Resource.Type.Host); resource.setProperty(CLUSTER_NAME_PROPERTY_ID, "c1"); resource.setProperty(HOST_NAME_PROPERTY_ID, "h2"); resource.setProperty(COMPONENT_NAME_PROPERTY_ID, "DATANODE"); temporalInfoMap = new HashMap<String, TemporalInfo>(); temporalInfoMap.put(PROPERTY_ID4, new TemporalInfoImpl(1416445244801L, 1416448936464L, 1L)); request = PropertyHelper.getReadRequest(new HashSet<String>() { { add(PROPERTY_ID4); add("params/padding/NONE"); // Ignore padding to match result size } }, temporalInfoMap); propertyProvider = new AMSHostComponentPropertyProvider(propertyIds, streamProvider, sslConfiguration, cacheProvider, metricHostProvider, CLUSTER_NAME_PROPERTY_ID, HOST_NAME_PROPERTY_ID, COMPONENT_NAME_PROPERTY_ID); resource.setProperty(HOST_NAME_PROPERTY_ID, "h2"); Set<Resource> resources2 = propertyProvider.populateResources(Collections.singleton(resource), request, null); Assert.assertEquals(1, resources2.size()); Resource res2 = resources2.iterator().next(); properties = PropertyHelper.getProperties(resources2.iterator().next()); Assert.assertNotNull(properties); Set<String> specs = streamProvider.getAllSpecs(); Assert.assertEquals(2, specs.size()); URIBuilder uriBuilder1 = AMSPropertyProvider.getAMSUriBuilder("localhost", 6188, false); Number[][] val; for (String spec : specs) { Assert.assertNotNull(spec); if (spec.contains("h2")) { uriBuilder1.setParameter("metricNames", "dfs.datanode.blocks_removed"); uriBuilder1.setParameter("hostname", "h2"); uriBuilder1.setParameter("appId", "DATANODE"); uriBuilder1.setParameter("startTime", "1416445244801"); uriBuilder1.setParameter("endTime", "1416448936464"); Assert.assertEquals(uriBuilder1.toString(), spec); val = (Number[][]) res2.getPropertyValue(PROPERTY_ID4); Assert.assertNotNull("No value for property " + PROPERTY_ID4, val); Assert.assertEquals(9, val.length); } else { uriBuilder1.setParameter("metricNames", "dfs.datanode.blocks_removed"); uriBuilder1.setParameter("hostname", "h1"); uriBuilder1.setParameter("appId", "DATANODE"); uriBuilder1.setParameter("startTime", "1416445244801"); uriBuilder1.setParameter("endTime", "1416448936464"); Assert.assertEquals(uriBuilder1.toString(), spec); val = (Number[][]) res1.getPropertyValue(PROPERTY_ID4); Assert.assertNotNull("No value for property " + PROPERTY_ID4, val); Assert.assertEquals(8, val.length); } } }
From source file:org.apache.ambari.server.controller.metrics.timeline.AMSReportPropertyProvider.java
private void setProperties(Resource resource, String clusterName, Request request, Set<String> ids) throws SystemException { Map<String, MetricReportRequest> reportRequestMap = getPropertyIdMaps(request, ids); String host = hostProvider.getCollectorHostName(clusterName, TIMELINE_METRICS); String port = hostProvider.getCollectorPort(clusterName, TIMELINE_METRICS); URIBuilder uriBuilder = AMSPropertyProvider.getAMSUriBuilder(host, port != null ? Integer.parseInt(port) : 6188, configuration.isHttpsEnabled()); for (Map.Entry<String, MetricReportRequest> entry : reportRequestMap.entrySet()) { MetricReportRequest reportRequest = entry.getValue(); TemporalInfo temporalInfo = reportRequest.getTemporalInfo(); Map<String, String> propertyIdMap = reportRequest.getPropertyIdMap(); uriBuilder.removeQuery();//from w ww . j a va2s.co m // Call with hostname = null uriBuilder.addParameter("metricNames", MetricsPropertyProvider.getSetString(propertyIdMap.keySet(), -1)); uriBuilder.setParameter("appId", "HOST"); long startTime = temporalInfo.getStartTime(); if (startTime != -1) { uriBuilder.setParameter("startTime", String.valueOf(startTime)); } long endTime = temporalInfo.getEndTime(); if (endTime != -1) { uriBuilder.setParameter("endTime", String.valueOf(endTime)); } TimelineAppMetricCacheKey metricCacheKey = new TimelineAppMetricCacheKey(propertyIdMap.keySet(), "HOST", temporalInfo); metricCacheKey.setSpec(uriBuilder.toString()); // Self populating cache updates itself on every get with latest results TimelineMetrics timelineMetrics; if (metricCache != null && metricCacheKey.getTemporalInfo() != null) { timelineMetrics = metricCache.getAppTimelineMetricsFromCache(metricCacheKey); } else { try { timelineMetrics = requestHelper.fetchTimelineMetrics(uriBuilder, temporalInfo.getStartTimeMillis(), temporalInfo.getEndTimeMillis()); } catch (IOException e) { timelineMetrics = null; } } if (timelineMetrics != null) { for (TimelineMetric metric : timelineMetrics.getMetrics()) { if (metric.getMetricName() != null && metric.getMetricValues() != null) { // Pad zeros or nulls if needed to a clone so we do not cache // padded values TimelineMetric timelineMetricClone = new TimelineMetric(metric); metricsPaddingMethod.applyPaddingStrategy(timelineMetricClone, temporalInfo); String propertyId = propertyIdMap.get(metric.getMetricName()); if (propertyId != null) { resource.setProperty(propertyId, getValue(timelineMetricClone, temporalInfo)); } } } } } }
From source file:net.shibboleth.idp.oidc.flow.BuildAuthorizationRequestContextAction.java
/** * Check for none prompt pair./*from ww w . j a va 2 s . c o m*/ * * @param client the client * @param authRequest the auth request * @return the pair */ private Pair<Events, ? extends Object> checkForNonePrompt(final ClientDetailsEntity client, final OIDCAuthorizationRequestContext authRequest) { log.debug("Prompt contains {}", ConnectRequestParameters.PROMPT_NONE); final Authentication auth = SecurityContextHolder.getContext().getAuthentication(); if (auth != null) { log.debug("Authentication context is found for {}. Already logged in; continue without prompt", auth.getPrincipal()); return new Pair(Events.Success, auth); } log.info("Client requested no prompt"); if (client != null && authRequest.getRedirectUri() != null) { try { final String url = redirectResolver.resolveRedirect(authRequest.getRedirectUri(), client); log.debug("Initial redirect url resolved for client {} is {}", client.getClientName(), url); final URIBuilder uriBuilder = new URIBuilder(url); if (authRequest.isImplicitResponseType()) { log.debug("Request is asking for implicit grant type. Encoding parameters as fragments"); final StringBuilder builder = new StringBuilder(); builder.append(ConnectRequestParameters.ERROR).append('=') .append(ConnectRequestParameters.LOGIN_REQUIRED); if (!Strings.isNullOrEmpty(authRequest.getState())) { builder.append('&').append(ConnectRequestParameters.STATE).append('=') .append(authRequest.getState()); } uriBuilder.setFragment(builder.toString()); } else { log.debug("Request is asking for code grant type. Encoding parameters as url parameters"); uriBuilder.addParameter(ConnectRequestParameters.ERROR, ConnectRequestParameters.LOGIN_REQUIRED); if (!Strings.isNullOrEmpty(authRequest.getState())) { uriBuilder.addParameter(ConnectRequestParameters.STATE, authRequest.getState()); } } log.debug("Resolved redirect url {}", uriBuilder.toString()); return new Pair<>(Events.Redirect, uriBuilder.toString()); } catch (final URISyntaxException e) { log.error("Can't build redirect URI for prompt=none, sending error instead", e); } } else { log.warn("Access denied. Either client is not found or no redirect uri is specified"); } return new Pair(Events.Failure, null); }
From source file:org.apache.ambari.server.controller.ganglia.GangliaPropertyProviderTest.java
@Test public void testPopulateManyResources() throws Exception { TestStreamProvider streamProvider = new TestStreamProvider("temporal_ganglia_data_1.txt"); TestGangliaHostProvider hostProvider = new TestGangliaHostProvider(); GangliaPropertyProvider propertyProvider = new GangliaHostPropertyProvider( PropertyHelper.getGangliaPropertyIds(Resource.Type.Host), streamProvider, configuration, hostProvider, CLUSTER_NAME_PROPERTY_ID, HOST_NAME_PROPERTY_ID); Set<Resource> resources = new HashSet<Resource>(); // host/* ww w . j a v a 2 s . c o m*/ Resource resource = new ResourceImpl(Resource.Type.Host); resource.setProperty(HOST_NAME_PROPERTY_ID, "domU-12-31-39-0E-34-E1.compute-1.internal"); resources.add(resource); resource = new ResourceImpl(Resource.Type.Host); resource.setProperty(HOST_NAME_PROPERTY_ID, "domU-12-31-39-0E-34-E2.compute-1.internal"); resources.add(resource); resource = new ResourceImpl(Resource.Type.Host); resource.setProperty(HOST_NAME_PROPERTY_ID, "domU-12-31-39-0E-34-E3.compute-1.internal"); resources.add(resource); // only ask for one property Map<String, TemporalInfo> temporalInfoMap = new HashMap<String, TemporalInfo>(); temporalInfoMap.put(PROPERTY_ID, new TemporalInfoImpl(10L, 20L, 1L)); Request request = PropertyHelper.getReadRequest(Collections.singleton(PROPERTY_ID), temporalInfoMap); Assert.assertEquals(3, propertyProvider.populateResources(resources, request, null).size()); URIBuilder uriBuilder = new URIBuilder(); uriBuilder.setScheme((configuration.isGangliaSSL() ? "https" : "http")); uriBuilder.setHost("domU-12-31-39-0E-34-E1.compute-1.internal"); uriBuilder.setPath("/cgi-bin/rrd.py"); uriBuilder.setParameter("c", "HDPJobTracker,HDPHBaseMaster,HDPKafka,HDPResourceManager,HDPFlumeServer,HDPSlaves,HDPHistoryServer,HDPJournalNode,HDPTaskTracker,HDPHBaseRegionServer,HDPNameNode"); uriBuilder.setParameter("h", "domU-12-31-39-0E-34-E3.compute-1.internal,domU-12-31-39-0E-34-E1.compute-1.internal,domU-12-31-39-0E-34-E2.compute-1.internal"); uriBuilder.setParameter("m", "jvm.metrics.gcCount"); uriBuilder.setParameter("s", "10"); uriBuilder.setParameter("e", "20"); uriBuilder.setParameter("r", "1"); String expected = uriBuilder.toString(); Assert.assertEquals(expected, streamProvider.getLastSpec()); for (Resource res : resources) { Assert.assertEquals(2, PropertyHelper.getProperties(res).size()); Assert.assertNotNull(res.getPropertyValue(PROPERTY_ID)); } }
From source file:org.apache.ambari.server.controller.metrics.timeline.AMSPropertyProviderTest.java
@Test public void testPopulateResourcesForMultipleHostMetrics() throws Exception { setUpCommonMocks();//from www. jav a 2s . c o m TestStreamProvider streamProvider = new TestStreamProvider(MULTIPLE_HOST_METRICS_FILE_PATH); injectCacheEntryFactoryWithStreamProvider(streamProvider); TestMetricHostProvider metricHostProvider = new TestMetricHostProvider(); ComponentSSLConfiguration sslConfiguration = mock(ComponentSSLConfiguration.class); Map<String, Map<String, PropertyInfo>> propertyIds = PropertyHelper .getMetricPropertyIds(Resource.Type.Host); AMSPropertyProvider propertyProvider = new AMSHostPropertyProvider(propertyIds, streamProvider, sslConfiguration, cacheProvider, metricHostProvider, CLUSTER_NAME_PROPERTY_ID, HOST_NAME_PROPERTY_ID); Resource resource = new ResourceImpl(Resource.Type.Host); resource.setProperty(CLUSTER_NAME_PROPERTY_ID, "c1"); resource.setProperty(HOST_NAME_PROPERTY_ID, "h1"); Map<String, TemporalInfo> temporalInfoMap = new HashMap<String, TemporalInfo>(); temporalInfoMap.put(PROPERTY_ID1, new TemporalInfoImpl(1416445244701L, 1416448936564L, 15L)); temporalInfoMap.put(PROPERTY_ID2, new TemporalInfoImpl(1416445244701L, 1416448936564L, 15L)); Request request = PropertyHelper.getReadRequest(new HashSet<String>() { { add(PROPERTY_ID1); add(PROPERTY_ID2); add("params/padding/NONE"); // Ignore padding to match result size } }, temporalInfoMap); Set<Resource> resources = propertyProvider.populateResources(Collections.singleton(resource), request, null); Assert.assertEquals(1, resources.size()); Resource res = resources.iterator().next(); Map<String, Object> properties = PropertyHelper.getProperties(resources.iterator().next()); Assert.assertNotNull(properties); URIBuilder uriBuilder1 = AMSPropertyProvider.getAMSUriBuilder("localhost", 6188, false); uriBuilder1.addParameter("metricNames", "cpu_user,mem_free"); uriBuilder1.addParameter("hostname", "h1"); uriBuilder1.addParameter("appId", "HOST"); uriBuilder1.addParameter("startTime", "1416445244701"); uriBuilder1.addParameter("endTime", "1416448936564"); URIBuilder uriBuilder2 = AMSPropertyProvider.getAMSUriBuilder("localhost", 6188, false); uriBuilder2.addParameter("metricNames", "mem_free,cpu_user"); uriBuilder2.addParameter("hostname", "h1"); uriBuilder2.addParameter("appId", "HOST"); uriBuilder2.addParameter("startTime", "1416445244701"); uriBuilder2.addParameter("endTime", "1416448936564"); List<String> allSpecs = new ArrayList<String>(streamProvider.getAllSpecs()); Assert.assertEquals(1, allSpecs.size()); Assert.assertTrue( uriBuilder1.toString().equals(allSpecs.get(0)) || uriBuilder2.toString().equals(allSpecs.get(0))); Number[][] val = (Number[][]) res.getPropertyValue(PROPERTY_ID1); Assert.assertEquals(111, val.length); val = (Number[][]) res.getPropertyValue(PROPERTY_ID2); Assert.assertEquals(86, val.length); }
From source file:org.apache.ambari.server.controller.metrics.ganglia.GangliaPropertyProvider.java
/** * Get the spec to locate the Ganglia stream from the given * request info.//from w w w . j ava 2 s.c om * * @param clusterName the cluster name * @param clusterSet the set of ganglia cluster names * @param hostSet the set of host names * @param metricSet the set of metric names * @param temporalInfo the temporal information * * @return the spec, like http://example.com/path?param1=val1¶mn=valn * * @throws org.apache.ambari.server.controller.spi.SystemException if unable to get the Ganglia Collector host name */ private String getSpec(String clusterName, Set<String> clusterSet, Set<String> hostSet, Set<String> metricSet, TemporalInfo temporalInfo) throws SystemException { String clusters = getSetString(clusterSet, -1); String hosts = getSetString(hostSet, -1); String metrics = getSetString(metricSet, -1); URIBuilder uriBuilder = new URIBuilder(); if (configuration.isHttpsEnabled()) { uriBuilder.setScheme("https"); } else { uriBuilder.setScheme("http"); } uriBuilder.setHost(hostProvider.getCollectorHostName(clusterName, GANGLIA)); uriBuilder.setPath("/cgi-bin/rrd.py"); uriBuilder.setParameter("c", clusters); if (hosts.length() > 0) { uriBuilder.setParameter("h", hosts); } if (metrics.length() > 0) { uriBuilder.setParameter("m", metrics); } else { // get all metrics uriBuilder.setParameter("m", ".*"); } if (temporalInfo != null) { long startTime = temporalInfo.getStartTime(); if (startTime != -1) { uriBuilder.setParameter("s", String.valueOf(startTime)); } long endTime = temporalInfo.getEndTime(); if (endTime != -1) { uriBuilder.setParameter("e", String.valueOf(endTime)); } long step = temporalInfo.getStep(); if (step != -1) { uriBuilder.setParameter("r", String.valueOf(step)); } } else { uriBuilder.setParameter("e", "now"); uriBuilder.setParameter("pt", "true"); } return uriBuilder.toString(); }
From source file:org.apache.ambari.server.controller.ganglia.GangliaPropertyProvider.java
/** * Get the spec to locate the Ganglia stream from the given * request info.//from w w w .j a v a2 s . com * * @param clusterName the cluster name * @param clusterSet the set of ganglia cluster names * @param hostSet the set of host names * @param metricSet the set of metric names * @param temporalInfo the temporal information * * @return the spec, like http://example.com/path?param1=val1¶mn=valn * * @throws org.apache.ambari.server.controller.spi.SystemException if unable to get the Ganglia Collector host name */ private String getSpec(String clusterName, Set<String> clusterSet, Set<String> hostSet, Set<String> metricSet, TemporalInfo temporalInfo) throws SystemException { String clusters = getSetString(clusterSet, -1); String hosts = getSetString(hostSet, -1); String metrics = getSetString(metricSet, -1); URIBuilder uriBuilder = new URIBuilder(); if (configuration.isGangliaSSL()) { uriBuilder.setScheme("https"); } else { uriBuilder.setScheme("http"); } uriBuilder.setHost(hostProvider.getGangliaCollectorHostName(clusterName)); uriBuilder.setPath("/cgi-bin/rrd.py"); uriBuilder.setParameter("c", clusters); if (hosts.length() > 0) { uriBuilder.setParameter("h", hosts); } if (metrics.length() > 0) { uriBuilder.setParameter("m", metrics); } else { // get all metrics uriBuilder.setParameter("m", ".*"); } if (temporalInfo != null) { long startTime = temporalInfo.getStartTime(); if (startTime != -1) { uriBuilder.setParameter("s", String.valueOf(startTime)); } long endTime = temporalInfo.getEndTime(); if (endTime != -1) { uriBuilder.setParameter("e", String.valueOf(endTime)); } long step = temporalInfo.getStep(); if (step != -1) { uriBuilder.setParameter("r", String.valueOf(step)); } } else { uriBuilder.setParameter("e", "now"); uriBuilder.setParameter("pt", "true"); } return uriBuilder.toString(); }