Java源码示例:org.apache.cxf.jaxrs.impl.UriBuilderImpl
示例1
private URI calculateNewRequestURI(URI newBaseURI, URI requestURI, boolean proxy) {
String baseURIPath = newBaseURI.getRawPath();
String reqURIPath = requestURI.getRawPath();
UriBuilder builder = new UriBuilderImpl().uri(newBaseURI);
String basePath = reqURIPath.startsWith(baseURIPath) ? baseURIPath : getBaseURI().getRawPath();
String relativePath = reqURIPath.equals(basePath) ? ""
: reqURIPath.startsWith(basePath) ? reqURIPath.substring(basePath.length()) : reqURIPath;
builder.path(relativePath);
String newQuery = newBaseURI.getRawQuery();
if (newQuery == null) {
builder.replaceQuery(requestURI.getRawQuery());
} else {
builder.replaceQuery(newQuery);
}
URI newRequestURI = builder.build();
resetBaseAddress(newBaseURI);
URI current = proxy ? newBaseURI : newRequestURI;
resetCurrentBuilder(current);
return newRequestURI;
}
示例2
@Test
public void testAdd() throws IllegalArgumentException, URISyntaxException {
UriBuilder uriBuilder = new UriBuilderImpl(new URI(RESOURCE_PATH));
when(uriInfo.getRequestUriBuilder()).thenReturn(uriBuilder);
Response resp = taskRes.addTask(task1);
verify(taskService).addOrUpdate(task1);
assertThat(resp.getStatus(), equalTo(201));
URI expectedRedirect = new URI(RESOURCE_PATH + "/1");
assertThat(resp.getHeaders().get("Location"), contains(expectedRedirect));
}
示例3
public LocalClientState(URI baseURI, URI currentURI, Map<String, Object> properties) {
this.baseURI = baseURI;
if (properties != null) {
this.properties = new HashMap<>(properties);
}
this.currentBuilder = new UriBuilderImpl(properties).uri(currentURI);
}
示例4
private void resetCurrentUri(Map<String, Object> props) {
if (isSupportedScheme(baseURI)) {
this.currentBuilder = new UriBuilderImpl(props).uri(baseURI);
} else {
this.currentBuilder = new UriBuilderImpl(props).uri("/");
}
}
示例5
static URI convertStringToURI(String baseAddress) {
try {
return URI.create(baseAddress);
} catch (RuntimeException ex) {
// no need to check "https" scheme or indeed ':'
// as the relative address will not work as the base address
if (baseAddress.startsWith(HTTP_SCHEME)) {
return new UriBuilderImpl().uriAsTemplate(baseAddress).build();
}
throw ex;
}
}
示例6
@BeforeEach
public void setup() {
if (SERVER == null) {
AnyObjectDAO anyObjectDAO = mock(AnyObjectDAO.class);
AnyObjectLogic logic = mock(AnyObjectLogic.class);
when(logic.search(any(SearchCond.class), anyInt(), anyInt(), anyList(), anyString(), anyBoolean())).
thenAnswer(ic -> {
AnyObjectTO printer1 = new AnyObjectTO();
printer1.setKey(UUID.randomUUID().toString());
printer1.setName("printer1");
printer1.setType("PRINTER");
printer1.getPlainAttrs().add(new Attr.Builder("location").value("here").build());
AnyObjectTO printer2 = new AnyObjectTO();
printer2.setKey(UUID.randomUUID().toString());
printer2.setName("printer2");
printer2.setType("PRINTER");
printer2.getPlainAttrs().add(new Attr.Builder("location").value("there").build());
return Pair.of(2, Arrays.asList(printer1, printer2));
});
when(logic.create(any(AnyObjectCR.class), anyBoolean())).thenAnswer(ic -> {
AnyObjectTO anyObjectTO = new AnyObjectTO();
EntityTOUtils.toAnyTO(ic.getArgument(0), anyObjectTO);
anyObjectTO.setKey(UUID.randomUUID().toString());
ProvisioningResult<AnyObjectTO> result = new ProvisioningResult<>();
result.setEntity(anyObjectTO);
return result;
});
SearchCondVisitor searchCondVisitor = mock(SearchCondVisitor.class);
when(searchCondVisitor.getQuery()).thenReturn(new SearchCond());
@SuppressWarnings("unchecked")
SearchCondition<SearchBean> sc = mock(SearchCondition.class);
doNothing().when(sc).accept(any());
SearchContext searchContext = mock(SearchContext.class);
when(searchContext.getCondition(anyString(), eq(SearchBean.class))).thenReturn(sc);
UriInfo uriInfo = mock(UriInfo.class);
when(uriInfo.getAbsolutePathBuilder()).thenReturn(new UriBuilderImpl());
when(uriInfo.getQueryParameters()).thenReturn(new MetadataMap<>());
MessageContext messageContext = mock(MessageContext.class);
MockHttpServletRequest httpRequest = new MockHttpServletRequest();
httpRequest.addHeader(RESTHeaders.NULL_PRIORITY_ASYNC, "false");
when(messageContext.getHttpServletRequest()).thenReturn(httpRequest);
when(messageContext.getHttpServletResponse()).thenReturn(new MockHttpServletResponse());
Request request = mock(Request.class);
when(request.evaluatePreconditions(any(Date.class))).thenReturn(Response.notModified());
when(messageContext.getRequest()).thenReturn(request);
AnyObjectServiceImpl service = new AnyObjectServiceImpl();
ReflectionTestUtils.setField(service, "anyObjectDAO", anyObjectDAO);
ReflectionTestUtils.setField(service, "logic", logic);
ReflectionTestUtils.setField(service, "searchCondVisitor", searchCondVisitor);
ReflectionTestUtils.setField(service, "searchContext", searchContext);
ReflectionTestUtils.setField(service, "uriInfo", uriInfo);
ReflectionTestUtils.setField(service, "messageContext", messageContext);
JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
sf.setAddress(LOCAL_ADDRESS);
sf.setResourceClasses(AnyObjectService.class);
sf.setResourceProvider(
AnyObjectService.class,
new SingletonResourceProvider(service, true));
sf.setInInterceptors(Arrays.asList(gzipInInterceptor, validationInInterceptor));
sf.setOutInterceptors(Arrays.asList(gzipOutInterceptor));
sf.setProviders(Arrays.asList(dateParamConverterProvider, jsonProvider, xmlProvider, yamlProvider,
exceptionMapper, searchContextProvider, addETagFilter));
SERVER = sf.create();
}
assertNotNull(SERVER);
}
示例7
public void reset() {
requestHeaders.clear();
response = null;
currentBuilder = new UriBuilderImpl(properties).uri(baseURI);
templates = null;
}
示例8
protected void resetCurrentBuilder(URI uri) {
state.setCurrentBuilder(new UriBuilderImpl(uri));
}