本文整理汇总了Java中io.undertow.UndertowMessages类的典型用法代码示例。如果您正苦于以下问题:Java UndertowMessages类的具体用法?Java UndertowMessages怎么用?Java UndertowMessages使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
UndertowMessages类属于io.undertow包,在下文中一共展示了UndertowMessages类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: awaitReadable
import io.undertow.UndertowMessages; //导入依赖的package包/类
@Override
public void awaitReadable(long l, TimeUnit timeUnit) throws IOException {
if(Thread.currentThread() == getIoThread()) {
throw UndertowMessages.MESSAGES.awaitCalledFromIoThread();
}
if (data == null) {
synchronized (lock) {
if (data == null) {
try {
waiters++;
lock.wait(timeUnit.toMillis(l));
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
throw new InterruptedIOException();
} finally {
waiters--;
}
}
}
}
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:22,代码来源:AbstractFramedStreamSourceChannel.java
示例2: add
import io.undertow.UndertowMessages; //导入依赖的package包/类
public synchronized PathTemplateMatcher<T> add(final PathTemplate template, final T value) {
Set<PathTemplateHolder> values = pathTemplateMap.get(trimBase(template));
Set<PathTemplateHolder> newValues;
if (values == null) {
newValues = new TreeSet<>();
} else {
newValues = new TreeSet<>(values);
}
PathTemplateHolder holder = new PathTemplateHolder(value, template);
if (newValues.contains(holder)) {
PathTemplate equivalent = null;
for (PathTemplateHolder item : newValues) {
if (item.compareTo(holder) == 0) {
equivalent = item.template;
break;
}
}
throw UndertowMessages.MESSAGES.matcherAlreadyContainsTemplate(template.getTemplateString(), equivalent.getTemplateString());
}
newValues.add(holder);
pathTemplateMap.put(trimBase(template), newValues);
buildLengths();
return this;
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:25,代码来源:PathTemplateMatcher.java
示例3: getServletHandlerByPath
import io.undertow.UndertowMessages; //导入依赖的package包/类
public ServletPathMatch getServletHandlerByPath(final String path) {
ServletPathMatch exact = exactPathMatches.get(path);
if (exact != null) {
return exact;
}
PathMatch match = prefixMatches.get(path);
if (match != null) {
return handleMatch(path, match, path.lastIndexOf('.'));
}
int extensionPos = -1;
for (int i = path.length() - 1; i >= 0; --i) {
final char c = path.charAt(i);
if (c == '/') {
final String part = path.substring(0, i);
match = prefixMatches.get(part);
if (match != null) {
return handleMatch(path, match, extensionPos);
}
} else if (c == '.' && extensionPos == -1) {
extensionPos = i;
}
}
//this should never happen
//as the default servlet is aways registered under /*
throw UndertowMessages.MESSAGES.servletPathMatchFailed();
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:27,代码来源:ServletPathMatchesData.java
示例4: queue
import io.undertow.UndertowMessages; //导入依赖的package包/类
private void queue(final ByteBuffer[] byteBuffers, final IoCallback ioCallback) {
//if data is sent from withing the callback we queue it, to prevent the stack growing indefinitely
if (next != null || pendingFile != null) {
throw UndertowMessages.MESSAGES.dataAlreadyQueued();
}
StringBuilder builder = new StringBuilder();
for (ByteBuffer buffer : byteBuffers) {
try {
builder.append(charsetDecoder.decode(buffer));
} catch (CharacterCodingException e) {
ioCallback.onException(exchange, this, e);
return;
}
}
this.next = builder.toString();
queuedCallback = ioCallback;
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:18,代码来源:BlockingWriterSenderImpl.java
示例5: read
import io.undertow.UndertowMessages; //导入依赖的package包/类
@Override
public int read(final byte[] b, final int off, final int len) throws IOException {
if (anyAreSet(state, FLAG_CLOSED)) {
throw UndertowMessages.MESSAGES.streamIsClosed();
}
readIntoBuffer();
if (anyAreSet(state, FLAG_FINISHED)) {
return -1;
}
if (len == 0) {
return 0;
}
ByteBuffer buffer = pooled.getResource();
int copied = Buffers.copy(ByteBuffer.wrap(b, off, len), buffer);
if (!buffer.hasRemaining()) {
pooled.free();
pooled = null;
}
return copied;
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:21,代码来源:UndertowInputStream.java
示例6: addToAttachmentList
import io.undertow.UndertowMessages; //导入依赖的package包/类
@Override
public <T> void addToAttachmentList(AttachmentKey<AttachmentList<T>> key, T value) {
if (key == null) {
throw UndertowMessages.MESSAGES.argumentCannotBeNull("key");
}
final Map<AttachmentKey<?>, Object> attachments = this.attachments;
synchronized (attachments) {
final List<T> list = key.cast(attachments.get(key));
if (list == null) {
final AttachmentList<T> newList = new AttachmentList<T>((Class<T>) Object.class);
attachments.put(key, newList);
newList.add(value);
} else {
list.add(value);
}
}
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:19,代码来源:SpdyChannel.java
示例7: connect
import io.undertow.UndertowMessages; //导入依赖的package包/类
@Override
public void connect(ClientCallback<ClientConnection> listener, InetSocketAddress bindAddress, URI uri, XnioWorker worker, XnioSsl ssl, Pool<ByteBuffer> bufferPool, OptionMap options) {
if (uri.getScheme().equals("https")) {
if (ssl == null) {
listener.failed(UndertowMessages.MESSAGES.sslWasNull());
return;
}
if (bindAddress == null) {
ssl.openSslConnection(worker, new InetSocketAddress(uri.getHost(), uri.getPort() == -1 ? 443 : uri.getPort()), createOpenListener(listener, bufferPool, options), options).addNotifier(createNotifier(listener), null);
} else {
ssl.openSslConnection(worker, bindAddress, new InetSocketAddress(uri.getHost(), uri.getPort() == -1 ? 443 : uri.getPort()), createOpenListener(listener, bufferPool, options), options).addNotifier(createNotifier(listener), null);
}
} else {
if (bindAddress == null) {
worker.openStreamConnection(new InetSocketAddress(uri.getHost(), uri.getPort() == -1 ? 80 : uri.getPort()), createOpenListener(listener, bufferPool, options), options).addNotifier(createNotifier(listener), null);
} else {
worker.openStreamConnection(bindAddress, new InetSocketAddress(uri.getHost(), uri.getPort() == -1 ? 80 : uri.getPort()), createOpenListener(listener, bufferPool, options), null, options).addNotifier(createNotifier(listener), null);
}
}
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:21,代码来源:HttpClientProvider.java
示例8: addPrefixPath
import io.undertow.UndertowMessages; //导入依赖的package包/类
/**
* Adds a path prefix and a handler for that path. If the path does not start
* with a / then one will be prepended.
* <p/>
* The match is done on a prefix bases, so registering /foo will also match /bar. Exact
* path matches are taken into account first.
* <p/>
* If / is specified as the path then it will replace the default handler.
*
* @param path The path
* @param handler The handler
*/
public synchronized PathMatcher addPrefixPath(final String path, final T handler) {
if (path.isEmpty()) {
throw UndertowMessages.MESSAGES.pathMustBeSpecified();
}
final String normalizedPath = this.normalizeSlashes(path);
if (PathMatcher.STRING_PATH_SEPARATOR.equals(normalizedPath)) {
this.defaultHandler = handler;
return this;
}
paths.put(normalizedPath, handler);
buildLengths();
return this;
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:30,代码来源:PathMatcher.java
示例9: sendContinueResponseBlocking
import io.undertow.UndertowMessages; //导入依赖的package包/类
/**
* Sends a continue response using blocking IO
*
* @param exchange The exchange
*/
public static void sendContinueResponseBlocking(final HttpServerExchange exchange) throws IOException {
if (!exchange.isResponseChannelAvailable()) {
throw UndertowMessages.MESSAGES.cannotSendContinueResponse();
}
if(exchange.getAttachment(ALREADY_SENT) != null) {
return;
}
HttpServerExchange newExchange = exchange.getConnection().sendOutOfBandResponse(exchange);
exchange.putAttachment(ALREADY_SENT, true);
newExchange.setResponseCode(StatusCodes.CONTINUE);
newExchange.getResponseHeaders().put(Headers.CONTENT_LENGTH, 0);
newExchange.startBlocking();
newExchange.getOutputStream().close();
newExchange.getInputStream().close();
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:21,代码来源:HttpContinue.java
示例10: loadBuilders
import io.undertow.UndertowMessages; //导入依赖的package包/类
private static Map<String, HandlerBuilder> loadBuilders(final ClassLoader classLoader) {
ServiceLoader<HandlerBuilder> loader = ServiceLoader.load(HandlerBuilder.class, classLoader);
final Map<String, HandlerBuilder> ret = new HashMap<>();
for (HandlerBuilder builder : loader) {
if (ret.containsKey(builder.name())) {
if (ret.get(builder.name()).getClass() != builder.getClass()) {
throw UndertowMessages.MESSAGES.moreThanOneHandlerWithName(builder.name(), builder.getClass(), ret.get(builder.name()).getClass());
}
} else {
ret.put(builder.name(), builder);
}
}
return ret;
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:15,代码来源:HandlerParser.java
示例11: SpdyOpenListener
import io.undertow.UndertowMessages; //导入依赖的package包/类
public SpdyOpenListener(final Pool<ByteBuffer> pool, final Pool<ByteBuffer> heapBufferPool, final OptionMap undertowOptions) {
this.undertowOptions = undertowOptions;
this.bufferPool = pool;
Pooled<ByteBuffer> buf = pool.allocate();
this.bufferSize = buf.getResource().remaining();
buf.free();
this.heapBufferPool = heapBufferPool;
Pooled<ByteBuffer> buff = heapBufferPool.allocate();
try {
if (!buff.getResource().hasArray()) {
throw UndertowMessages.MESSAGES.mustProvideHeapBuffer();
}
} finally {
buff.free();
}
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:17,代码来源:SpdyOpenListener.java
示例12: SpdyPlainOpenListener
import io.undertow.UndertowMessages; //导入依赖的package包/类
public SpdyPlainOpenListener(final Pool<ByteBuffer> pool, final Pool<ByteBuffer> heapBufferPool, final OptionMap undertowOptions) {
this.undertowOptions = undertowOptions;
this.bufferPool = pool;
Pooled<ByteBuffer> buf = pool.allocate();
this.bufferSize = buf.getResource().remaining();
buf.free();
this.heapBufferPool = heapBufferPool;
Pooled<ByteBuffer> buff = heapBufferPool.allocate();
try {
if (!buff.getResource().hasArray()) {
throw UndertowMessages.MESSAGES.mustProvideHeapBuffer();
}
} finally {
buff.free();
}
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:17,代码来源:SpdyPlainOpenListener.java
示例13: awaitWritable
import io.undertow.UndertowMessages; //导入依赖的package包/类
@Override
public void awaitWritable() throws IOException {
if(Thread.currentThread() == getIoThread()) {
throw UndertowMessages.MESSAGES.awaitCalledFromIoThread();
}
synchronized (lock) {
if (anyAreSet(state, STATE_CLOSED) || broken) {
return;
}
if (readyForFlush) {
try {
waiterCount++;
//we need to re-check after incrementing the waiters count
if(readyForFlush && !anyAreSet(state, STATE_CLOSED) && !broken) {
lock.wait();
}
} catch (InterruptedException e) {
throw new InterruptedIOException();
} finally {
waiterCount--;
}
}
}
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:26,代码来源:AbstractFramedStreamSinkChannel.java
示例14: removePrefixPath
import io.undertow.UndertowMessages; //导入依赖的package包/类
public synchronized PathMatcher removePrefixPath(final String path) {
if (path == null || path.isEmpty()) {
throw UndertowMessages.MESSAGES.pathMustBeSpecified();
}
final String normalizedPath = this.normalizeSlashes(path);
if (PathMatcher.STRING_PATH_SEPARATOR.equals(normalizedPath)) {
defaultHandler = null;
return this;
}
paths.remove(normalizedPath);
buildLengths();
return this;
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:18,代码来源:PathMatcher.java
示例15: invalidate
import io.undertow.UndertowMessages; //导入依赖的package包/类
void invalidate(final HttpServerExchange exchange, SessionListener.SessionDestroyedReason reason) {
synchronized(SessionImpl.this) {
if (timerCancelKey != null) {
timerCancelKey.remove();
}
InMemorySession sess = sessionManager.sessions.get(sessionId);
if (sess == null) {
if (reason == SessionListener.SessionDestroyedReason.INVALIDATED) {
throw UndertowMessages.MESSAGES.sessionAlreadyInvalidated();
}
return;
}
invalidationStarted = true;
}
sessionManager.sessionListeners.sessionDestroyed(this, exchange, reason);
sessionManager.sessions.remove(sessionId);
if (exchange != null) {
sessionCookieConfig.clearSession(exchange, this.getId());
}
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:21,代码来源:InMemorySessionManager.java
示例16: transferFrom
import io.undertow.UndertowMessages; //导入依赖的package包/类
@Override
public void transferFrom(FileChannel source, IoCallback callback) {
if (callback == null) {
throw UndertowMessages.MESSAGES.argumentCannotBeNull("callback");
}
if (this.fileChannel != null || this.buffer != null) {
throw UndertowMessages.MESSAGES.dataAlreadyQueued();
}
this.callback = callback;
this.fileChannel = source;
if (inCallback) {
return;
}
if(transferTask == null) {
transferTask = new TransferTask();
}
if (exchange.isInIoThread()) {
exchange.dispatch(transferTask);
return;
}
transferTask.run();
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:25,代码来源:AsyncSenderImpl.java
示例17: parse
import io.undertow.UndertowMessages; //导入依赖的package包/类
@Override
public void parse(final HttpHandler handler) throws Exception {
if (exchange.getAttachment(FORM_DATA) != null) {
handler.handleRequest(exchange);
return;
}
this.handler = handler;
//we need to delegate to a thread pool
//as we parse with blocking operations
StreamSourceChannel requestChannel = exchange.getRequestChannel();
if (requestChannel == null) {
throw new IOException(UndertowMessages.MESSAGES.requestChannelAlreadyProvided());
}
if (executor == null) {
exchange.dispatch(new NonBlockingParseTask(exchange.getConnection().getWorker(), requestChannel));
} else {
exchange.dispatch(executor, new NonBlockingParseTask(executor, requestChannel));
}
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:21,代码来源:MultiPartParserDefinition.java
示例18: parseBlocking
import io.undertow.UndertowMessages; //导入依赖的package包/类
@Override
public FormData parseBlocking() throws IOException {
final FormData existing = exchange.getAttachment(FORM_DATA);
if (existing != null) {
return existing;
}
StreamSourceChannel channel = exchange.getRequestChannel();
if (channel == null) {
throw new IOException(UndertowMessages.MESSAGES.requestChannelAlreadyProvided());
} else {
while (state != 4) {
doParse(channel);
if (state != 4) {
channel.awaitReadable();
}
}
}
return data;
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:21,代码来源:FormEncodedDataDefinition.java
示例19: addRule
import io.undertow.UndertowMessages; //导入依赖的package包/类
private IPAddressAccessControlHandler addRule(final String peer, final boolean deny) {
if (IP4_EXACT.matcher(peer).matches()) {
addIpV4ExactMatch(peer, deny);
} else if (IP4_WILDCARD.matcher(peer).matches()) {
addIpV4WildcardMatch(peer, deny);
} else if (IP4_SLASH.matcher(peer).matches()) {
addIpV4SlashPrefix(peer, deny);
} else if (IP6_EXACT.matcher(peer).matches()) {
addIpV6ExactMatch(peer, deny);
} else if (IP6_WILDCARD.matcher(peer).matches()) {
addIpV6WildcardMatch(peer, deny);
} else if (IP6_SLASH.matcher(peer).matches()) {
addIpV6SlashPrefix(peer, deny);
} else {
throw UndertowMessages.MESSAGES.notAValidIpPattern(peer);
}
return this;
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:19,代码来源:IPAddressAccessControlHandler.java
示例20: addRoute
import io.undertow.UndertowMessages; //导入依赖的package包/类
public synchronized HostTable addRoute(H host, String virtualHost, String contextPath) {
Set<Target> hostData = hosts.get(host);
if(hostData == null) {
throw UndertowMessages.MESSAGES.hostHasNotBeenRegistered(host);
}
hostData.add(new Target(virtualHost, contextPath));
PathMatcher<Set<H>> paths = targets.get(virtualHost);
if(paths == null) {
paths = new PathMatcher<>();
targets.put(virtualHost, paths);
}
Set<H> hostSet = paths.getPrefixPath(contextPath);
if(hostSet == null) {
hostSet = new CopyOnWriteArraySet<>();
paths.addPrefixPath(contextPath, hostSet);
}
hostSet.add(host);
return this;
}
开发者ID:lamsfoundation,项目名称:lams,代码行数:20,代码来源:HostTable.java
注:本文中的io.undertow.UndertowMessages类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论