Apache client side authentication is based off the httpd modssl documentation and has been deployed for a number of CACert systems like lists and webmail (for staff). Apache configurations for client side authentication should appear in a VirtualHost directive though they can exist under other directives like Location. Apr 19, 2021 Access to the SVN commons/dormant repository is available both online and with a svn client. Related Components @Apache. The Commons HttpClient project used to be a part of Commons, but is now part of Apache HttpComponents - see Jakarta Commons HttpClient. The request line from the client is given in double quotes. The request line contains a great deal of useful information. First, the method used by the client is GET. Second, the client requested the resource /apachepb.gif, and third, the client used the protocol HTTP/1.0. It is also possible to log one or more parts of the request line. Apache Kafka More than 80% of all Fortune 100 companies trust, and use Kafka. Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.
Welcome to Apache Commons
Apache Commons is an Apache project focused on all aspects of reusable Java components.
The Apache Commons project is composed of three parts:
- The Commons Proper - A repository of reusable Java components.
- The Commons Sandbox - A workspace for Java component development.
- The Commons Dormant - A repository of components that are currently inactive.
You may also read our charter, which spells out the goals of the project in greater detail.
The Apache Commons source code repositories are writable for all ASF committers. While Apache Commons is a Commit-Then-Review community, we would consider it polite and helpful for contributors to announce their intentions and plans on the dev mailing list before committing code. All contributors should read our contributing guidelines. We accept patches as SVN diff files uploaded to the Apache bugtracker or as pull request via our github mirrors.
Apache Commons Proper
Commons Proper is dedicated to one principal goal: creating and maintaining reusable Java components. The Commons Proper is a place for collaboration and sharing, where developers from throughout the Apache community can work together on projects to be shared by the Apache projects and Apache users.
Commons developers will make an effort to ensure that their components have minimal dependencies on other libraries, so that these components can be deployed easily. In addition, Commons components will keep their interfaces as stable as possible, so that Apache users (including other Apache projects) can implement these components without having to worry about changes in the future.
This article gives an overview of (some of) the components which can be found here.
We welcome participation from all that are interested, at all skill levels. Coding, documentation and testing are all critical parts of the software development process. If you are interested in participating in any of these aspects, please join us!
Component | Description | Latest Version | Release Date |
---|---|---|---|
BCEL | Byte Code Engineering Library - analyze, create, and manipulate Java class files | 2020-06-05 | |
BeanUtils | Easy-to-use wrappers around the Java reflection and introspection APIs. | 2019-08-13 | |
BSF | Bean Scripting Framework - interface to scripting languages, including JSR-223 | 3.1 | 2010-06-24 |
Chain | Chain of Responsibility pattern implemention. | 1.2 | 2008-06-02 |
CLI | Command Line arguments parser. | 2017-03-09 | |
Codec | General encoding/decoding algorithms (for example phonetic, base64, URL). | 2020-09-01 | |
Collections | Extends or augments the Java Collections Framework. | 2019-07-05 | |
Compress | Defines an API for working with tar, zip and bzip2 files. | 2020-02-08 | |
Configuration | Reading of configuration/preferences files in various formats. | 2020-03-11 | |
Crypto | A cryptographic library optimized with AES-NI wrapping Openssl or JCE algorithm implementations. | 2020-08-28 | |
CSV | Component for reading and writing comma separated value files. | 2020-02-01 | |
Daemon | Alternative invocation mechanism for unix-daemon-like java code. | 2021-01-21 | |
DBCP | Database connection pooling services. | 2020-09-21 | |
DbUtils | JDBC helper library. | 2017-07-20 | |
Digester | XML-to-Java-object mapping utility. | 2011-12-13 | |
Library for sending e-mail from Java. | 2017-08-01 | ||
Exec | API for dealing with external process execution and environment management in Java. | 2014-11-06 | |
FileUpload | File upload capability for your servlets and web applications. | 2019-01-16 | |
Functor | A functor is a function that can be manipulated as an object, or an object representing a single, generic function. | 1.0 | 2011-??-?? |
Geometry | Space and coordinates. | 2020-07-19 | |
Imaging (previously called Sanselan) | A pure-Java image library. | 2020-08-01 | |
IO | Collection of I/O utilities. | 2020-09-05 | |
JCI | Java Compiler Interface | 2013-10-14 | |
JCS | Java Caching System | 2020-08-16 | |
Jelly | XML based scripting and processing engine. | 2017-09-25 | |
Jexl | Expression language which extends the Expression Language of the JSTL. | 2017-04-14 | |
JXPath | Utilities for manipulating Java Beans using the XPath syntax. | 2008-08-14 | |
Lang | Provides extra functionality for classes in java.lang. | 2021-02-26 | |
Logging | Wrapper around a variety of logging API implementations. | 2014-07-11 | |
Math | Lightweight, self-contained mathematics and statistics components. | 2015-04-17 | |
Net | Collection of network utilities and protocol implementations. | 2020-02-13 | |
Numbers | Number types (complex, quaternion, fraction) and utilities (arrays, combinatorics). | 2020-04-08 | |
OGNL | An Object-Graph Navigation Language | 4.0 | 2013-??-?? |
Pool | Generic object pooling component. | 2020-09-25 | |
Proxy | Library for creating dynamic proxies. | 2008-02-28 | |
RDF | Common implementation of RDF 1.1 that could be implemented by systems on the JVM. | 2017-12-23 | |
RNG | Implementations of random numbers generators. | 2019-11-11 | |
SCXML | An implementation of the State Chart XML specification aimed at creating and maintaining a Java SCXML engine. It is capable of executing a state machine defined using a SCXML document, and abstracts out the environment interfaces. | 2008-12-01 | |
Statistics | Statistics. | 1.0-beta1 | 2020-04-30 |
Text | Apache Commons Text is a library focused on algorithms working on strings. | 2020-07-21 | |
Validator | Framework to define validators and validation rules in an xml file. | 2020-08-07 | |
VFS | Virtual File System component for treating files, FTP, SMB, ZIP and such like as a single logical file system. | 2021-03-06 | |
Weaver | Provides an easy way to enhance (weave) compiled bytecode. | 2018-09-07 |
The Commons Sandbox
The Commons project also contains a workspace that is open to all Apache committers. It's a place to try out new ideas and prepare for inclusion into the Commons portion of the project or into another Apache project. Users are free to experiment with the components developed in the sandbox, but sandbox components will not necessarily be maintained, particularly in their current state.
See here for Sandbox components.
The Commons Dormant
These are Commons components that have been deemed inactive since they have seen little recent development activity. If you wish to use any of these components, you must build them yourselves. It is best to assume that these components will not be released in the near future.
See here for Dormant components.
Where do I get releases?
The individual components have independent releases. Some releases for some components may be available only through the mirroring system. Some releases for some components (typically the older ones) are not available through the mirroring system.
See the individual websites listed above for the specific downloads, or use the Releases menu option.
How do I contribute, give feedback, fix bugs and so on?
The Commons project really needs and appreciates any contributions, including documentation help, source code and feedback.
- Discussion occurs on the Commons mailing list.
- We have an IRC channel on freenode - join #apache-commons.
- Access to the SVN commons/proper repository is available both online and with a svn client.
- Access to the SVN commons/sandbox repository is available both online and with a svn client.
- Access to the SVN commons/dormant repository is available both online and with a svn client.
Related Components @Apache
The Commons HttpClient project used to be a part of Commons, but is now part of Apache HttpComponents - see Jakarta Commons HttpClient
You can use the Pulsar C# client (DotPulsar) to create Pulsar producers and consumers in C#. All the methods in the producer, consumer, and reader of a C# client are thread-safe. The official documentation for DotPulsar is available here.
Installation
You can install the Pulsar C# client library either through the dotnet CLI or through the Visual Studio. This section describes how to install the Pulsar C# client library through the dotnet CLI. For information about how to install the Pulsar C# client library through the Visual Studio , see here.
Prerequisites
Install the .NET Core SDK, which provides the dotnet command-line tool. Starting in Visual Studio 2017, the dotnet CLI is automatically installed with any .NET Core related workloads.
Procedures
To install the Pulsar C# client library, following these steps:
Create a project.
Create a folder for the project.
Open a terminal window and switch to the new folder.
Create the project using the following command.
Use
dotnet run
to test that the app has been created properly.
Add the DotPulsar NuGet package.
Use the following command to install the
DotPulsar
package.After the command completes, open the
.csproj
file to see the added reference.
Client
This section describes some configuration examples for the Pulsar C# client.
Create client
This example shows how to create a Pulsar C# client connected to localhost.
To create a Pulsar C# client by using the builder, you can specify the following options.
Option | Description | Default |
---|---|---|
ServiceUrl | Set the service URL for the Pulsar cluster. | pulsar://localhost:6650 |
RetryInterval | Set the time to wait before retrying an operation or a reconnection. | 3s |
Create producer
This section describes how to create a producer.
Create a producer by using the builder.
Create a producer without using the builder.
Create consumer
This section describes how to create a consumer.
Create a consumer by using the builder.
Create a consumer without using the builder.
Create reader
This section describes how to create a reader.
Create a reader by using the builder.
Create a reader without using the builder.
Configure encryption policies
The Pulsar C# client supports four kinds of encryption policies:
EnforceUnencrypted
: always use unencrypted connections.EnforceEncrypted
: always use encrypted connections)PreferUnencrypted
: use unencrypted connections, if possible.PreferEncrypted
: use encrypted connections, if possible.
This example shows how to set the EnforceUnencrypted
encryption policy.
Configure authentication
Currently, the Pulsar C# client supports the TLS (Transport Layer Security) and JWT (JSON Web Token) authentication.
If you have followed Authentication using TLS, you get a certificate and a key. To use them from the Pulsar C# client, follow these steps:
Create an unencrypted and password-less pfx file.
Use the admin.pfx file to create an X509Certificate2 and pass it to the Pulsar C# client.
Producer
A producer is a process that attaches to a topic and publishes messages to a Pulsar broker for processing. This section describes some configuration examples about the producer.
Send data
This example shows how to send data.
Send messages with customized metadata
Send messages with customized metadata by using the builder.
Send messages with customized metadata without using the builder.
Consumer
A consumer is a process that attaches to a topic through a subscription and then receives messages. This section describes some configuration examples about the consumer.
Receive messages
This example shows how a consumer receives messages from a topic.
Acknowledge messages
Messages can be acknowledged individually or cumulatively. For details about message acknowledgement, see acknowledgement.
Acknowledge messages individually.
Acknowledge messages cumulatively.
Unsubscribe from topics
This example shows how a consumer unsubscribes from a topic.
Note
A consumer cannot be used and is disposed once the consumer unsubscribes from a topic.
Reader
A reader is actually just a consumer without a cursor. This means that Pulsar does not keep track of your progress and there is no need to acknowledge messages.
This example shows how a reader receives messages.
Monitoring
This section describes how to monitor the producer, consumer, and reader state.
Monitor producer
The following table lists states available for the producer.
State | Description |
---|---|
Closed | The producer or the Pulsar client has been disposed. |
Connected | All is well. |
Disconnected | The connection is lost and attempts are being made to reconnect. |
Faulted | An unrecoverable error has occurred. |
This example shows how to monitor the producer state.
Monitor consumer state
The following table lists states available for the consumer.
State | Description |
---|---|
Active | All is well. |
Inactive | All is well. The subscription type is Failover and you are not the active consumer. |
Closed | The consumer or the Pulsar client has been disposed. |
Disconnected | The connection is lost and attempts are being made to reconnect. |
Faulted | An unrecoverable error has occurred. |
ReachedEndOfTopic | No more messages are delivered. |

This example shows how to monitor the consumer state.
Monitor reader state
The following table lists states available for the reader.
Apache Client Cert
State | Description |
---|---|
Closed | The reader or the Pulsar client has been disposed. |
Connected | All is well. |
Disconnected | The connection is lost and attempts are being made to reconnect. |
Faulted | An unrecoverable error has occurred. |
ReachedEndOfTopic | No more messages are delivered. |
Apache Client_max_body_size
This example shows how to monitor the reader state.
