Your certificates aren't set up correctly - the check-certificates.sh script will confirm this.
On Fri, Jul 9, 2010 at 07:21, malachid <[email protected]> wrote: > I have the server built (ant all). Server appears to be running (I > think... stack trace below). > When I connect via the command-line client, it works and I can see > logs output showing the connection. > When I try to connect via the web interface, I get a 404 and no logs > are output.... > > Here's the stack: > > mala...@rplab1:/opt/wave-protocol$ ./run-server.sh > Jul 8, 2010 2:18:43 PM > org.waveprotocol.wave.examples.fedone.waveserver.WaveServerImpl <init> > INFO: Wave Server configured to host local domains: [rplab1] > Jul 8, 2010 2:18:43 PM > org.waveprotocol.wave.examples.fedone.waveserver.WaveServerImpl <init> > SEVERE: Failed to add our own signer info to the certificate store > org.waveprotocol.wave.crypto.SignatureException: Certificate > validation failure > at > org.waveprotocol.wave.crypto.CachedCertPathValidator.validateNoCache(CachedCertPathValidator.java: > 103) > at > org.waveprotocol.wave.crypto.CachedCertPathValidator.validate(CachedCertPathValidator.java: > 65) > at > org.waveprotocol.wave.crypto.WaveSignatureVerifier.verifySignerInfo(WaveSignatureVerifier.java: > 129) > at > org.waveprotocol.wave.examples.fedone.waveserver.CertificateManagerImpl.storeSignerInfo(CertificateManagerImpl.java: > 199) > at > org.waveprotocol.wave.examples.fedone.waveserver.WaveServerImpl.<init>(WaveServerImpl.java: > 453) > at > org.waveprotocol.wave.examples.fedone.waveserver.WaveServerImpl$ > $FastClassByGuice$$8086ed04.newInstance(<generated>) > at > com.google.inject.internal.cglib.reflect.FastConstructor.newInstance(FastConstructor.java: > 40) > at com.google.inject.internal.DefaultConstructionProxyFactory > $1.newInstance(DefaultConstructionProxyFactory.java:59) > at > com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java: > 84) > at com.google.inject.internal.ConstructorBindingImpl > $Factory.get(ConstructorBindingImpl.java:200) > at com.google.inject.internal.ProviderToInternalFactoryAdapter > $1.call(ProviderToInternalFactoryAdapter.java:43) > at > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java: > 878) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java: > 40) > at com.google.inject.Scopes$1$1.get(Scopes.java:64) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java: > 40) > at > com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:53) > at com.google.inject.internal.ProviderToInternalFactoryAdapter > $1.call(ProviderToInternalFactoryAdapter.java:43) > at > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java: > 878) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java: > 40) > at com.google.inject.Scopes$1$1.get(Scopes.java:64) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java: > 40) > at > com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:53) > at > com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java: > 38) > at > com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java: > 62) > at > com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java: > 83) > at com.google.inject.internal.ConstructorBindingImpl > $Factory.get(ConstructorBindingImpl.java:200) > at com.google.inject.internal.ProviderToInternalFactoryAdapter > $1.call(ProviderToInternalFactoryAdapter.java:43) > at > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java: > 878) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java: > 40) > at com.google.inject.Scopes$1$1.get(Scopes.java:64) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java: > 40) > at > com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java: > 38) > at > com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java: > 62) > at > com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java: > 83) > at com.google.inject.internal.ConstructorBindingImpl > $Factory.get(ConstructorBindingImpl.java:200) > at com.google.inject.internal.ProviderToInternalFactoryAdapter > $1.call(ProviderToInternalFactoryAdapter.java:43) > at > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java: > 878) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java: > 40) > at com.google.inject.Scopes$1$1.get(Scopes.java:64) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java: > 40) > at > com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:53) > at > com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java: > 38) > at > com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java: > 62) > at > com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java: > 83) > at com.google.inject.internal.ConstructorBindingImpl > $Factory.get(ConstructorBindingImpl.java:200) > at com.google.inject.internal.ProviderToInternalFactoryAdapter > $1.call(ProviderToInternalFactoryAdapter.java:43) > at > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java: > 878) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java: > 40) > at com.google.inject.Scopes$1$1.get(Scopes.java:64) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java: > 40) > at com.google.inject.internal.InjectorImpl > $4$1.call(InjectorImpl.java:825) > at > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java: > 871) > at com.google.inject.internal.InjectorImpl > $4.get(InjectorImpl.java:821) > at > com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java: > 860) > at > org.waveprotocol.wave.examples.fedone.ServerMain.run(ServerMain.java: > 57) > at > org.waveprotocol.wave.examples.fedone.ServerMain.main(ServerMain.java: > 46) > Caused by: java.security.cert.CertPathValidatorException: subject/ > issuer name chaining check failed > at > sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java: > 153) > at > sun.security.provider.certpath.PKIXCertPathValidator.doValidate(PKIXCertPathValidator.java: > 325) > at > sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java: > 187) > at > java.security.cert.CertPathValidator.validate(CertPathValidator.java: > 267) > at > org.waveprotocol.wave.crypto.CachedCertPathValidator.validateNoCache(CachedCertPathValidator.java: > 101) > ... 55 more > couldn't connect to XMPP server:org.xmpp.component.ComponentException: > conflict > Jul 8, 2010 2:18:43 PM > org.waveprotocol.wave.examples.fedone.ServerMain run > INFO: Starting server > Jul 8, 2010 2:18:43 PM > org.waveprotocol.wave.examples.fedone.ServerMain main > SEVERE: IOException when running server: Address already in use > mala...@rplab1:/opt/wave-protocol$ ./run-server.sh > Jul 8, 2010 2:21:03 PM > org.waveprotocol.wave.examples.fedone.waveserver.WaveServerImpl <init> > INFO: Wave Server configured to host local domains: [rplab1] > Jul 8, 2010 2:21:03 PM > org.waveprotocol.wave.examples.fedone.waveserver.WaveServerImpl <init> > SEVERE: Failed to add our own signer info to the certificate store > org.waveprotocol.wave.crypto.SignatureException: Certificate > validation failure > at > org.waveprotocol.wave.crypto.CachedCertPathValidator.validateNoCache(CachedCertPathValidator.java: > 103) > at > org.waveprotocol.wave.crypto.CachedCertPathValidator.validate(CachedCertPathValidator.java: > 65) > at > org.waveprotocol.wave.crypto.WaveSignatureVerifier.verifySignerInfo(WaveSignatureVerifier.java: > 129) > at > org.waveprotocol.wave.examples.fedone.waveserver.CertificateManagerImpl.storeSignerInfo(CertificateManagerImpl.java: > 199) > at > org.waveprotocol.wave.examples.fedone.waveserver.WaveServerImpl.<init>(WaveServerImpl.java: > 453) > at > org.waveprotocol.wave.examples.fedone.waveserver.WaveServerImpl$ > $FastClassByGuice$$8086ed04.newInstance(<generated>) > at > com.google.inject.internal.cglib.reflect.FastConstructor.newInstance(FastConstructor.java: > 40) > at com.google.inject.internal.DefaultConstructionProxyFactory > $1.newInstance(DefaultConstructionProxyFactory.java:59) > at > com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java: > 84) > at com.google.inject.internal.ConstructorBindingImpl > $Factory.get(ConstructorBindingImpl.java:200) > at com.google.inject.internal.ProviderToInternalFactoryAdapter > $1.call(ProviderToInternalFactoryAdapter.java:43) > at > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java: > 878) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java: > 40) > at com.google.inject.Scopes$1$1.get(Scopes.java:64) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java: > 40) > at > com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:53) > at com.google.inject.internal.ProviderToInternalFactoryAdapter > $1.call(ProviderToInternalFactoryAdapter.java:43) > at > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java: > 878) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java: > 40) > at com.google.inject.Scopes$1$1.get(Scopes.java:64) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java: > 40) > at > com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:53) > at > com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java: > 38) > at > com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java: > 62) > at > com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java: > 83) > at com.google.inject.internal.ConstructorBindingImpl > $Factory.get(ConstructorBindingImpl.java:200) > at com.google.inject.internal.ProviderToInternalFactoryAdapter > $1.call(ProviderToInternalFactoryAdapter.java:43) > at > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java: > 878) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java: > 40) > at com.google.inject.Scopes$1$1.get(Scopes.java:64) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java: > 40) > at > com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java: > 38) > at > com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java: > 62) > at > com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java: > 83) > at com.google.inject.internal.ConstructorBindingImpl > $Factory.get(ConstructorBindingImpl.java:200) > at com.google.inject.internal.ProviderToInternalFactoryAdapter > $1.call(ProviderToInternalFactoryAdapter.java:43) > at > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java: > 878) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java: > 40) > at com.google.inject.Scopes$1$1.get(Scopes.java:64) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java: > 40) > at > com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:53) > at > com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java: > 38) > at > com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java: > 62) > at > com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java: > 83) > at com.google.inject.internal.ConstructorBindingImpl > $Factory.get(ConstructorBindingImpl.java:200) > at com.google.inject.internal.ProviderToInternalFactoryAdapter > $1.call(ProviderToInternalFactoryAdapter.java:43) > at > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java: > 878) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java: > 40) > at com.google.inject.Scopes$1$1.get(Scopes.java:64) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java: > 40) > at com.google.inject.internal.InjectorImpl > $4$1.call(InjectorImpl.java:825) > at > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java: > 871) > at com.google.inject.internal.InjectorImpl > $4.get(InjectorImpl.java:821) > at > com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java: > 860) > at > org.waveprotocol.wave.examples.fedone.ServerMain.run(ServerMain.java: > 57) > at > org.waveprotocol.wave.examples.fedone.ServerMain.main(ServerMain.java: > 46) > Caused by: java.security.cert.CertPathValidatorException: subject/ > issuer name chaining check failed > at > sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java: > 153) > at > sun.security.provider.certpath.PKIXCertPathValidator.doValidate(PKIXCertPathValidator.java: > 325) > at > sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java: > 187) > at > java.security.cert.CertPathValidator.validate(CertPathValidator.java: > 267) > at > org.waveprotocol.wave.crypto.CachedCertPathValidator.validateNoCache(CachedCertPathValidator.java: > 101) > ... 55 more > Jul 8, 2010 2:21:03 PM > org.waveprotocol.wave.federation.xmpp.ComponentPacketTransport > initialize > INFO: Initializing with JID: wave.rplab1.rplab1.enet.sharplabs.com > Jul 8, 2010 2:21:03 PM > org.waveprotocol.wave.federation.xmpp.ComponentPacketTransport start > INFO: Connected to XMPP server with JID: wave.rplab1 > Jul 8, 2010 2:21:03 PM > org.waveprotocol.wave.examples.fedone.ServerMain run > INFO: Starting server > 2010-07-08 14:21:03.561:DBUG::Logging to StdErrLog::DEBUG=true via > org.eclipse.jetty.util.log.StdErrLog > 2010-07-08 14:21:03.561:DBUG::Container > org.eclipse.jetty.server.ser...@13f136e + > selectchannelconnec...@rplab1:9898 as connector > 2010-07-08 14:21:03.578:DBUG::Container > org.eclipse.jetty.server.ser...@13f136e + > servletcontexthand...@6b496d@6b496d/,file:/opt/wave-protocol/war/ as > handler > 2010-07-08 14:21:03.592:DBUG::filterNameMap={} > 2010-07-08 14:21:03.592:DBUG::pathFilters=null > 2010-07-08 14:21:03.593:DBUG::servletFilterMap=null > 2010-07-08 14:21:03.593:DBUG::servletPathMap={/ > socket=org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider > $WaveWebSocketServlet-27660658} > 2010-07-08 > 14:21:03.593:DBUG::servletNameMap={org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider > $WaveWebSocketServlet-27660658=org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider > $WaveWebSocketServlet-27660658} > 2010-07-08 14:21:03.598:DBUG::filterNameMap={} > 2010-07-08 14:21:03.598:DBUG::pathFilters=null > 2010-07-08 14:21:03.598:DBUG::servletFilterMap=null > 2010-07-08 14:21:03.598:DBUG::servletPathMap={/ > socket=org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider > $WaveWebSocketServlet-27660658, / > *=org.eclipse.jetty.servlet.DefaultServlet-26670261} > 2010-07-08 > 14:21:03.598:DBUG::servletNameMap={org.eclipse.jetty.servlet.DefaultServlet-26670261=org.eclipse.jetty.servlet.DefaultServlet-26670261, > org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider > $WaveWebSocketServlet-27660658=org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider > $WaveWebSocketServlet-27660658} > 2010-07-08 14:21:03.599:DBUG::Starting > org.eclipse.jetty.server.ser...@13f136e > 2010-07-08 14:21:03.599:INFO::jetty-0.3 > 2010-07-08 14:21:03.615:DBUG::Container > org.eclipse.jetty.server.ser...@13f136e + qtp30167145{8<=0<=0/254,-1} > as threadpool > 2010-07-08 14:21:03.616:DBUG::Starting qtp30167145{8<=0<=0/254,-1} > 2010-07-08 14:21:03.617:DBUG::STARTED qtp30167145{8<=7<=8/254,0} > 2010-07-08 14:21:03.618:DBUG::Starting > servletcontexthand...@6b496d@6b496d/,file:/opt/wave-protocol/war/ > 2010-07-08 14:21:03.626:DBUG::Container > servletcontexthand...@6b496d@6b496d/,file:/opt/wave-protocol/war/ + > servlethand...@17b4703@ as handler > 2010-07-08 14:21:03.626:DBUG::Container servlethand...@17b4703@ + > org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider > $WaveWebSocketServlet-27660658 as servlet > 2010-07-08 14:21:03.626:DBUG::Container servlethand...@17b4703@ + > org.eclipse.jetty.servlet.DefaultServlet-26670261 as servlet > 2010-07-08 14:21:03.626:DBUG::Container servlethand...@17b4703@ + [/ > socket]=>org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider > $WaveWebSocketServlet-27660658 as servletMapping > 2010-07-08 14:21:03.626:DBUG::Container servlethand...@17b4703@ + [/ > *]=>org.eclipse.jetty.servlet.DefaultServlet-26670261 as > servletMapping > 2010-07-08 14:21:03.626:DBUG::Starting servlethand...@17b4703@ > 2010-07-08 14:21:03.626:DBUG::filterNameMap={} > 2010-07-08 14:21:03.626:DBUG::pathFilters=null > 2010-07-08 14:21:03.626:DBUG::servletFilterMap=null > 2010-07-08 14:21:03.626:DBUG::servletPathMap={/ > socket=org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider > $WaveWebSocketServlet-27660658, / > *=org.eclipse.jetty.servlet.DefaultServlet-26670261} > 2010-07-08 > 14:21:03.626:DBUG::servletNameMap={org.eclipse.jetty.servlet.DefaultServlet-26670261=org.eclipse.jetty.servlet.DefaultServlet-26670261, > org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider > $WaveWebSocketServlet-27660658=org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider > $WaveWebSocketServlet-27660658} > 2010-07-08 14:21:03.626:DBUG::starting servlethand...@17b4703@ > 2010-07-08 14:21:03.627:DBUG::STARTED servlethand...@17b4703@ > 2010-07-08 14:21:03.627:DBUG::starting > servletcontexthand...@6b496d@6b496d/,file:/opt/wave-protocol/war/ > 2010-07-08 14:21:03.627:DBUG::Starting > org.eclipse.jetty.servlet.DefaultServlet-26670261 > 2010-07-08 14:21:03.628:DBUG::Starting > org.eclipse.jetty.servlet.nioresourceca...@15db13f > 2010-07-08 14:21:03.628:DBUG::STARTED > org.eclipse.jetty.servlet.nioresourceca...@15db13f > 2010-07-08 14:21:03.628:DBUG::resource base = null > 2010-07-08 14:21:03.629:DBUG::STARTED > org.eclipse.jetty.servlet.DefaultServlet-26670261 > 2010-07-08 14:21:03.629:DBUG::Starting > org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider > $WaveWebSocketServlet-27660658 > 2010-07-08 14:21:03.630:DBUG::STARTED > org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider > $WaveWebSocketServlet-27660658 > 2010-07-08 14:21:03.630:DBUG::STARTED > servletcontexthand...@6b496d@6b496d/,file:/opt/wave-protocol/war/ > 2010-07-08 14:21:03.630:DBUG::starting > org.eclipse.jetty.server.ser...@13f136e > 2010-07-08 14:21:03.630:DBUG::Starting > selectchannelconnec...@rplab1:9898 > 2010-07-08 14:21:03.630:DBUG::Starting > org.eclipse.jetty.server.nio.selectchannelconnecto...@3afb99 > 2010-07-08 14:21:03.635:DBUG::STARTED > org.eclipse.jetty.server.nio.selectchannelconnecto...@3afb99 > 2010-07-08 14:21:03.636:INFO::Started > selectchannelconnec...@rplab1:9898 > 2010-07-08 14:21:03.636:DBUG::STARTED > selectchannelconnec...@rplab1:9898 > org.eclipse.jetty.server.ser...@13f136e STOPPED > +-servletcontexthand...@6b496d@6b496d/,file:/opt/wave-protocol/war/ > started > +-servlethand...@17b4703 started > +-null > +-[/ > socket]=>org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider > $WaveWebSocketServlet-27660658 > +-[/*]=>org.eclipse.jetty.servlet.DefaultServlet-26670261 > > 2010-07-08 14:21:03.637:DBUG::STARTED > org.eclipse.jetty.server.ser...@13f136e > > > > On May 26, 11:39 pm, "J.D. Zamfirescu" <[email protected]> wrote: >> Hi group! >> >> We've just pushed a first working version of our Simple Web Client, >> complete with our Rich Text Editor integrated and an updated FedOne >> that speaks the draft client-server protocol. This code lives in the >> branch "io2010", available >> here:http://code.google.com/p/wave-protocol/source/checkout?repo=io2010 >> >> We wanted to get this code out to you as soon as possible, despite >> some (very) rough edges. The code we've pushed is functional and >> federates with wavesandbox.com, but there are a number of caveats. >> >> First, here is what we're releasing today: >> >> • The Wave Rich-Text Editor >> • A client-side concurrency control module (aka "CC stack"), which >> coordinates the communication of deltas between a Wave client and a >> Wave server. >> • A Simple Web Client that combines the Rich-Text Editor and CC stack >> together with a simplistic "login" system and wave selection panel. >> (If you're familiar with FedOne, think of this as the web version of >> the FedOne console client, albeit with real-time editing.) >> • An updated FedOne that serves the new client-server protocol and >> hosts the simple web client. >> >> All this code requires GWT on the client, so we've added GWT to the >> mercurial repository. Once you have run the new FedOne server, by >> default the new web client will be available on port 9898. The web >> client requires a browser that supports WebSocket - currently Chrome >> and Webkit nightly builds. >> >> Next, the caveats: >> >> • The Simple Web Client uses the new conversation model but only >> implements a very basic subset of its features: a single root thread >> and its component blips. >> • The client-server connection remains fragile - the CC stack supports >> handling reconnecting when the underlying connection drops, but we >> haven't yet hooked up this logic, and the FedOne server doesn't >> support it well yet. >> • The index wave (the equivalent of the "inbox" in FedOne) still uses >> an older version of the Wave model. >> • Tests are broken all over the place. This is unfortunate, but we're >> aware of it, and are committed to fixing them. We just wanted to >> release this code ASAP. Fixed tests to follow. >> • The client-server protocol has been changed, but still isn't in it's >> final form. We'll be making more changes to it in the near future. >> >> Once the above issues have been addressed, we'll be moving the code to >> the main repository - for now, development will be in the open on the >> io2010 branch. Stay tuned for fixes to these issues soon. >> >> Happy hacking! >> >> Anthony Baxter and J.D. Zamfirescu >> Google Wave > > -- > You received this message because you are subscribed to the Google Groups > "Wave Protocol" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/wave-protocol?hl=en. > > -- Anthony Baxter, [email protected] -- You received this message because you are subscribed to the Google Groups "Wave Protocol" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/wave-protocol?hl=en.
