Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Panel
nameidblue0

In order to start developing customs on plugins for CRM.COM software, you will need to setup the Java projects required. The following guide provides instructions to setup the Java projects in Eclipse IDE. 


What does this section cover?

Table of Contents

Step-By-Step Guide

  1. Click here to download the desired version of CRM.COM .ear file from our repository.
  2. Import the .ear file in your workspace.

    Expand
    titleImporting .ear file


  3. Click here to download the sample custom projects.
  4. Import the sample projects in your workspace.
  5. Rename the custom Java projects to the desired name.
  6. Create/update the mpconfig.properties file.

 


Mpconfig Properties File

mpconfig.properties file should be placed in the same directory as your custom project(s). This file is used to define the organisation database each custom project will run on.

...

Note that you should use the organisation(data source) name as defined on your Websphere/Wildfly server. Only one custom project per organisation can be defined.

 


Code Block
languagexml
titlempconfig.properties
collapsetrue
organisation1=custom1
organisation2=custom2

Plugins XML File

From R13 onwards you are advised to use plugins.xml instead of mpconfig.properties file. Just as mpconfig.properties file, plugins.xml file is used to define the organisation database each custom project will run on and should be placed in the same directory as your custom project(s). 

...

Note that you should use the organisation(data source) name as defined on your Websphere/Wildfly server. For a full list of plugins file attributes, go to Plugins File Documentation.

 


Code Block
languagexml
titleplugins.xml
collapsetrue
<pluginconfig>
	<plugins>
		<plugin>
			<name>switch</name>
			<description>Switch Provisioning Provider Plugin</description>
			<enabled>true</enabled>
			<vendor>CRM.COM</vendor>
			<version>1.0.0</version>
			<organisations>
				<organisationid>SUBSCRIPTIONS_DB</organisationid>
				<organisationid>ADMIN_DB</organisationid>
			</organisations>
		</plugin>
		<plugin>
			<name>kounta</name>
			<description>Kounta Point Of Sale System Plugin</description>
			<enabled>true</enabled>
			<vendor>CRM.COM</vendor>
			<version>1.0.0</version>
			<organisations>
				<organisationid>REWARDS_DB</organisationid>
				<organisationid>ADMIN_DB</organisationid>
			</organisations>
		</plugin>
	</plugins>
</pluginconfig>

Cache Properties File

From R13 onwards Hibernate second-level caching is used for the most of CRM.COM configuration entities. To enable this functionality you have to create cache.properties file and place it in the same directory as your custom project(s). 


Code Block
languagexml
titlecache.properties
collapsetrue
#enable/disable caching - true/false
enabled=true

#multicast address | multicast host name
multicastGroupAddress=224.0.0.251

#Multicast port
multicastGroupPort=4446
         
#0-255
#0 is restricted to the same host
#1 is restricted to the same subnet
#32 is restricted to the same site
#64 is restricted to the same region
#128 is restricted to the same continent
#255 is unrestricted
#The default value in Java is 1, which propagates to the same subnet. Change the timeToLive property to restrict or expand propagation.
timeToLive=1

#the hostname or IP of the interface to be used for sending and receiving multicast packets 
hostName=cyn1lnx007

#Mandatory - the port the listener listens on.
port=40001

#Optional - the number of seconds client sockets will wait when sending messages to this listener until they give up. By default this is 2000ms.
socketTimeoutMillis=2000

CRM.COM Java Projects

The CRM.COM .ear consists of 3 main Java projects, Crm.war, CrmAPI.war and CrmEJB.jar.

...

Depending on the custom to be implemented, the corresponding custom project should be modified.

Crm.war

This project includes all the files and code required to implement the View layer such as:

...

  • Application metadata
  • Module metadata
  • Menu options metadata
  • Entity metadata
  • Entity fields metadata
  • Variable metadata
  • Label translations to specific languages

CrmAPI.war

This project includes all the code required to implement the CRM.COM Web API, that is, all the controller classes and Java classes required to parse the data in Web API requests and construct the data included in Web API response.

CrmEJB.jar

This project includes all files and code required to implement the Model and Controller layer. 

...