当前位置: 首页>>代码示例>>Java>>正文


Java UndertowMessages类代码示例

本文整理汇总了Java中io.undertow.UndertowMessages的典型用法代码示例。如果您正苦于以下问题:Java UndertowMessages类的具体用法?Java UndertowMessages怎么用?Java UndertowMessages使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


UndertowMessages类属于io.undertow包,在下文中一共展示了UndertowMessages类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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


注:本文中的io.undertow.UndertowMessages类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。