ConnectionRegistry.java
01 /*
02  *
03  * Licensed to the Apache Software Foundation (ASF) under one
04  * or more contributor license agreements.  See the NOTICE file
05  * distributed with this work for additional information
06  * regarding copyright ownership.  The ASF licenses this file
07  * to you under the Apache License, Version 2.0 (the
08  * "License"); you may not use this file except in compliance
09  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  */
21 package org.apache.qpid.server.connection;
22 
23 import org.apache.qpid.server.virtualhost.VirtualHost;
24 import org.apache.qpid.server.protocol.AMQMinaProtocolSession;
25 import org.apache.qpid.server.protocol.AMQProtocolSession;
26 import org.apache.qpid.AMQException;
27 import org.apache.qpid.AMQConnectionException;
28 import org.apache.qpid.protocol.AMQConstant;
29 
30 import java.util.concurrent.CopyOnWriteArrayList;
31 import java.util.List;
32 
33 public class ConnectionRegistry implements IConnectionRegistry
34 {
35     private List<AMQProtocolSession> _registry = new CopyOnWriteArrayList<AMQProtocolSession>();
36 
37     private VirtualHost _virtualHost;
38 
39     public ConnectionRegistry(VirtualHost virtualHost)
40     {
41         _virtualHost = virtualHost;
42     }
43 
44     public void initialise()
45     {
46 
47     }
48 
49     /** Close all of the currently open connections. */
50     public void close() throws AMQException
51     {
52         while (!_registry.isEmpty())
53         {
54             AMQProtocolSession connection = _registry.get(0);
55 
56             connection.closeConnection(0new AMQConnectionException(AMQConstant.INTERNAL_ERROR, "Broker is shutting down",
57                                                                   00,
58                                                                   connection.getProtocolOutputConverter().getProtocolMajorVersion(),
59                                                                   connection.getProtocolOutputConverter().getProtocolMinorVersion(),
60                                                                   (Throwablenull)true);
61         }
62     }
63 
64     public void registerConnection(AMQProtocolSession connnection)
65     {
66         _registry.add(connnection);
67     }
68 
69     public void deregisterConnection(AMQProtocolSession connnection)
70     {
71         _registry.remove(connnection);
72     }
73 }