How to build Kraken without building Openfire

The build instructions on this site specify to pull the source for both Kraken and Openfire and the Kraken build results in building Openfire.  Is it possible to build Kraken using the openfire.jar, rather than requiring a local build of Openfire?  How?

Re: How to build Kraken without building Openfire

As for building Kraken with openfire.jar alone -- you'd need a lot more than openfire.jar actually.  (there's a lot of other assorted libraries that it requires/uses)  That said considering I intend separate Kraken from Openfire, I mean certainly it will build without it at some point.

 

Re: How to build Kraken without building Openfire

Daniel,

OP here... philosophical arguments from uded aside, it would be very helpful if I could build off of a list of jars, rather than having to build openfire.  In my case, I have to modify Kraken code and build locally to allow more than one iRC bridge.  I was surprised to find that building Openfire was part of the build for Kraken, because in an Openfire plugin that I have written, a simple include of the Openfire jar manages those dependencies.  Afterall, the plugin code itself is meant to be separate from the Openfire codebase.  As you say, this needs to be done at some point anyway, given the charter of Kraken.

If you do change this anytime soon, please post back on this topic.

 

Thanks,

hqic

Re: How to build Kraken without building Openfire

Yeah --  I mean I'm not trying to say I approve of having to build openfire first.  ;)  Most of the plugins for Openfire operate this way though.  (or used to if they don't now)  You may remember that "back in the day" the IM Gateway plugin (aka Kraken) used to be part of Openfire's source code tree.  Anyway, the main reason why I can't just include openfire.jar atm is that I need to figure out which all other libraries Kraken needs and pull them into Kraken's own base.  Right now it "piggiebacks" off of the libraries already in Openfire.  Much to my annoyance, things like smack conflict between what Openfire and Kraken uses.......  (there's a conflcit between the spark manager and Kraken right now) 

If you are willing to look into what all would need to be included with Kraken from Openfire, including openfire.jar, to build cleanly and just tell me -- including ideally a patch for build.xml -- I would love to get openfire out of the picture!  (at least for the building for now)

Also -- any chance you'd be willing to share what you did to get multiple IRC connections?  I'm wondering if I'm making it harder than it has to be in my head.  ;)

Re: How to build Kraken without building Openfire

Daniel,

For the IRC fix, I'm planning to do the minimal approach... not trying to fix it, just trying to make it so that I can have some number of IRC servers > 1.  So, I figure just to invent protocols like "IRC1" and "IRC2" and let them use the same underlying protocol, but allow me to specify different servers for each.  Not elegant, but I just want something functional.  What I was hoping to get to would be to allow the user to create a new connection type, and specify a protocol for it.  That way, you could have multiple IRC or XMPP servers that you point to.  Ultimately, though, I decided on the easier and less all-ecompassing approach because for my needs, I can live with non-extensible.

Re: How to build Kraken without building Openfire

Same issue for me - it's quite annoying that I have to build a lot of stuff instead of just one simple library.

Anyone considered moving to Maven or using Ivy with Ant? If so, I can provide a maven/ivy repo with openifire jar always up to date, as far I'm maintaining it for my own set of plugins...

Re: How to build Kraken without building Openfire

Well considering I loathe maven and am quite content with the current build method -- not really.  =D  You can always grab the latest build from bamboo.blathersource.org btw.

Re: How to build Kraken without building Openfire

[quote=daniel]

Well considering I loathe maven and am quite content with the current build method -- not really.  =D  You can always grab the latest build from bamboo.blathersource.org btw.

[/quote]

Yes, but one can use Ant and the approach you have and still use Ivy for dependency management. I'm personally finding it as a very bad habit to store JAR files in repository. Besides, this approach will bound you to the version and is discouraging to promote the newest version of each library...

Re: How to build Kraken without building Openfire

I explicitly -want- to bind to a specific version of each library -- I don't use a newer version of a library until it's tested and I know it works.  Been burned many many times by jumping the gun on the latest version of a library.  (both in terms of radical API changes, and things that get broken)

At the end of the day, I'm happy with it, and I'm not changing it.  (at least not now, I certainly evaluate these things from time to time, but now is not that time, too many other things going on)

Re: How to build Kraken without building Openfire

Most certainly I do agree - changes within API are pain in the butt. But I'm doing this everyday for last ten years now and I can assure You, that the process is manageable. There are tools to track those changes and ways to make sure, that it won't break things.

I will be glad to help out with Kraken. Because of my companys involvment in IM's, I've already took over JGGAPI code and will work on bringing it up to date (the lib was not touched by anyone for 3-4 years now!). I can help out with Kraken as well - testing, new extensions, code review and optimization is something I do for living for a long time...
If you can see a place for me on the team, please provide me with the details on how to proceed and what I can be useful for...

Re: How to build Kraken without building Openfire

*chuckle* I, too, have been "doing this for 10 years now" actually.  ;)  The main problem here is -- every time I go to make some grand change such as this I end up spending way too much time setting it up instead of actually getting things done that "end users" care about.

 

Tell you what -- if you can set up this Ivy you are talking about without changing the existing structure of Kraken and submit it my way, I'll add it to the tree.  I've messed with Maven "just a bit" and I've never been a fan -- if you give me something I can look at for both (maven pom setup, ant ivy whatever that is  ;)  (i know i could look it up but i'm in the middle of working on something atm and my time would be better spent on that  =/  )  then I can try it out when I have some time and see how it goes.  The only thing I require is that the structure of the existing tree does not change for now.

 

That's great ot hear you took over JGGAPI!  I've gotten a couple of reports that there are problems with it but being that I don't really use it I don't have a good idea of what is wrong with it.  Is the current code stable and ready to be pulled into Kraken?  Or did you "just start"?

 

I ended up taking over the bulk of the libraries that Kraken uses...  I'm not completely pleased about that but I certainly didn't want to see them die.

Re: How to build Kraken without building Openfire

[quote=daniel]

*chuckle* I, too, have been "doing this for 10 years now" actually.  ;)  The main problem here is -- every time I go to make some grand change such as this I end up spending way too much time setting it up instead of actually getting things done that "end users" care about.

[/quote]

Yeah, I know that from somewhere ;-)

But still, I will stick to my "philosophy", as someone called that - you can move things around without breaking your mama's stuff... :)

[quote=daniel]

Tell you what -- if you can set up this Ivy you are talking about without changing the existing structure of Kraken and submit it my way, I'll add it to the tree.  I've messed with Maven "just a bit" and I've never been a fan -- if you give me something I can look at for both (maven pom setup, ant ivy whatever that is  ;)  (i know i could look it up but i'm in the middle of working on something atm and my time would be better spent on that  =/  )  then I can try it out when I have some time and see how it goes.  The only thing I require is that the structure of the existing tree does not change for now.

[/quote]

OK. I already made some changes and moved in 60% to Maven. It can be easily ported to Ivy as well, but Maven for me, although it's far from being perfect, have it's advantages. And me, same as You, was not very keen on moving to this world, but once I was in - it got easier...

[quote=daniel]

That's great ot hear you took over JGGAPI!  I've gotten a couple of reports that there are problems with it but being that I don't really use it I don't have a good idea of what is wrong with it.  Is the current code stable and ready to be pulled into Kraken?  Or did you "just start"?

[/quote]

Started on friday. First I had to update the library to Java 5, which took some time. Now - unit tests to cover some code. Then, possibly, new features and fixes...

JGGAPI died somewhere on the road as far the company that owns GG is quite restrictive about any API not created inhouse. I guess I won't care about that and just put stuff in it :)

 

BTW, is this forum broken? The quote stuff doesn't seem to work...

Re: How to build Kraken without building Openfire

lol  I hadn't even noticed but yeah -- what the hell is up with that?  (the quotes)  I'll add it to my long list of todos  lol

as for maven, like i said, go ahead and send that my way if you want to finish it up!  At some level I'm curious about both.

One project, openymsg, that I took over was migrated from ant to maven and I ended up creating an ant buildfile for it alongside maven 'cause maven was driving me insane -- it's one of those things that I kinda want to like but every time I try I run into hurdle after hurdle and back down to "I don't have time for this"  ;)

speaking of the site.. I don't like that you have to click preview considering this is a damned gui editor.  for some reason I can't find the option to tweak that.

Re: How to build Kraken without building Openfire

Finished my round one with JGGAPI. It will take me a while to bring it up to date, although it seems that most of the features are already there. So only few things are missing and one or two need to be updated. API is quite well designed and it will require only few changes. So, basically, if nothing will change in my task list priority I should have version 1.6.9-SNAPSHOT in couple of weeks, which will be a first pre release version of 1.7 NextGen :)

If you are aware of any issues with that API, please let me know. There are only few reports on JGGAPI SF site, so I'm going to fix the things I know...

Re: How to build Kraken without building Openfire

Cool!  Sadly I don't know anyone at all on gadugadu, so I can't say whether it's missing features or not.  =D