Changeset 309
- Timestamp:
- 03/16/06 08:53:42 (3 years ago)
- Files:
-
- trunk/.classpath (modified) (2 diffs)
- trunk/build.properties (modified) (1 diff)
- trunk/build.xml (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/NodeConfigurator.java (modified) (5 diffs)
- trunk/source/org/kolaka/freecast/config/resources/defaults-manager.xml (modified) (1 diff)
- trunk/source/org/kolaka/freecast/manager/gui/MainFrame.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/net/SpecificationServerSocketBinder.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/node/DefaultNode.java (modified) (6 diffs)
- trunk/source/org/kolaka/freecast/node/DefaultNodeIdentifier.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/node/Node.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/node/NodeIdentifier.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/node/NodeStatusProvider.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/node/Order.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/packet/DefaultPacket.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/packet/LogicalPageBuilder.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/packet/Packet.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/peer/BasePeerConnection1.java (moved) (moved from trunk/source/org/kolaka/freecast/peer/BasePeerConnection.java) (15 diffs)
- trunk/source/org/kolaka/freecast/peer/BasePeerConnection1Factory.java (added)
- trunk/source/org/kolaka/freecast/peer/ConfigurablePeerControler.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/peer/DefaultPeer.java (modified) (5 diffs)
- trunk/source/org/kolaka/freecast/peer/DefaultPeerControler.java (modified) (13 diffs)
- trunk/source/org/kolaka/freecast/peer/Peer.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/peer/PeerConnection.java (modified) (3 diffs)
- trunk/source/org/kolaka/freecast/peer/PeerConnectionFactory.java (deleted)
- trunk/source/org/kolaka/freecast/peer/PeerConnectionSource.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/peer/PeerConnections.java (modified) (3 diffs)
- trunk/source/org/kolaka/freecast/peer/PeerControler.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/peer/PeerReference.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/peer/PeerStorage.java (modified) (5 diffs)
- trunk/source/org/kolaka/freecast/peer/Peers.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/peer/event/PeerConnectionStatusEvent.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/peer/event/PeerConnectionStatusSupport.java (modified) (5 diffs)
- trunk/source/org/kolaka/freecast/peer/test/DefaultPeerTest.java (deleted)
- trunk/source/org/kolaka/freecast/peer/test/MockPeerConnection.java (modified) (3 diffs)
- trunk/source/org/kolaka/freecast/peer/test/MockPeerConnectionFactory.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/peer/test/PeerConnectionFactoryBaseTest.java (modified) (3 diffs)
- trunk/source/org/kolaka/freecast/peer/test/PeerConnectionFactoryTest.java (modified) (3 diffs)
- trunk/source/org/kolaka/freecast/peer/test/PeerConnectionSourceTest.java (modified) (3 diffs)
- trunk/source/org/kolaka/freecast/peer/test/PeerConnectionTest.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/pipe/ConsumerInputStreamFactory.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/pipe/DefaultPipe.java (modified) (3 diffs)
- trunk/source/org/kolaka/freecast/resource/HttpResourceLocator.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/BaseMessage.java (modified) (3 diffs)
- trunk/source/org/kolaka/freecast/transport/Message.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/transport/PacketMessage.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/transport/PeerConnectionStatusMessage.java (modified) (3 diffs)
- trunk/source/org/kolaka/freecast/transport/PeerStatusMessage.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/transport/SocketPeerConnection.java (deleted)
- trunk/source/org/kolaka/freecast/transport/SocketPeerConnectionFactory.java (deleted)
- trunk/source/org/kolaka/freecast/transport/SocketPeerConnectionSource.java (deleted)
- trunk/source/org/kolaka/freecast/transport/StreamMessageWriter.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/PeerReceiver.java (modified) (6 diffs)
- trunk/source/org/kolaka/freecast/transport/receiver/PeerReceiverControler.java (modified) (7 diffs)
- trunk/source/org/kolaka/freecast/transport/sender/PeerSender.java (modified) (4 diffs)
- trunk/source/org/kolaka/freecast/transport/sender/PeerSenderControler.java (modified) (6 diffs)
- trunk/source/org/kolaka/freecast/transport/test/MessageWriterTest.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/transport/test/PacketMessageTest.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/transport/test/SocketPeerConnectionFactoryTest.java (deleted)
- trunk/source/org/kolaka/freecast/www/images/header/freecast.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/install/freecast-start.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/install/freecast-start.small.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/install/jws-download.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/install/jws-download.small.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/install/jws-security.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/install/jws-security.small.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/nav/newsletters.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/nav/people.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/nav/text.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screencasts/broadcast-step1.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screencasts/broadcast-step2.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screencasts/broadcast-step3.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screencasts/freecast-bin-w32-audio-example.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screencasts/freecast-bin-w32-config.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screencasts/freecast-bin-w32-install.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screencasts/freecast-bin-w32-start.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screencasts/freecast-manager-setup.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screencasts/java-install.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screencasts/oddcast-install.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screenshots/manager-default.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screenshots/manager-full.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screenshots/manager-menu.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screenshots/swing-customized.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screenshots/swing-default.png (modified) (previous)
- trunk/source/org/kolaka/freecast/www/images/screenshots/swing-video.png (modified) (previous)
- trunk/track.virtual (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/.classpath
r73 r309 2 2 <classpath> 3 3 <classpathentry kind="src" path="source"/> 4 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>5 4 <classpathentry kind="lib" path="track/commons-cli/releases/1.0/commons-cli-1.0.jar"/> 6 5 <classpathentry kind="lib" path="track/commons-collections/releases/3.1/commons-collections-3.1.jar"/> … … 26 25 <classpathentry kind="lib" path="track/tritonus/patches/0.3.6/tritonus-vorbis.jar"/> 27 26 <classpathentry kind="lib" path="track/vorbisspi/releases/1.0.2/lib/tritonus_share.jar"/> 27 <classpathentry kind="lib" path="track/commons-discovery/releases/0.2/commons-discovery.jar"/> 28 <classpathentry sourcepath="track/mina/releases/0.9.2/core/src" kind="lib" path="track/mina/releases/0.9.2/mina-core-0.9.2.jar"/> 29 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 28 30 <classpathentry kind="output" path=".eclipse"/> 29 31 </classpath> trunk/build.properties
r62 r309 9 9 track.commons.compress.dir=${track.dir}/commons-compress/patches/1.0-dev-kolaka20041211 10 10 track.commons.compress.jar=${track.commons.compress.dir}/commons-compress-0.1-dev.jar 11 track.commons.logging.url=http:// mir2.ovh.net/ftp.apache.org/dist/jakarta/commons/logging/binaries/commons-logging-1.0.4.tar.gz12 track.commons.logging.dir=${track.dir}/commons-logging/releases/1. 0.413 track.commons.logging.jar=${track.commons.logging.dir}/commons-logging .jar11 track.commons.logging.url=http://resources.tryphon.org/kolaka/track/commons/logging/commons-logging-20060312.tar.gz 12 track.commons.logging.dir=${track.dir}/commons-logging/releases/1.1.0 13 track.commons.logging.jar=${track.commons.logging.dir}/commons-logging-1.1-RC5.jar 14 14 track.xmlreleasenotes.dir=${track.dir}/xmlreleasenotes/releases/0.17.2 15 15 track.ant-jxr.dir=track/ant-jxr/releases/1.0 trunk/build.xml
r264 r309 77 77 78 78 <target name="prepare.track.commons-logging.download" depends="prepare.track.commons-logging.download.check" unless="prepare.track.commons-logging.download.notRequired"> 79 <prepare.track.httpdownload url="${track.commons.logging.url}" target="${track.commons.logging.dir}" prefix="commons-logging -1.0.4" />79 <prepare.track.httpdownload url="${track.commons.logging.url}" target="${track.commons.logging.dir}" prefix="commons-logging" /> 80 80 </target> 81 81 … … 193 193 </library> 194 194 195 <library id="lib.mina"> 196 <lib-entry groupid="mina" version="0.9.2" artifactid="mina-core" /> 197 <lib-entry groupid="slf4j" version="1.0" artifactid="slf4j-log4j12" /> 198 </library> 199 195 200 <library id="core"> 196 201 <lib-entry groupid="commons-collections" version="3.1" /> 197 <lib-entry groupid="commons-logging" version="1. 0.4" />202 <lib-entry groupid="commons-logging" version="1.1.0" artifactid="commons-logging-1.1-RC5" /> 198 203 <lib-entry groupid="commons-cli" version="1.0" /> 199 204 <lib-entry groupid="commons-codec" version="1.3" /> 200 205 <lib-entry groupid="commons-io" version="1.0" /> 201 206 <lib-entry groupid="commons-discovery" version="0.2" /> 202 <lib-entry groupid="log4j" version="1.2. 9" />207 <lib-entry groupid="log4j" version="1.2.13" /> 203 208 <lib-entry groupid="commons-lang" version="nightly-20041229" artifactid="commons-lang-2.0" /> 204 209 <lib-entry groupid="commons-configuration" version="nightly-20050307" artifactid="commons-configuration-1.1RC2" /> 205 210 <lib-entry groupid="concurrent" version="kolaka" /> 211 <library refid="lib.mina" /> 206 212 </library> 207 213 trunk/source/org/kolaka/freecast/NodeConfigurator.java
r71 r309 42 42 import org.kolaka.freecast.net.InetSocketAddressSpecification; 43 43 import org.kolaka.freecast.net.InetSocketAddressSpecificationParser; 44 import org.kolaka.freecast.net.SpecificationDatagramSelector; 44 45 import org.kolaka.freecast.net.SpecificationServerSocketBinder; 45 46 import org.kolaka.freecast.node.ConfigurableNode; … … 65 66 import org.kolaka.freecast.resource.ResourceLocator; 66 67 import org.kolaka.freecast.resource.ResourceLocators; 67 import org.kolaka.freecast.transport. SocketPeerConnectionFactory;68 import org.kolaka.freecast.transport. SocketPeerConnectionSource;68 import org.kolaka.freecast.transport.MinaPeerReceivingConnectionFactory; 69 import org.kolaka.freecast.transport.MinaPeerSendingConnectionFactory; 69 70 import org.kolaka.freecast.transport.receiver.BandwidthControler; 70 71 import org.kolaka.freecast.transport.receiver.EncoderFormat; … … 132 133 InetSocketAddressSpecification listenAddressSpecification = loadInetSocketAddressSpecification(listenAddressConfiguration); 133 134 134 InetSocketAddress listenAddress = SpecificationServerSocketBinder135 InetSocketAddress listenAddress = new SpecificationDatagramSelector() 135 136 .select(listenAddressSpecification); 136 137 … … 138 139 "install a PeerSenderControler which can accept other peers at " 139 140 + listenAddress); 140 peerControler.register(new SocketPeerConnectionSource( 141 listenAddress)); 142 node.setSenderControler(new PeerSenderControler()); 141 MinaPeerSendingConnectionFactory sendingFactory = new MinaPeerSendingConnectionFactory(listenAddress); 142 peerControler.register(sendingFactory); 143 sendingFactory.setStatusProvider(node.getNodeStatusProvider()); 144 145 node.setSenderControler(new PeerSenderControler(sendingFactory)); 143 146 144 147 PeerReferenceLoader peerReferenceLoader = new PeerReferenceLoader(); … … 211 214 receiver = new ShoutServerReceiver(listenAddress); 212 215 } else if (receiverClass.equals("peer")) { 213 peerControler.register(new SocketPeerConnectionFactory()); 214 receiverControler = new PeerReceiverControler(peerControler); 216 MinaPeerReceivingConnectionFactory connectionFactory = new MinaPeerReceivingConnectionFactory(); 217 peerControler.register(connectionFactory); 218 connectionFactory.setStatusProvider(node.getNodeStatusProvider()); 219 receiverControler = new PeerReceiverControler(peerControler, connectionFactory); 215 220 } else { 216 221 throw new ConfigurationException("Unknown receiver class: '" trunk/source/org/kolaka/freecast/config/resources/defaults-manager.xml
r75 r309 10 10 <url>http://download.freecast.org/jws/default/audio.m3u</url> 11 11 <bandwidth>40</bandwidth> 12 <checksummer>13 <class>digest</class>14 </checksummer>15 12 </receiver> 16 13 <sender> trunk/source/org/kolaka/freecast/manager/gui/MainFrame.java
r75 r309 45 45 import org.kolaka.freecast.node.ConfigurableNode; 46 46 import org.kolaka.freecast.node.Node; 47 import org.kolaka.freecast.peer.Peer; 47 48 import org.kolaka.freecast.peer.PeerControler; 48 49 import org.kolaka.freecast.peer.PeerReference; … … 221 222 222 223 PeerControler.Auditor peerAuditor = new PeerControler.Auditor() { 223 public void acceptConnection(Peer Reference reference) {224 225 } 226 227 public void closeConnection(Peer Reference reference) {224 public void acceptConnection(Peer peer) { 225 226 } 227 228 public void closeConnection(Peer peer) { 228 229 229 230 } trunk/source/org/kolaka/freecast/net/SpecificationServerSocketBinder.java
r71 r309 66 66 } 67 67 68 // TODO incompatible with UDP acceptor ... 68 69 public static InetSocketAddress select( 69 70 InetSocketAddressSpecification specification) throws IOException { trunk/source/org/kolaka/freecast/node/DefaultNode.java
r75 r309 24 24 package org.kolaka.freecast.node; 25 25 26 import java.beans.PropertyChangeEvent;27 import java.beans.PropertyChangeListener;28 26 import java.util.Iterator; 29 27 import java.util.Set; … … 35 33 import org.kolaka.freecast.node.event.NodeStatusSupport; 36 34 import org.kolaka.freecast.peer.ConfigurablePeerControler; 37 import org.kolaka.freecast.peer.Peer;38 35 import org.kolaka.freecast.peer.PeerConnection; 39 36 import org.kolaka.freecast.peer.PeerControler; 37 import org.kolaka.freecast.peer.PeerReceivingConnection; 40 38 import org.kolaka.freecast.peer.PeerReference; 39 import org.kolaka.freecast.peer.PeerStatus; 40 import org.kolaka.freecast.peer.event.PeerStatusEvent; 41 import org.kolaka.freecast.peer.event.PeerStatusListener; 41 42 import org.kolaka.freecast.pipe.DefaultPipe; 42 43 import org.kolaka.freecast.pipe.Pipe; … … 49 50 import org.kolaka.freecast.transport.receiver.ReceiverControler; 50 51 import org.kolaka.freecast.transport.sender.NullSenderControler; 51 import org.kolaka.freecast.transport.sender.PeerSenderControler;52 52 import org.kolaka.freecast.transport.sender.SenderControler; 53 53 … … 91 91 nodeService.init(); 92 92 93 if (receiverControler instanceof PeerReceiverControler) { 94 ((PeerReceiverControler) receiverControler) 95 .setPeerControler(peerControler); 96 } 97 98 if (senderControler instanceof PeerSenderControler) { 99 ((PeerSenderControler) senderControler) 100 .setPeerControler(peerControler); 101 } 102 103 peerControler.addPeerListener(new PeerPropertyChangeListener()); 104 93 peerControler.add(peerStatusListener); 105 94 106 95 senderControler.setPipe(pipe); … … 228 217 229 218 protected void changeOrder(Order order) { 230 LogFactory.getLog(getClass()).debug("set order to " + order); 231 this.order = order; 232 nodeStatusProvider.fireNodeStatus(); 219 if (!this.order.equals(order)) { 220 LogFactory.getLog(getClass()).debug("set order to " + order); 221 this.order = order; 222 nodeStatusProvider.fireNodeStatus(); 223 } 233 224 } 234 225 235 226 private final StatusProvider nodeStatusProvider = new StatusProvider(); 227 228 public StatusProvider getNodeStatusProvider() { 229 return nodeStatusProvider; 230 } 236 231 237 232 class StatusProvider implements NodeStatusProvider { 238 233 239 private NodeStatusSupport support = new NodeStatusSupport(); 234 private final NodeStatusSupport support = new NodeStatusSupport(); 235 236 public NodeIdentifier getNodeIdentifier() { 237 return identifier; 238 } 240 239 241 240 public void add(NodeStatusListener listener) { … … 307 306 return ToStringBuilder.reflectionToString(this); 308 307 } 309 310 class PeerPropertyChangeListener implements PropertyChangeListener{311 312 public void p ropertyChange(PropertyChangeEvent event) {313 LogFactory.getLog(getClass()).debug("receive " + event);314 Peer peer = (Peer) event.getSource();315 if (peer.isConnected()316 && peer.getConnection().getType().equals(317 PeerConnection.Type.SOURCE)) {318 changeOrder(peer.getOrder().lower());308 309 private PeerStatusListener peerStatusListener = new PeerStatusListener() { 310 311 public void peerStatusChanged(PeerStatusEvent event) { 312 PeerStatus status = event.getStatus(); 313 if (event.getSource() instanceof PeerReceivingConnection) { 314 PeerReceivingConnection connection = (PeerReceivingConnection) event.getSource(); 315 if (connection.getStatus().equals(PeerConnection.Status.ACTIVATED)) { 316 changeOrder(status.getOrder().lower()); 317 } 319 318 } 320 319 } 321 322 } 320 321 }; 323 322 324 323 } trunk/source/org/kolaka/freecast/node/DefaultNodeIdentifier.java
r71 r309 59 59 return new HashCodeBuilder().append(value).toHashCode(); 60 60 } 61 62 public long longValue() { 63 return value; 64 } 61 65 62 66 public String toString() { trunk/source/org/kolaka/freecast/node/Node.java
r71 r309 24 24 package org.kolaka.freecast.node; 25 25 26 import org.kolaka.freecast.node.DefaultNode.StatusProvider; 26 27 import org.kolaka.freecast.peer.PeerControler; 27 28 import org.kolaka.freecast.peer.PeerReference; … … 53 54 54 55 public NodeStatus getNodeStatus(); 56 57 StatusProvider getNodeStatusProvider(); 55 58 56 59 public void checkQoS(); trunk/source/org/kolaka/freecast/node/NodeIdentifier.java
r71 r309 43 43 public abstract boolean equals(NodeIdentifier identifier); 44 44 45 public abstract int hashCode();45 public abstract long longValue(); 46 46 47 47 public String toString() { trunk/source/org/kolaka/freecast/node/NodeStatusProvider.java
r71 r309 33 33 public interface NodeStatusProvider { 34 34 35 public NodeIdentifier getNodeIdentifier(); 36 35 37 public NodeStatus getNodeStatus(); 36 38 trunk/source/org/kolaka/freecast/node/Order.java
r71 r309 80 80 return new Order(value + 1); 81 81 } 82 83 /** 84 * Note that order:1 is lower than order:0 .. 85 * 86 * @param other 87 * @return 88 */ 89 public boolean isLower(Order other) { 90 return value > other.value; 91 } 82 92 83 93 public static Order getInstance(int value) { trunk/source/org/kolaka/freecast/packet/DefaultPacket.java
r71 r309 79 79 return other != null && sequenceNumber == other.sequenceNumber; 80 80 } 81 82 public int hashCode() { 83 return (int) (sequenceNumber % Integer.MAX_VALUE); 84 } 81 85 82 86 public String toString() { trunk/source/org/kolaka/freecast/packet/LogicalPageBuilder.java
r71 r309 28 28 import org.apache.commons.lang.Validate; 29 29 import org.apache.commons.lang.builder.ToStringBuilder; 30 import org.apache.commons.logging.LogFactory; 30 31 import org.kolaka.freecast.collections.SortedList; 31 32 … … 54 55 55 56 public void add(Packet packet) { 57 if (packets.contains(packet)) { 58 LogFactory.getLog(getClass()).debug("duplicate packet received: " + packet); 59 return; 60 } 56 61 packets.add(packet); 57 62 } trunk/source/org/kolaka/freecast/packet/Packet.java
r71 r309 31 31 public interface Packet extends SequenceElement, PacketData { 32 32 33 public static final int DEFAULT_SIZE = 1 024;33 public static final int DEFAULT_SIZE = 1300; 34 34 35 35 public Checksum getChecksum(); trunk/source/org/kolaka/freecast/peer/BasePeerConnection1.java
r254 r309 48 48 import org.kolaka.freecast.transport.ProxyMessageWriter; 49 49 50 public abstract class BasePeerConnection implements PeerConnection{50 public abstract class BasePeerConnection1 extends BasePeerConnection implements PeerConnection1 { 51 51 52 52 private Peer peer; … … 55 55 56 56 // private PeerReference peerReference; 57 private final PeerConnection.Type type; 58 59 private PeerConnection.Status status = PeerConnection.Status.OPENING; 57 private final PeerConnection1.Type type; 60 58 61 59 private MessageWriter writer; … … 63 61 private MessageReader reader; 64 62 65 protected BasePeerConnection (PeerConnection.Type type) {63 protected BasePeerConnection1(PeerConnection1.Type type) { 66 64 this.type = type; 67 65 } 68 66 69 public PeerConnection .Type getType() {67 public PeerConnection1.Type getType() { 70 68 return type; 71 }72 73 public PeerConnection.Status getStatus() {74 return status;75 69 } 76 70 … … 88 82 } 89 83 90 protected void setStatus(PeerConnection.Status status) {91 if (ObjectUtils.equals(status, this.status)) {92 return;93 }94 95 LogFactory.getLog(getClass()).debug("set status " + status);96 97 this.status = status;98 support.fireStatus(status);99 }100 101 84 private void sendStatus(PeerConnection.Status status) { 102 85 SendStatusTask sendStatus = new SendStatusTask(status); … … 119 102 this.timer = timer; 120 103 } 104 105 public PeerStatus getRemoteStatus() { 106 return getLastPeerStatus(); 107 } 121 108 122 109 public PeerStatus getLastPeerStatus() { … … 137 124 lastPeerStatusUpdate = timeBase.currentTimeMillis(); 138 125 if (peer != null) { 139 peer.update(status);126 ((MutablePeer) peer).update(status); 140 127 } else { 141 128 lastPeerStatus = status; … … 201 188 * messages 202 189 */ 203 if (type.equals(PeerConnection .Type.RELAY)) {190 if (type.equals(PeerConnection1.Type.RELAY)) { 204 191 receiveLoop = new ReceiveLoop(); 205 192 timer.execute(receiveLoop); … … 213 200 public void close() { 214 201 LogFactory.getLog(getClass()).debug("close"); 215 if ( status.equals(PeerConnection.Status.CLOSING) || status.equals(PeerConnection.Status.CLOSED)) {202 if (getStatus().equals(PeerConnection.Status.CLOSING) || getStatus().equals(PeerConnection.Status.CLOSED)) { 216 203 return; 217 204 } … … 256 243 protected abstract void disposeImpl() throws PeerConnectionException; 257 244 258 private PeerConnectionStatusSupport support = new PeerConnectionStatusSupport(this);259 260 public void add(PeerConnectionStatusListener listener) {261 support.add(listener);262 }263 264 public void remove(PeerConnectionStatusListener listener) {265 support.remove(listener);266 }267 268 269 245 class FilterWriter extends ProxyMessageWriter { 270 246 … … 274 250 275 251 public int write(Message message) throws IOException { 276 if ( status.equals(PeerConnection.Status.CLOSED)) {277 throw new NotOpenConnectionException( status);252 if (getStatus().equals(PeerConnection.Status.CLOSED)) { 253 throw new NotOpenConnectionException(getStatus()); 278 254 } 279 255 … … 291 267 292 268 private void checkClosed() throws EOFException { 293 if ( status.equals(PeerConnection.Status.CLOSED)) {269 if (getStatus().equals(PeerConnection.Status.CLOSED)) { 294 270 throw new EOFException("connection is closed"); 295 271 } … … 348 324 349 325 public void run() { 350 NDC.push(BasePeerConnection .this.toString());326 NDC.push(BasePeerConnection1.this.toString()); 351 327 352 328 try { … … 424 400 message = getReader().read(); 425 401 } catch (EOFException e) { 426 if ( status.equals(PeerConnection.Status.CLOSED)) {402 if (getStatus().equals(PeerConnection.Status.CLOSED)) { 427 403 LogFactory.getLog(getClass()).debug( 428 404 "reader stopped for " + this, e); … … 433 409 "connection read stream ended", e); 434 410 } catch (IOException e) { 435 if ( status.equals(PeerConnection.Status.CLOSED)) {411 if (getStatus().equals(PeerConnection.Status.CLOSED)) { 436 412 LogFactory.getLog(getClass()).debug( 437 413 "reader stopped for " + this, e); … … 454 430 long now = timeBase.currentTimeMillis(); 455 431 if (now - lastPeerStatusUpdate > DefaultTimer.minutes(1)) { 456 String msg = "status update timeout on " + BasePeerConnection .this432 String msg = "status update timeout on " + BasePeerConnection1.this 457 433 + ", connection is disposed"; 458 434 LogFactory.getLog(getClass()).info(msg); trunk/source/org/kolaka/freecast/peer/ConfigurablePeerControler.java
r71 r309 38 38 public void register(PeerConnectionFactory factory); 39 39 40 public void register(PeerConnectionSource source);41 42 40 } trunk/source/org/kolaka/freecast/peer/DefaultPeer.java
r71 r309 24 24 package org.kolaka.freecast.peer; 25 25 26 import java.beans.PropertyChangeListener; 27 import java.beans.PropertyChangeSupport; 26 import java.util.HashSet; 27 import java.util.Iterator; 28 import java.util.Set; 28 29 29 30 import org.apache.commons.lang.ObjectUtils; 30 import org.apache.commons.lang.Validate;31 31 import org.apache.commons.lang.builder.HashCodeBuilder; 32 32 import org.apache.commons.lang.builder.ToStringBuilder; … … 34 34 import org.kolaka.freecast.node.NodeIdentifier; 35 35 import org.kolaka.freecast.node.Order; 36 import org.kolaka.freecast.peer.event.Peer ConnectionStatusEvent;37 import org.kolaka.freecast.peer.event.Peer ConnectionStatusListener;36 import org.kolaka.freecast.peer.event.PeerStatusEvent; 37 import org.kolaka.freecast.peer.event.PeerStatusListener; 38 38 39 39 /** … … 42 42 * @author <a href="mailto:alban.peignier@free.fr">Alban Peignier </a> 43 43 */ 44 public class DefaultPeer implements Peer {44 public class DefaultPeer implements MutablePeer { 45 45 46 /**47 * Identifies of the <code>Node</code> designed by this <code>Peer</code>.48 * Can be null if unknown.49 */50 46 private NodeIdentifier identifier; 51 52 47 private PeerReference reference; 53 54 48 private Order order; 55 56 private ConnectivityScoring connectivityScoring; 49 private long latency = INFINITE_LATENCY; 57 50 58 51 &nbs
