Go to file
Guus der Kinderen b94426a3ee OF-2736: Admin console: missing header in session details
The first bit of the data shown in the table is only available on the local cluster node. That is being excluded from the output, but by mistake, the table header was excluded too.
2023-12-28 16:35:33 +00:00
.github Bump github/codeql-action from 2 to 3 2023-12-27 13:53:38 +01:00
.idea Add icon to Intellij project config 2023-10-04 19:30:08 +02:00
.mvn/wrapper Update mvnw wrapper 2022-10-05 09:52:15 +02:00
build OF-2716: Add missing license headers 2023-12-17 13:54:16 +00:00
distribution OF-2740: Fix fallback JAVA_HOME on macOS (#2355) 2023-11-20 15:57:16 +00:00
documentation Add DOAP entry for Server Dialback 2023-11-22 11:39:34 +01:00
i18n OF-2746: Add 'Content-Security-Policy' headers to HTTP responses 2023-12-06 14:54:46 +00:00
plugins march version to 4.8.0-SNAPSHOT 2023-11-17 10:15:34 -06:00
starter OF-2716: Add missing references to Ignite Realtime Foundation in license header 2023-12-17 13:54:16 +00:00
xmppserver OF-2736: Admin console: missing header in session details 2023-12-28 16:35:33 +00:00
.dependency-check-suppressions.xml OF-2728: Phase out Rome 2023-11-13 19:37:38 +00:00
.dockerignore Remove multi-stage build, split to a separate script 2021-01-28 21:29:46 +00:00
.editorconfig Yaml files have 2-space indents, instead of 4 2020-04-10 14:33:23 +02:00
.gitignore OF-2741: Add macOS dmg builds to gitignore 2023-12-15 19:31:21 +01:00
.transifex.yml Create .transifex.yml 2022-12-23 21:07:27 +01:00
Dockerfile OF-2384: Remote debug development mode for Docker (or other remote JVMs) 2022-02-01 13:58:29 +01:00
LICENSE.txt Create LICENSE.txt 2016-10-28 10:50:09 +02:00
Makefile OF-546: Drop Apache Ant in favor of Apache Maven. (#1062) 2018-04-17 09:58:17 -05:00
README.md update master git branch to main 2022-04-20 08:06:18 -05:00
mvnw Make mvnw executable 2022-10-05 09:52:15 +02:00
mvnw.cmd Update mvnw wrapper 2022-10-05 09:52:15 +02:00
pom.xml march version to 4.8.0-SNAPSHOT 2023-11-17 10:15:34 -06:00
runAioxmppIntegrationTests aioxmpp: pip install pytz 2023-03-01 10:29:26 -06:00
runConnectivityIntegrationTests OF-2542: Drop Java 8 2022-12-02 16:01:45 +01:00
runIntegrationTests CI: bump Smack from 4.4.6 to 4.4.7 2023-12-07 14:05:43 +01:00
test.gradle sinttest: update smack to 4.4.0-alpha3-20200416.010506-6 2020-04-26 22:54:28 +02:00

README.md

Openfire alt tag

Openfire CI Project Stats

About

Openfire is a real time collaboration (RTC) server licensed under the Open Source Apache License. It uses the only widely adopted open protocol for instant messaging, XMPP (also called Jabber). Openfire is incredibly easy to setup and administer, but offers rock-solid security and performance.

Openfire is a XMPP server licensed under the Open Source Apache License.

Openfire - an Ignite Realtime community project.

Bug Reporting

Only a few users have access for filling bugs in the tracker. New users should:

  1. Create a Discourse account
  2. Login to a Discourse account
  3. Click on the New Topic button
  4. Choose the Openfire Dev category and provide a detailed description of the bug.

Please search for your issues in the bug tracker before reporting.

Resources

Ignite Realtime

Ignite Realtime is an Open Source community composed of end-users and developers around the world who are interested in applying innovative, open-standards-based Real Time Collaboration to their businesses and organizations. We're aimed at disrupting proprietary, non-open standards-based systems and invite you to participate in what's already one of the biggest and most active Open Source communities.

Making changes

The project uses Maven and as such should import straight in to your favourite Java IDE. The directory structure is fairly straightforward. The main code is contained in:

  • Openfire/xmppserver - a Maven module representing the core code for Openfire itself

Other folders are:

  • Openfire/build - various files use to create installers for different platforms
  • Openfire/distribution - a Maven module used to bring all the parts together
  • Openfire/documentation - the documentation hosted at igniterealtime.org
  • Openfire/i18n - files used for internationalisation of the admin interface
  • Openfire/plugins - Maven configuration files to allow the various plugins available to be built
  • Openfire/starter - a small module that allows Openfire to start in a consistent manner on different platforms

To build the complete project including plugins, run the command

./mvnw verify

However much of the time it is only necessary to make changes to the core XMPP server itself in which case the command

./mvnw verify -pl distribution -am 

will compile the core server and any dependencies, and then assemble it in to something that can be run.

Testing your changes

IntelliJ IDEA:

  1. Run -> Edit Configurations... -> Add Application
  2. fill in following values
    1. Name: Openfire
    2. Use classpath of module: starter
    3. Main class: org.jivesoftware.openfire.starter.ServerStarter
    4. VM options (adapt accordingly):
      -DopenfireHome="-absolute path to your project folder-\distribution\target\distribution-base" 
      -Xverify:none
      -server
      -Dlog4j.configurationFile="-absolute path to your project folder-\distribution\target\distribution-base\lib\log4j2.xml"
      -Dopenfire.lib.dir="-absolute path to your project folder-\distribution\target\distribution-base\lib"
      -Dfile.encoding=UTF-8
      
    5. Working directory: -absolute path to your project folder-
  3. apply

You need to execute mvnw verify before you can launch openfire.

Other IDE's:

Although your IDE will happily compile the project, unfortunately it's not possible to run Openfire from within the IDE - it must be done at the command line. After building the project using Maven, simply run the shell script or batch file to start Openfire;

./distribution/target/distribution-base/bin/openfire.sh

or

.\distribution\target\distribution-base\bin\openfire.bat

Adding -debug as the first parameter to the script will start the server in debug mode, and your IDE should be able to attach a remote debugger if necessary.