Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
771 blopes 1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 *      http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 */
17
package websocket;
18
 
19
import java.util.HashSet;
20
import java.util.Set;
21
 
22
import javax.websocket.Endpoint;
23
import javax.websocket.server.ServerApplicationConfig;
24
import javax.websocket.server.ServerEndpointConfig;
25
 
26
import websocket.drawboard.DrawboardEndpoint;
27
import websocket.echo.EchoEndpoint;
28
 
29
public class ExamplesConfig implements ServerApplicationConfig {
30
 
31
    @Override
32
    public Set<ServerEndpointConfig> getEndpointConfigs(
33
            Set<Class<? extends Endpoint>> scanned) {
34
 
35
        Set<ServerEndpointConfig> result = new HashSet<>();
36
 
37
        if (scanned.contains(EchoEndpoint.class)) {
38
            result.add(ServerEndpointConfig.Builder.create(
39
                    EchoEndpoint.class,
40
                    "/websocket/echoProgrammatic").build());
41
        }
42
 
43
        if (scanned.contains(DrawboardEndpoint.class)) {
44
            result.add(ServerEndpointConfig.Builder.create(
45
                    DrawboardEndpoint.class,
46
                    "/websocket/drawboard").build());
47
        }
48
 
49
        return result;
50
    }
51
 
52
 
53
    @Override
54
    public Set<Class<?>> getAnnotatedEndpointClasses(Set<Class<?>> scanned) {
55
        // Deploy all WebSocket endpoints defined by annotations in the examples
56
        // web application. Filter out all others to avoid issues when running
57
        // tests on Gump
58
        Set<Class<?>> results = new HashSet<>();
59
        for (Class<?> clazz : scanned) {
60
            if (clazz.getPackage().getName().startsWith("websocket.")) {
61
                results.add(clazz);
62
            }
63
        }
64
        return results;
65
    }
66
}