Mailbox is the core component of Carbonio.
This repository contains the source code of Carbonio Mailbox which consists of several subcomponents and their roles:
- client: client package to interact with the mailbox
- common: package providing classes of common use, like utilities, clients and common parameters
- native: package to load native libraries
- soap: package describing SOAP APIs and tools to generate wsdl documentation
- store: the real mailbox service (SOAP APIs, IMAP, POP3 and CLI)
- Requirements:
- JDK version 17. Confirm by running:
$ javac -version
- gcc to build
native
module
- Build the Code by running:
$ mvn clean install -DskipTests
- add the attribute definition in attrs.xml
- generate attributes and rights by running
mvn antrun:run@generate-zattr-rights
- add the migration files by following the instructions in updates
- update the tests in AttributeManagerTest.java that check on the attributes count number
Whenever you make changes to attrs.xml you can generate rights and ZAttr* classes by running:
mvn antrun:run@generate-zattr-rights
mvn antrun:run@generate-soap-docs
Following guide provides two different ways to run Carbonio Mailbox locally for Development:
See docker/standalone/README.md
Run the com.zextras.mailbox.SampleLocalMailbox
main class in store module,
test directory.
This will start a Mailbox with in-memory LDAP and an HSQLDB database.
All contributions are accepted! Please refer to the CONTRIBUTING file (if present in this repository) for more detail on how to contribute. If the repository has a Code of Conduct, we kindly ask to follow that as well.
To publish packages in RC:
- Make sure release-it is
installed or install it by running
npm install
- Update pom.xml version according to needs
- run
npm run release
accepting to commit, tag and push It will result in CI building the tag and releasing the packages to RC channel.
See COPYING file for detail.