A simple chat/collaborative application
Java
Permalink
Failed to load latest commit information.
lib
src/com/lightstreamer/adapters/ChatTileDemo
LICENSE
README.md
adapter-logo.png

README.md

Lightstreamer - Chat-Tile Demo - Java Adapter

The Chat-Tile Demo implements a simple chat/collaborative application based on Lightstreamer for its real-time communication needs.

This project shows the Data Adapter and Metadata Adapters for the Chat-Tile Demo and how they can be plugged into Lightstreamer Server.

As an example of a client using this adapter, you may refer to the Chat-Tile Demo - HTML (JQuery, Masonry) Client and view the corresponding Live Demo.

Details

This project includes the implementation of the SmartDataProvider interface and the MetadataProviderAdapter interface for the Lightstreamer Chat-Tile Demo. Please refer to General Concepts for more details about Lightstreamer Adapters.

Java Data Adapter and MetaData Adapter

The Data Adapter accepts message submission for the unique chat room. The sender is identified by an IP address and a nickname.

The Metadata Adapter inherits from the reusable LiteralBasedProvider and just adds a simple support for message submission. It should not be used as a reference for a real case of client-originated message handling, as no guaranteed delivery and no clustering support is shown.

The Adapter Set Configuration

This Adapter Set is configured and will be referenced by the clients as CHATTILE.

The adapters.xml file for the Chat-Tile Demo, should look like:

<?xml version="1.0"?>
<adapters_conf id="CHATTILE">

    <!--
      Not all configuration options of an Adapter Set are exposed by this file. 
      You can easily expand your configurations using the generic template, 
      `DOCS-SDKs/sdk_adapter_java_inprocess/doc/adapter_conf_template/adapters.xml`,
      as a reference.
    -->

    <metadata_adapter_initialised_first>Y</metadata_adapter_initialised_first>

    <metadata_provider>
        <adapter_class>com.lightstreamer.adapters.ChatTileDemo.ChatTileMetaAdapter</adapter_class>

        <!-- Optional configuration file for the Adapter's own logging.
             Logging is managed through log4j. -->
        <param name="log_config">adapters_log_conf.xml</param>
        <param name="log_config_refresh_seconds">10</param>

        <!--
          TCP port on which Sun/Oracle's JMXMP connector will be
          listening.
        -->
        <param name="jmxPort">9999</param>

        <messages_pool>
            <max_size>10</max_size>
            <max_free>10</max_free>
        </messages_pool>

    </metadata_provider>

    <data_provider>
        <adapter_class>com.lightstreamer.adapters.ChatTileDemo.ChatTileAdapter</adapter_class>

    </data_provider>
</adapters_conf>

NOTE: not all configuration options of an Adapter Set are exposed by the file suggested above. You can easily expand your configurations using the generic template, DOCS-SDKs/sdk_adapter_java_inprocess/doc/adapter_conf_template/adapters.xml, as a reference.

Please refer here for more details about Lightstreamer Adapters.

Install

If you want to install a version of this demo in your local Lightstreamer Server, follow these steps:

  • Download Lightstreamer Server (Lightstreamer Server comes with a free non-expiring demo license for 20 connected users) from Lightstreamer Download page, and install it, as explained in the GETTING_STARTED.TXT file in the installation home directory.
  • Get the deploy.zip file of the latest release, unzip it, and copy the just unzipped ChatTile folder into the adapters folder of your Lightstreamer Server installation.
  • Get the ua-parser-1.2.2.jar file from ua_parser Java Library and copy it into the adapters/ChatTile/lib folder.
  • Get the snakeyaml-1.11.jar files from SnakeYAML and copy it into the adapters/ChatTile/lib folder.
  • [Optional] Customize the specific "LS_ChatTileDemo_Logger" and "LS_demos_Logger" categories in log4j configuration file ChatTile/adapters_log_conf.xml.
  • Launch Lightstreamer Server.
  • Test the Adapter, launching the client listed in Clients Using This Adapter.

Build

To build your own version of LS_ChatTile_Demo_Adapters.jar, instead of using the one provided in the deploy.zip file from the Install section above, follow these steps:

  • Download this project.
  • Get the ls-adapter-interface.jar file from the latest Lightstreamer distribution, and copy it into the lib folder.
  • Get the log4j-1.2.17.jar file from Apache log4j and copy it into the lib folder.
  • Get the ua-parser-1.2.2.jar file from ua_parser Java Library, and copy it into the lib folder.
  • Get the snakeyaml-1.11.jar file from SnakeYAML, and copy it into the lib folder.
  • Build the jar LS_ChatTile_Demo_Adapters.jar with commands like these:
 > mkdir tmp_classes
 > javac -source 1.7 -target 1.7 -nowarn -g -classpath lib/log4j-1.2.17.jar;lib/ls-adapter-interface.jar;lib/jbox2d-library-2.2.1.1.jar;lib/ua-parser-1.2.2.jar;lib/snakeyaml-1.11.jar -sourcepath src/ -d tmp_classes src/com/lightstreamer/adapters/ChatTileDemo/ChatTileAdapter.java
 > jar cvf LS_ChatTile_Demo_Adapters.jar -C tmp_classes com
  • Stop Lightstreamer Server; copy the just compiled LS_ChatTile_Demo_Adapters.jar in the adapters/ChatTile/lib folder of your Lightstreamer Server installation; restart Lightstreamer Server.

See Also

Clients Using This Adapter

Related Projects

Lightstreamer Compatibility Notes

  • Compatible with Lightstreamer SDK for Java In-Process Adapters since 6.0
  • For a version of this example compatible with Lightstreamer SDK for Java Adapters version 5.1, please refer to this tag.