|
Installation
Installation Instructions
IntroductionInstalling the open source Google Wave Federation Prototype Server The open source Wave Federation Prototype Server is delivered as a Java application that conforms to XEP-0114, the Jabber Component Protocol. The first step in running the Federation Prototype Server (FedOne) is to install an XMPP server that is XEP-0114 compatible. Follow the instructions below for your server of choice: There are many XEP-0114 compatible XMPP servers and we don't have instructions for all of them. Please contribute instructions if you have them for a server we don't have listed. See Submitting Code. Install JavaThe FedOne server is written in Java, so you will have to have Java installed. Mac OSXFor Mac OSX you will need to download Java 6 from http://developer.apple.com/java/download/. After installing Java you will need to set the following environment variables: $ export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home $ export PATH=$JAVA_HOME/bin:$PATH Now visit the [http://www.igniterealtime.org/downloads/index.jsp Openfire web site] and download and install the Mac OSX version of Openfire. Debian/UbuntuInstall Java 6: $ apt-get install sun-java6-jdk sun-java6-fonts Configure Your XMPP ServerThe FedOne server runs as a separate process that communicates with the XMPP server. For that communication to take place the XMPP server has to be notified of which port the FedOne extension will be using and also will need a shared secret for security purposes. In your XMPP server enable external components on port 5275 and a default shared secret of your own choosing. The extesion should be named wave.<domain-name> where <domain-name> is the domain name of your XMPP server. You will also need to enable Server Dialback for server to server communication. Each type of XMPP server is configured differently, so look to their specific installation instructions for details. SecurityThe following changes are not required for the wave extension to work, but are good practices if you are running a public facing XMPP server.
Wave Extension InstallationNow pull all the source for the Federation Prototype Server: $ hg clone https://wave-protocol.googlecode.com/hg/ wave-protocol $ cd wave-protocol $ ant If the build is successful you should see: BUILD SUCCESSFUL Total time: NN minutes MM seconds To run the extension you will need some of the parameters you used to set up the XMPP server. They are the extension port, the extension shared secret, the server name, and finally the component name which is "wave". The wave server requires a set of certificates used for signing deltas. Please see the [http://code.google.com/p/wave-protocol/wiki/Certificates certificates wiki page] on generating these. Copy the run-config.sh.example to run-config.sh, then edit run-config.sh to configure it to your setup. The arguments passed to the server are:
When you're done editing the script, run check-certificates.sh to verify that the certificates are configured correctly: $ ./check-certificates.sh If that runs successfully then run the server: $ ./run-server.sh ProblemsConnection RefusedOn startup you may encounter this error: couldn't connect to XMPP server:org.xmpp.component.ComponentException: java.net.ConnectException: Connection refused Aug 26, 2009 6:16:30 PM org.waveprotocol.wave.examples.fedone.ServerMain run INFO: Starting server When the Federation extension starts up it looks for the XEP-0014 compatible XMPP server to talk to, which is does by first looking up its name in DNS. If you happen to be running behind a NAT and the Federation extension and the XMPP server are on the same server then you want the domain name to resolve to 127.0.0.1 locally. The way to do this is to add that name lookup into your /etc/hosts file. If your domain name is example.com then add the following two lines to your /etc/hosts file: 127.0.0.1 example.com 127.0.0.1 wave.example.com Running the clientThe configuration in run-config.sh is used by the client too, so nothing extra should be necessary to run the client: $ ./run-client-console.sh <username> ConsoleClient outlines the operation of the client. Once you have that up and running try getting your server to federate. Java is a registered trademark of Sun Microsystems, Inc. |
Java 6 for Mac OS 10.4 might be problematic. I found this website has usable binaries: http://landonf.bikemonkey.org/static/soylatte/ with which I was able to build the protocol server in Eclipse 3.3 on a MacBook? running 10.4. Just open the tarball and tell Eclipse where the JRE is to be found.
I got it running on gentoo. You have to edit /etc/conf.d/openfire and select the SDK 1.6.
After you create an admin user, make sure you restart the server or you won't be able to login.
Is the client front end working?
Jul 22, 2009 2:21:02 PM org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider?$Connection <init> INFO: Expecting: waveserver.ProtocolWaveClientRpc?.Open
Exception in thread "pool-1-thread-4" java.lang.IllegalStateException?: Payload (2003896845 bytes) too large for buffer (32768 bytes)
It least on Fedora 10, it turns out that in order to get ./run-client.sh to run, you have to create a symbolic link from $HOME/wave-protocol/third_party to $HOME/wave-protocol/build/core/third-party, and move $HOME/wave-protocol/third_party/runtime/jline/jline-0.9.94.jar to $HOME/wave-protocol/build/core/third-party.
Of course, you should substitute $HOME/wave-protocol for the location of your Wave-Protocol source tree. If all goes well, you should see the Wave Prompt
It's also necessary to move at least $HOME/wave-protocol/third_party/runtime/protobuf/protobuf-java-2.1.0.jar to $HOME/wave-protocol/third_party, and $HOME/wave-protocol/third_party/runtime/google_collect/google-collect-1.0-rc2.jar to $HOME/wave-protocol/third_party to suppress some error messages about org/xmpp/component/ComponentException?, and com/google/common/collect/Maps.
hello everyone, has anyone tried to run it on a Windows machine? I am keep getting an error like: "must supply certificate_private_key", while the installation instructions doesn't contain any information regarding any key. Thanks in advance.
You don't need to move files from third_party/ but instead, modify the run-client.sh script to point to the right directory of those files
@artur: you need to generate a public key & private key for your machine. I figured out how to do that. But when I try with that I am getting
java.security.spec.InvalidKeySpecException?: java.security.InvalidKeyException?: IOException : DerInputStream?.getLength(): lengthTag=100, too big
Will post back as soon as I find something. If anyone got it working in windows, pls post here.
Thanks in advance
I believe it a x.509 cert that it needs, can anyone confirm ?
thx
Despite following this guide to the letter, and only deviating when necessary (i.e. to select a custom "secret", domain name and certificate/key pair), I have discovered that although it is possible to successfully connect the Wave Server to OpenFire? - see the table below for the output:
It appears that I can connect to OpenFire? on TCP port 5222 successfully, and the vertical bar is displayed, although upon attempting to create a new Wave, the following output is produced, and no new Wave-related output can be found in the Wave Server log:
23-Jul-2009 01:59:34 org.waveprotocol.wave.examples.fedone.rpc.ClientRpcChannel? callMethod INFO: Calling a new RPC (seq 2), method waveserver.ProtocolWaveClientRpc?.Submit for java.nio.channels.SocketChannel?local=/94.196.217.47:57331 remote=open.house404.co.uk/94.196.217.47:5222? 23-Jul-2009 01:59:34 org.waveprotocol.wave.examples.fedone.rpc.SequencedProtoChannel? sendMessage INFO: Sending message (waveserver.ProtocolSubmitRequest?, seq 2) to: java.nio.channels.SocketChannel?local=/94.196.217.47:57331 remote=open.house404.co.uk/94.196.217.47:5222? Exception in thread "main" java.lang.IllegalStateException?: java.io.IOException: Broken pipe
Caused by: java.io.IOException: Broken pipeHowever, I can connect to the Wave Server using the Wave Client on TCP port 3456, and create new Waves, although a connection attempt is not displayed in the OpenFire? control panel.
I am invoking the Wave Server as follows: java -jar fedone-0.2.jar --client_frontend_hostname=open.house404.co.uk --client_frontend_port=3456 --xmpp_component_name=wave --xmpp_server_hostname=open.house404.co.uk --xmpp_server_ip=127.0.0.1 --xmpp_server_port=5275 --xmpp_server_secret=TheWaveSecret? --certificate_domain=open.house404.co.uk --certificate_files=WaveCert?.cert --waveserver_disable_verification=true --certificate_private_key=WaveCert?.key --xmpp_server_ping=open.house404.co.uk
I am invoking the Wave Client, as follows (from $HOME/wave_protocol): ./run-client.sh admin@open.house404.co.uk open.house404.co.uk 5222
There is a problem with the command for running the extension. The format for the arguments should all be
--argument1_name=value --argument2_name=value
For example, xmpp_server_secret and client_frontend_port are missing equal signs.
Also, it doesn't add certificate_domain, certificate_files, certificate_private_key, and waveserver_disable_verification.
All in all my command looked like this
java -jar fedone-0.2.jar --client_frontend_hostname=wave.domain.com --client_frontend_port=3456 --xmpp_component_name=wave --xmpp_server_hostname=domain.com --xmpp_server_ip=192.168.0.1 --xmpp_server_port=5275 --xmpp_server_secret=secret_from_openfire --xmpp_server_ping="" --certificate_files=/path/to/wave.cert --certificate_private_key=/path/to/wave.key --certificate_domain=wave.domain.com --waveserver_disable_verification=true
Some of my values are obviously examples. Let me know if anyone has questions about any of them.
Does anyone know, is this what the run-server.sh file is meant to do? or is the "server" something separate from the "federation server"?
(the wiki really needs a Preview option)
@sudhakar.sw thanks for the advice. I have generated the keys using OpenSSL on Windows and it worked nicely.
Anyone has faced this issue, this is the command that I running from the command line:
java -jar dist/fedone-0.2.jar --client_frontend_hostname=primary.initech-corp.com --client_frontend_port=3456 --xmpp_component_name=wave --xmpp_server_hostname=initech-corp.com --xmpp_server_ip=127.0.0.1 --xmpp_server_port=5275 --xmpp_server_secret=foobar --xmpp_server_ping="" --waveserver_disable_verification=true --certificate_private_key=test.key --certificate_files=test.cert --certificate_domain=acmewave.com
The server starts OK, but then it prints something like this to the console:
"WARNING: SIGNATURE VERIFICATION DISABLED see flag "waveserver_disable_veri fication" Jul 23, 2009 3:51:27 PM org.waveprotocol.wave.examples.fedone.waveserver.WaveSer? verImpl <init> INFO: Wave Server configured to host local domains: acmewave.com? Jul 23, 2009 3:51:27 PM org.waveprotocol.wave.examples.fedone.ServerMain?$RpcInet? SocketAddressFactory? <init> INFO: Starting client frontend on host: primary.initech-corp.com port: 3456 Jul 23, 2009 3:51:28 PM org.waveprotocol.wave.examples.fedone.federation.xmpp.Wa veXmppComponent initialize INFO: initializing with JID: wave.initech-corp.com.acmewave.com Jul 23, 2009 3:51:28 PM org.waveprotocol.wave.examples.fedone.federation.xmpp.Wa veXmppComponent start INFO: connected to XMPP server with JID: wave.initech-corp.com Jul 23, 2009 3:51:28 PM org.waveprotocol.wave.examples.fedone.ServerMain? run INFO: Starting server Jul 23, 2009 3:51:28 PM org.waveprotocol.wave.examples.fedone.federation.xmpp.Wa veXmppComponent processPacket INFO: received XMPP packet:
<iq type="get" id="701-6" from="component.acmewave.com" to="wave.initech-corp.co m.acmewave.com">
</iq> Jul 23, 2009 3:51:28 PM org.waveprotocol.wave.examples.fedone.ServerMain? main SEVERE: IOException when running client: Cannot assign requested address: bind Jul 23, 2009 3:51:28 PM org.waveprotocol.wave.examples.fedone.federation.xmpp.Wa veXmppComponent sendPacket INFO: sent XMPP packet: <iq type="result" id="701-6" from="wave.initech-corp.com.acmewave.com" to="compo nent.acmewave.com"> </iq>"My concern is this line:
"SEVERE: IOException when running client: Cannot assign requested address: bind"
I am not sure where it tries to connect, to which address. Any help would be very much appreciated.
By the way when running the client it connects to the server, but then, when I am trying to create a new wave it crashes with a huge stack trace.
@artur: check port 3456 & 5275. Some other process is using these ports.
BTW: I am facing the same error as kugutsumen Exception in thread "pool-1-thread-4" java.lang.IllegalStateException??: Payload (2003896845 bytes) too large for buffer (32768 bytes)
could someone be so nice as to set up a virtual server with this thing and ready to use?
Same error as sudhakar.sw and kugutsumen
@artur what format are the keys tou are using der, pem?
when connected with client and creating wave with /new command client crashes and I see message Payload (542393671 bytes) too large for buffer (32768 bytes) in stack trace on server
@oil.crayons but when connected directly to fedone on port 3456, instead of 5222, it works nice. that payload exception should be some misconfiguration with openfire-fedone connection, didn't figured what yet.
It seems that I may have discovered a bug in the client, or a connectivity issue that prevents the client from successfully creating a new Wave on the server - it appears that instead of sending a contiguous stream of XML during Wave creation/initialisation, packets containing single characters are "dripped" slowly before a packet containing a payload similar to the following is sent, and the client unceremoniously explodes:
0000 50 72 6f 74 6f 63 6f 6c 4f 70 65 6e 52 65 71 75 ProtocolOpenRequ? 0010 65 73 74 29 0a 19 61 64 6d 69 6e 40 6f 70 65 6e est)..admin@open 0020 2e 68 6f 75 73 65 34 30 34 2e 63 6f 2e 75 6b 12 .house404.co.uk. 0030 0a 21 69 6e 64 65 78 77 61 76 65 1a 00 .!indexwave..
The payload trace is supposed to look like this, assuming that the comment form processor doesn't completely destroy the content of this post, for the 4th time around...:
0000 50 72 6f 74 6f 63 6f 6c 4f 70 65 6e 52 65 71 75 ProtocolOpenRequ
0010 65 73 74 29 0a 19 61 64 6d 69 6e 40 6f 70 65 6e est)..admin@open
0020 2e 68 6f 75 73 65 34 30 34 2e 63 6f 2e 75 6b 12 .house404.co.uk.
0030 0a 21 69 6e 64 65 78 77 61 76 65 1a 00 .!indexwave..
I get this on the server when I try and create a new wave:
I try to run fedone-0.2.jar and I get this:
any way to test the server w/o a distinct DNS name?
Nice! Was a walk in the park to get it to work under archlinux (x86_64).
I used my local hostname in place of a domain name, which suffices for local testing. (That's all I am going to do atm anyway.)
I was slightly put off by all this Java bloat (excuse my English). Make no mistake, Java probably IS the right choice for such a thing if you want to gain acceptance in the commercial market. Wrong choice however, if highly skilled hackers tinkerers are also to be attracted to this piece of technology... I personally know several very skilled hackers proficient in C, Python, Lua, Haskell, Lisp, Scheme... Almost all of whom have been exposed to Java at some point in their lives and love to hate it. (Same thing with C++ by the way.)
I am taking bets about what language the first full featured port of wave server is going to be in. I'd say Erlang or possibly Clojure. I'd love to see someone pulling off a fully featured version in pure C though.
Will i be able to use my plain domainname (wave address as dude@example.com), like I do with my mail address or I need a subdomain on wave addresses (dude@wave.example.com)? I think that the possibility to have same wave and mail address would be great!
I got the server running, and when I say /new in the client, the server shows about the same as what mattr...@folkwolf.net said a few posts above I want to open the new wave and tried alot of things as id for /open <id>, however it keeps saying that its an invalid id anyone can tell me how to find the right id?
Once you create a /new wave, an id of 0 is assigned, incrementing with each /new wave. then, you can /open 0 and so on.
I have a question, is there a web front-end to this wave server, or is it just cli now? Also, how can i begin to develop?
Thanks
I belive i have server/client set up correctly - however when I try to create a new wave '/new' i get this error.
org.waveprotocol.wave.examples.fedone.federation.xmpp.Xm ppFederationHost$SubmitResponsePacketListener? onFailure WARNING: submit request to waveserver failed: Remote users may not create wavele ts.
any thoughts on what I have missed?
I think you forgot connecting with the wave-subdomain, you should use for example /connect user@wave.localhost localhost 1234, instead of /connect user@localhost localhost 1234
About my problem 2 posts earlier, phunny.phacts, thanks, I tried this, but it gives me 'Error: id is out of range'. I'm running the client from within eclipse now, it gives that error because index.size() (ConsoleClient.doOpenWave(int id)) is always 0, this size should become bigger with the number of wavelets in the indexWave, however, the indexWave never contains any wavelets, so it always gives this error.
Does anyone know why my indexWave never contains any wavelets?
Installation worked like a charm on Debian. Running the client, tried /new and /open all works fine.
The next step would be to run the Wave Embed sample against my 'wave' server right?, so i tried this (see http://code.google.com/apis/wave/embe/guide.html) but the browser page stays empty.
Maybe i got the options wrong? i used:
var wavePanel = new WavePanel("<MY_DOMAIN>"); wavePanel.loadWave("<MY_DOMAIN>!<WAVE_ID>");<MY_DOMAIN> is my server (openfire) e.g. example.com The <WAVE_ID> i got from the client after /new is like w+MM0jD6JCXSpB so the option to loadWave is "example.com!w+MM0jD6JCXSpB" right ?
Any thoughts on what i'm missing here ?
thank you SIMSLIM - wave.localhost was what i was missing!
Hi all,
best
My bad I was exited about the WAVE so i did not read lots of things so know i am digging here managed to clone the repo and to make the certificate know i just have to run the sripts
Best
I did it and it looks superfine now the ui part when it will be available
best
And if some one needs help installing wave mail me
Best
Does the server require an X server? i.e. can I install it on X-less Ubuntu?
PS: anyone preparing a VMWare image of this?
Thanks!
No, the server doesn't require X. It even works with ejabberd instead of openfire.
I'm hoping we'll soon have a client which is able to edit the waves, instead of just creating them. I guess I'm just to impatient for this... :-)
@salam.kaser
Best
ps; I suggest you to build it up yourself because it is funny
It would be great it this were packaged into a simple installation. Running on a application platform is great, but for private use I'd love to just run a JAR and have a default Wave configuration running, it would really lower the personal barrier-to-entry. Heck, a simple "install as a Windows service" would be enough for me & mine.
Hah! Grabbed hg & the source code and I noticed the scripts actually just run a JAR. Funny that they'd wrap the thing in a KornShell? script. And I agree with the comments about on certification/DNS nonsense; great for enterprise, bad for simple entry. Let's make those optional.
Just for info. Built on slackware 12.1 pretty painlessly. Had to download and install the JDK 6 from slack/extras and apache ant from http://www.apache.org but otherwise just followed the steps. Usernames with an seem to be problematic.
That would be usernames containing an underscore seem to be problematic.
The next bit would appear to edit the example at http://code.google.com/apis/wave/embed/guide.html to thus embed ones newly created waves. As Rino.van.Wijngaarden points out above the config would appear to be here:
But I see no port references or whether one would need to add a prefix e.g. wave.<MY_DOMAIN>?OK, got it going. Seem to have problems with the Openfire login that resemble this -- http://www.igniterealtime.org/community/thread/35241 -- but Wave does seem to allow a user to create waves, so we're in business!
@peterhd, I have not put anything but my domain of choice (i.e. NOT "wave.") in the run scripts. Running the client script with the simple username as a lone argument works just fine and logs the user in locally.
@claude..., From the way I have things set up, it looks like that is the case. Within the wave sets, when you add a new participant, you type "/add username@domain", just like you would if it was email.
@crazedfred, The good thing about shell scripts is how easy they are to hack around with. I'd much rather have those than most of the alternatives... And they're just referencing "/bin/sh", so they'll probably run just about anywhere...
I'm very curious about how the underlying routing works, and how closely this integrates with XMPP (like all the stuff that is widely used already). I have some reading to do, no doubt...
When installing OpenFire? on my Ubuntu box I keep getting:
"There was an unexpected error encountered when setting the new admin information. Please check your error logs and try to remedy the problem."
at the last step. The openfire logs are empty though:
Apparently the server is running (it serves the web pages at the 9090 port) - but it does not log anything.
I've restarted the server many times by:
Hey, guys, might be a stupid question, but in this installation you say "download the Federation Prototype Server and extract all the contents." But download it where from and extract it where exactly ?
The code can be downloaded from the version control system using mercurial. More detail are in the following page http://code.google.com/p/wave-protocol/source/checkout
> Now download the Federation Prototype Server and extract all the contents.
Link?
@horia
is the link but if you fail with the hg install mercurial packages for ubuntu the command is "sudo apt-get install mercurial"best
Edited example for http://code.google.com/apis/wave/embed/guide.html would be great to have as mentioned twice in above.
When I try to build the source using "ant dist" or just "ant" I get the following error: Buildfile: build.xml
init:
proto_compile:
BUILD FAILED /opt/wave-protocol/build.xml:56: Compile failed; see the compiler error output for details.
Anyone has an idea what is the problem?
I got this running on my Ubuntu. Now can anyone point me how to get a windows client so I can test connecting to the linux server?
so, once server is up and clients can create new waves without problem,
Hi again @kevincantu, yes the script works however I would like to try and embed the wave in a web page.
@epi.salamanca well try to run the client on new terminal with './run_client.sh testuser' or '$ java -jar dist/fedone-client-0.2.jar USERNAME@YOURWAVEDOMAIN? CLIENT_IP_ADDRESS? CLIENT_PORT_NUMBER?' and in terminal command that are know for now are: /new /open x is referring on a number of a wave /add username@yourwavedomain /remove username@yourwavedomain
Same error as sudhakar.sw, kugutsumen and prince.jah
I'm running ejabberd 2.0.5 on MacOSX
@Vaisata i think that you have to compile a google protocol builder then define in a build-proto.properties the location of a GPB location and then build it hope that solves your problems
best
An update, I am running two clients and can communicate between them using a wave as per the examples. The server appeared to crash after being left running, I restarted and logged in as client A, created a wave and /added an user to the wave client B. I then logged in as Client B in a different shell and the wave created by Client A was available in the left hand window. I joined that way and can communicate in a shared fashion. Some points to note. Each 'entry' made into the wave shows as a flash of xml in the left hand window. Still have not managed to embed the wave however.
"Now download the Federation Prototype Server and extract all the contents. " - download it from where ???
@gpp8pVirginia: this is the overall procedure: Install openfire. Download wave stuff via mercurial. Make certificates. Build the wave programs. Edit the launch scripts. Create users via openfire. Then run the server and run a client or two.
@peterhd: that is, indeed, going to be more of a challenge. Has anybody outside of Google gotten a client going via the GWT or on Android?
So I downloaded all the source, and I run ant, and I get this:
Anybody else see this ?
Yey! This is amazing.
I got it working without problems with no Openfire :) I used "Prosody", which is written in lua and weighs (the source) over 50 times less than Openfire. (Also lua librares are many times smaller than JRE - the only problem is, one has to install JDK (not JRE) to run the Wave demo server/client anyway.)
@epi.salamanca: Here's, how I got two clients add each other to waves: having launched the servers (XMPP and the Wave script)?
- open two terminal windows (or screen sessions/whatever)
- run the client script in each, say
term1: "./run-client.sh oneguy" term2: "./run-client.sh sbelse"And, as long as the server is running, you can quit as each client and on next execution, you'll see the waves all the time in place.
Wow! :D
can anyone comment on whether it is possible to run the Wave Embed sample (ie. http://code.google.com/apis/wave/embed/guide.html) against my local wave server?
several people have asked this, but no one has responded.
what would the address be for my wave instance in new WavePanel?()?
thanks !! I got different clients working, as @jankeso pointed out I was not adding properly the client, I was not specifying any host information. Now it rocks !! :)
Thanks to Jankeso, I got two clients connected now (on the same machine)! But, WHERE'S THE SEE-AS-YOU-TYPE thingamagick feature??? Am I missing something and wasn't this enabled in the protocol by default?
Also, can anyone give me hints how to connect a 3rd user, from another machine, maybe even windows? (I don't even know where to start compiling JAVA code for windows.
@Ilir.Halili i compiled the protobuf and edited the .properties file and succesfully built it. However when i try to build the wave server itself I get the same error :( Are you sure it's not a javac problem?
"Compliance level '1.4' is incompatible with target level '1.5'. A compliance level '1.5' or better is required"
Does someone know how to change or upgrade (or something else) this "compliance level", or at least what does it mean?
Thanks in advance.
OK I was able to connect another client from a different machine. All I had to do was edit the server.cfg to bind listening on the LAN IP rather than 127.0.0.1. Doh!
Anyways, still no seeasyoutype... :(
Interesting
OK - got everything running on Windows, however the windows cmd prompt really is not so good but it works - two client chatting with each other - all domains ip and names set to 127.0.0.1.
pkazimir - where is he server.cfg?
Dennis: Sorry, I meant run-server.sh
Are these servers ready for federation?
@1000camels It gives a pretty error message about how I'm not logged in to the sandbox, etc.
It seems to work fine with OpenJDK, without having Sun's JDK installed. The one obstacle is installing Openfire: I've documented the exact steps to modify the .deb package in Openfire's forums:
http://www.igniterealtime.org/community/message/194492#194492
@Ilir.Halili Do you want to quote the original author whos work you modified slightly? http://jamespurser.com.au/blog/Wave_Reference_Server_-_A_Startup_Guide
James has written a script to do most of the work on linux http://jamespurser.com.au/taxonomy/term/16
Установка сервера FedOne: (russian translation) http://google-wave-russia.blogspot.com/2009/08/fedone-google-wave-federation-prototype.html
Установка сервера FedOne на локальной машине под Windows: (russian) http://google-wave-russia.blogspot.com/2009/08/fedone-windows.html
Installing FedOne server on the local machine under Windows: (machine translation from Russian) http://translate.google.com/translate?hl=en&u=http://google-wave-russia.blogspot.com/2009/08/fedone-windows.html&sl=ru&tl=en
Hi again
Anybody managed to get the Embed API example to work yet?
gpp8pVirginia (or anyone using Mac OS X)
compile: [javac] Compiling 160 source files to /Users/nrock/Documents/FlexDemos/wave-protocol/build/core [javac] /Users/nrock/Documents/FlexDemos/wave-protocol/src/org/waveprotocol/wave/examples/fedone/FlagBinder.java:36: cannot access org.xmpp.packet.Message [javac] bad class file: /Users/nrock/Documents/FlexDemos/wave-protocol/third_party/runtime/whack/xmpp.jar(org/xmpp/packet/Message.class) [javac] class file has wrong version 50.0, should be 49.0 [javac] Please remove or make sure it appears in the correct subdirectory of the classpath. [javac] import org.xmpp.packet.Message; [javac] ^ [javac] 1 errorThis error is caused by the ant command using the incorrect version of Java (1.5) by default. I believe ant is trying to use the JAVA_HOME environment variable. On Mac OS X 10.5 I ran into this exact issue. I had been a bit hasty and didn't read the top of the instructions. You have to set your JAVA_HOME environment variable and append it to the PATH.
Again, this is listed at the top of the instructions, but I am sure others might have missed this.
This issue was also addressed here:
http://code.google.com/p/wave-protocol/issues/detail?id=21
Hello, I have successfully configured the Google Wave Federation Prototype Server in MS-Windows environment. I observed issues majorly in configuring the security certificates. I am writing this comment for those who also are facing the same problem.
Please download 'Win32 OpenSSL v0.9.8k' from link http://www.slproweb.com/products/Win32OpenSSL.html and install if you don't have openssl utility.
You also need to create a openssl.cnf file to define security parameter. While generating the security certificate use -config parameter to define the path of openssl.cnf file as in example openssl command:
"openssl req -new -x509 -nodes -sha1 -config <<location>>/openssl.cnf -days 15 -key <<name>>.key -out <<name>>.cert"
You can get help in creating the your own openssl.cnf from http://www.technoids.org/openssl.cnf.html http://developers.sun.com/docs/javacaps/configuring/jcapsconfssls.ggeyz.html
After generating the certificate place them in to wave-protocol folder and build server and proceed as explain in wiki.
-Charanjeet singh, Sr Engineer, (http://impetus.com)
@charanjeet.hora You could use cygwin in windows as well. save me lot of time for openssl stuff...
One problem I had is my windows use (ANSI/IEM -Simplified Chinese GBK) for it's code page. http://ff.im/6Bjba
Hi All,
To those having problems with installing wave on windows 32bit enviroments here is a brief tutorial that I've put together based on many things i've read including links provided earlier, but i think its much easier if everthing is put intO one place on a step by step basis:
!!THIS TOTORIAL ASSUMES YOU WILL USE localhost and 127.0.0.1 as hostname and ip respectivily
1) download and install java JDK from
2) download ant compiler from
2.1) setup ant as follows:
3) download and setup Openfire as describes very nicely in the tutorial above. download Openfire from
4) download and install mercurial from
5) download and install openssl to create the certificates
6) download the wave-protocol as follows:
6.1) grab a beer from the fridge as we are nearing the final
6.2) copy the wave.key and wave.cert from the openssl\bin directory into the wave-protocol directory
6.3) compile the wave-protocol server and client jar's as follows:
6.4) now we will create 2 now files as a windows alternative to the run-server.sh and run-client.sh
SET PRIVATE_KEY_FILENAME=wave.key SET CERTIFICATE_FILENAME_LIST=wave.cert SET CERTIFICATE_DOMAIN_NAME=localhostSET XMPP_SERVER_HOSTNAME=%CERTIFICATE_DOMAIN_NAME% SET XMPP_SERVER_IP=%XMPP_SERVER_HOSTNAME% SET XMPP_SERVER_SECRET=gwave
java -jar dist/fedone-0.2.jar --client_frontend_hostname=127.0.0.1 --client_frontend_port=9876 --xmpp_component_name=wave --xmpp_server_hostname=%XMPP_SERVER_HOSTNAME% --xmpp_server_ip=%XMPP_SERVER_IP% --xmpp_server_port=5275 --xmpp_server_secret=%XMPP_SERVER_SECRET% --xmpp_server_ping="" --certificate_private_key=%PRIVATE_KEY_FILENAME% --certificate_files=%CERTIFICATE_FILENAME_LIST% --certificate_domain=%CERTIFICATE_DOMAIN_NAME% --waveserver_disable_verification=true java -jar dist/fedone-client-0.2.jar %1@localhost localhost 9876
7) creating a wave and using it
woooot! you now have a running wave server (I hope ;) )
hmmm the post got a bit messed on layout, my apologies, make sure in part 6.4 that all sets are on a new line if done will you should have 6 SET 's under each other
I had a problem relating to: sudhakar.sw, Jul 22, 2009 At http://xmpp.net/launch.shtml without csr wasn't working for me so I went the with csr approach. Here's what I had to do. First, I had to complete the steps mentioned on the xmpp website. I received files, one was an encrypted with my passphrase key file. I had to unencrypt the key. You'll notice when opening the key file that it will say encrypted in the head section. To unecrypt the file simply type openssl rsa -in domain.key.in -out domain.key.out check the new key to see the changes. You'll find this outlined in http://xmpp.net/installation.shtml I had the unencrypted key but run-server was not taking in. Next solution is found in a post at this web site: http://mail-archives.apache.org/mod_mbox/incubator-shindig-dev/200803.mbox/%3CC40EFCAB.5C9B%25plindner@hi5.com%3E Contents of the post are: Content-type: text/plain; charset="US-ASCII Content-transfer-encoding: 7bit Just to get this into the mail archives: I used openssl to generate a rsa key pair, a CSR, and finally a signed cert. However to get the private key to work on Java I had to run this command to prep the private key: openssl pkcs8 -topk8 -nocrypt -in hi5modules.com.key -outform PEM > hi5modules.com_new.key Without that I had odd errors like this: algid parse error, not a sequence and now everything works.
we6jbo
Anyone have any experience running the client within Eclipse so that it can be debugged? I can run the client fine from the shell, but when I run the client in Eclipse I just get some ANSI escape codes.
Haha, answered my own question:
To debug the client in Eclipse, create a "run-client-debug.sh" that's based off of "run-client.sh" When starting the JVM, use the following command:
In Eclipse, go to Debug Configurations and add a Remote Java Application. Make sure it uses port 3408.
The client will not start until the debugger attaches.
Anyone try having the server and client on different machines? (IE, to simulate a web server being a different VM then the wave server?) For some reason, I can't even telnet into port 9876 from a different machine, but I can telnet into port 9876 from the machine running the server.
Has anybody been successful in server installation on MAC? I am going through the official instructions and while configuring OpenFire? (3.6.4), I can't get the 'Server Connection Security' setting stay changed to Custom. If I click Custom and then Save Settings, the value defaults back to Optional.
@Monika - I see the same happening on my OpenFire? installation, but the Custom changes seem to be registered correctly none the less.
@jankeso I'm not sure whether my server run-server.py file or the run-client scripts are edited correctly... :(
When I run the run-server.py I get;
mattycoze@mattycoze-laptop:~/wave-protocol$ ./run-server.sh ./run-server.sh: line 23: client_frontend_hostname: command not found ./run-server.sh: line 24: client_frontend_port: command not found ./run-server.sh: line 25: xmpp_server_hostname: command not found ./run-server.sh: line 26: xmpp_component: command not found ./run-server.sh: line 27: xmpp_server_ip: command not found ./run-server.sh: line 28: xmpp_server_port: command not found ./run-server.sh: line 29: xmpp_server_ping: command not found ./run-server.sh: line 30: certificate_domain: command not found ./run-server.sh: line 31: certificate_files: command not found ./run-server.sh: line 32: certificate_private_key: command not found ./run-server.sh: line 33: webserver_disable_verification: command not found
I'm guessing these lines are missing the "= IMPORTANT INFORMATION"
My Server and Clientfiles are pasted as follows:
run-server.sh File contents:
#!/bin/bash
# This script will start the federated wave server. # Please see http://code.google.com/p/wave-protocol/wiki/Installation for # instructions on how to configure the flags. # # The following is an example configuration, please take care to configure # your instance correctly.
# Comment out the next line by putting a # at the front, once you have # changed the flags.
#echo "You need to edit the run-server.sh script" ; exit 0
PRIVATE_KEY_FILENAME=test.key CERTIFICATE_FILENAME_LIST=test.cert CERTIFICATE_DOMAIN_NAME=mattycoze-laptop
XMPP_SERVER_HOSTNAME=$CERTIFICATE_DOMAIN_NAME XMPP_SERVER_IP=$XMPP_SERVER_HOSTNAME XMPP_SERVER_SECRET="opensesame"
client_frontend_hostname client_frontend_port xmpp_server_hostname xmpp_component name xmpp_server_ip xmpp_server_port xmpp_server_ping certificate_domain certificate_files certificate_private_key webserver_disable_verification
java -jar dist/fedone-0.2.jar \
run-client.sh file contents;
#!/bin/bash
# This script will start the wave client. # Please see http://code.google.com/p/wave-protocol/wiki/Installation for # instructions on how to configure the flags. # # The following is an example configuration, please take care to configure # your instance correctly.
# Comment out the next line by putting a # at the front, once you have # changed the flags.
#echo "You need to edit the run-client.sh script" ; exit 0
# Use the same flag for the domain name as CERTIFICATE_DOMAIN_NAME in # run-server.sh. WAVE_SERVER_DOMAIN_NAME=mattycoze-laptop WAVE_SERVER_HOSTNAME=127.0.0.1 WAVE_SERVER_PORT=9090
if $# != 1 ?]; then
else fiPlease, somebody help :p
I created a virtual appliance based on Ubuntu JeOS for playing around with the Google Wave Federation Prototype Server. It's up on http://drop.io/abelwave . Send me any bugs/requests at abelwave@gmail.com . You can follow updates at twitter.com/abelwave .
I'm trying to set up on Ubuntu, and I've followed the procedure to the step where you execute Ant
$ hg clone https://wave-protocol.googlecode.com/hg/ wave-protocol $ cd wave-protocol $ ant
But I'm getting an error: ########## /opt/wave-protocol/build.xml:46: Directory /opt/wave-protocol/build/core creation was not successful for an unknown reason ##########
in the build.xml on line 46 you have: <target name="init" >
etc...Can someone help me out here??
Murali
Got server & client working on Fedora Core 7 following directions. Anybody have a quick summary of what ports need to be open to the public so I can punch holes for my firewall?
Made another script for installation, configuration and updates on Debian/Ubuntu servers. Bugs/patches/enhancements/requests are welcome.
http://admin-scripts.googlecode.com/svn/trunk/linux/ubuntu/install-wave
basic instructions: http://admin-scripts.googlecode.com/svn/trunk/linux/ubuntu/install-wave.txt
I'm having serious problems with ant...anyone guide me on what needs to happen?
wave-protocol?$ ant Buildfile: build.xml
init:
proto_compile:
compile:
test: Trying to override old definition of datatype junit
BUILD FAILED /home/csanda/wave-protocol/build.xml:145: Test org.waveprotocol.wave.examples.fedone.rpc.RpcTest? failed
Total time: 14 seconds