wojciech.kapcia@tigase.net opened 8 years ago
|
|
I am not in favor of making much effort for components to support multiple versions of the Tigase server. I had a talk with Bartosz and Andrzej about separating some code (kernel API) from the Tigase server as Bot Framework (and maybe JaXMPP) uses it. So right now Bot Framework depends on the Tigase server code which is not good. So, if we are talking about extracting some kind of general purpose API from the server for other projects to use, then yes we should do this. |
|
Artur Hefczyc wrote:
I had something slightly different in mind, but after pondering it more I realised it wouldn't work/make sense. Closing/Rejecting. |
|
ProposalWhat I have in mind is project structure similar to structure of JaXMPP:
Why?Because it is easier to develop some new features. For example Kernel. Now it is inside monolithic Modules are not different repos or different projects. Everything is in the same code repository, in single project. If someone does And most important thing: Project structure base on modules forces better code, without cyclic code usage etc. It is easyIf we decide to make |
|
OK. I am still uncertain whether it is better to have the Kernel as a module or as a separate project. But I like your approach. Extracting it into a module would be kind of the first step if we ever decide we need Kernel in a separate project. |
|
Wojtek, do the honours :-) |
|
Files moved, initial adjustment of project files done. |
|
Reorganization pushed, still to do:
|
|
Documentation updated, blog post published (http://tigase.net/blog-entry/tigase-server-project-structure-change), for now moved only win-stuff to distribution directory as it makes more sense. Planned:
%andrzej can From Andrzej:
java -Dfelix.config.properties=file:/home/rickhall/config.properties -jar bin/felix.jar so we would need to adjust |
|
I went ahead and removed Jenkins was updated to accommodate the changes. I consider the task to be completed. %Bartek can now work on extracting needed modules: kernel, dsl, eventbus(?!) and others as needed. |
Type |
Task
|
Priority |
Normal
|
Assignee | |
RedmineID |
4879
|
Version |
tigase-server-8.0.0
|
Spent time |
83h 45m
|
Repository, folder structure should be reorganised to match logical, maven module structure (which will allow extracting more modules):
In addition, binaries should be removed from repository (deploy to our maven repository, handle downloading during basic build):
~~Based on the discussion in https://projects.tigase.org/issues/4871#note-3 I would like to discuss something (and it may be related a bit to a concept we had a while back ~~ making component support particular [set of] versions of Tigase) - we could try to extract Tigase APIs to separate module/project and make it a dependency:
APIs don't change that much so it would require less updating (as per above ticket)
with the above we would be able to make components support ranges of Tigase versions (which would be based on particular API version)
possibly could help with building as currently we have build tigase-server module (because all components depends on it because of the APIs used) and after that build main tigase-server module (binaries, modules) because in turn this depends on the components being included (and this results in circular dependencies).
I'm aware that decoupling it will be tricky at the least but this is a stub for discussion.-