Not all of KonaKart source code is provided in the download kits, only the parts designed to be customized. These include:
Once you have installed KonaKart you will be able to study the customizable source code in the following locations:

You will find all the java sources and associated properties files under the "custom" directory in every download kit from KonaKart version 2.2.1.0 and above. (These source files were available in previous releases but structured slightly differently). In the future, more directories will be added under the custom directory as more customizable source is made available - so don't be surprised if the directory structure that you see is different to the one on the left.
The "custom" directory is located directly under the installation directory that was selected for KonaKart.
The "custom" directory has various important source directories underneath: "appn"/"appnEE", "engine"/"adminengine" and "modules".
The "appn" directory tree holds the java source for the actions, the forms, the module super-classes and other customisable classes such as CheckoutAction.java.
The "appnEE" directory tree holds the Business or Enterprise-only java source for the actions, the forms, the module super-classes and other customisable classes such as LDAPMgr.java.
The "appEngEE" directory tree holds all of the java classes required to create the KKAppEng "Application Engine" - only available in the Business or Enterprise Editions.
The "engine" directory tree holds all of the java classes required to create a "custom engine" for KKEngIf.
The "adminengine" directory tree holds all of the java classes required to create a "custom engine" for KKAdminIf.
The "modules" directory tree holds all of the java classes required to implement each of the modules.
The "batch" directory tree holds a selection of example batch jobs that you can modify to suit your own needs.
An ant build file (build.xml) can be found at the root of the custom directory.
The "bin" directory under custom contains a cut-down ant that is sufficient to build all of the custom code - all you need is to set JAVA_HOME to your JDK.
The "lib" directory contains jars for ant builds.
Once you have executed an ant build you will see a few more directories under "custom" which are the products of the build process. For example, you will see classes directories, a new jar directory etc. To remove the files and directories produced by the build you can execute the "clean" target of the ant build, eg:
$ bin/kkant clean
An ant file is provided that should make it easy to build the customizable java classes. Use "kkant -p" to see the ant command targets:
C:\KonaKart\custom>bin\kkant -p
Buildfile: build.xml
Main targets:
build Compiles all the custom code and creates all the jars
clean Clears away everything that's created during a build
clean_admin_portlet_war Clears away the admin portlet war
clean_custom_admin_service_classes Clears away the generated custom admin service
artifacts
clean_custom_admin_service_classes_json Clears away the generated custom admin service
artifacts
- JSON
clean_custom_store_service_classes Clears away the generated custom store service
artifacts
clean_custom_store_service_classes_json Clears away the generated custom store service
artifacts
- JSON
clean_liferay_sso_jar Clean the KonaKart Liferay SSO classes and jar
clean_manifest_file Clean the MANIFEST file for all jars
clean_portlet_war Clears away the portlet war
clean_torque_classes Clears away the generated torque artifacts
clean_wars Clears away all the WARs and EARs
compile Compile the customisable application code
compile_admin_portlet_liferay Compile the Admin portlet utilities for Liferay
compile_adminappn Compile the customisable admin appn code
compile_adminappnEE Compile the customisable admin appnEE code
compile_appEngEE Compile the customisable appEngEE code
compile_appn Compile the customisable appn code
compile_appnEE Compile the customisable appnEE code
compile_customAdminService Compile the Custom Admin Service code
compile_customAdminService_json Compile the Custom Admin Service code including JSON
compile_customStoreService Compile the Custom Store Service code
compile_customStoreService_json Compile the Custom Store Service code - including JSON
compile_custom_adminengine Compile the customisable admin engine code
compile_custom_engine Compile the customisable engine code
compile_konakartadmin_app Compile the konakartadmin_app code
compile_modules Compile the customisable module code
compile_utils Compile the customisable utils code
copy_jars Copy selected custom konakart jars to the lib
directories
create_konakartadmin2 Create the konakartadmin2 webapp
create_torque_classes Process the Custom Schema to produce torque classes
debugenv Debug the environment
deploy_customAdminService Deploys the Custom Admin Service
deploy_customDB Deploys the Custom Database Jar
deploy_customStoreService Deploys the Custom Store Service
enable_ERPIntegration Enable ERP Integration - EE Only
.. continued below
enable_JAXWS Enable JAX Web Services in konakart web.xml - BE or
EE Only
enable_JSON Enable JSON in konakart web.xml - BE or EE Only
enable_JSON_CAS Enable JSON Custom Admin Service in konakartadmin
web.xml - BE or EE Only
enable_JSON_CSS Enable JSON Custom Store Service in konakart web.xml
- BE or EE Only
enable_KKAdmin_JAXWS Enable JAX Web Services in konakartadmin web.xml -
BE or EE Only
enable_KKAdmin_JSON Enable KKAdmin JSON in konakartadmin web.xml - BE or
EE Only
enable_KKAdmin_RMI Enable KKAdmin RMI in konakartadmin web.xml - EE Only
enable_KonaKart_Messenger Enable KonaKart Messenger in konakart web.xml - EE Only
enable_MQ Enable MQ in konakart web.xml
enable_RMI Enable RMI in konakart web.xml - EE Only
execute_sql_file Execute the specified SQL file
generate_customAdminService Builds the Custom Admin Service code
generate_customAdminService_json Builds the Custom Admin Service code - JSON
generate_customStoreService Builds the Custom Store Service code
generate_customStoreService_json Builds the Custom Store Service code - JSON
generate_torque_java Process the Custom Schema to produce torque java files
load_custom_mago_sql Load the Custom Mago SQL commands
load_mago_sql Load the Mago SQL commands
mago_debugenv Debug the Mago Set-up environment
mago_setup Sets up the Integration with Mago
make_admin_liferay_portlet_war Create the konakartadmin portlet war for Liferay
make_ear Create the konakart EAR
make_eclipse_project Create an Eclipse Project for Developing the Struts-2
Storefront
make_eclipse_wizard_project Create an Eclipse Project for Developing the Product
Creation Wizard
make_jar_appEngEE Create the konakart_app jar
make_jar_custom Create konakart_custom jar
make_jar_customAdminService Create the konakartadmin_custom_admin_service jar
make_jar_customDB Create the konakart_custom_db jar
make_jar_customEE Create the konakart_customEE jar
make_jar_customStoreService Create the konakart_custom_store_service jar
make_jar_custom_admin Create the konakartadmin_custom jar
make_jar_custom_adminEE Create the konakartadmin_customEE jar
make_jar_custom_adminengine Create the konakartadmin_custom_engine jar
make_jar_custom_engine Create the konakart_custom_engine jar
make_jar_custom_utils Create the konakart_custom_utils jar
make_jar_konakartadmin_app Create the konakartadmin_app jar
make_jars Create the konakart custom jars
make_liferay_portlet_war Create the KonaKart portlet war for Liferay
make_liferay_portlet_wars Create the KonaKart and KonaKartAdmin portlet wars for
Liferay
make_liferay_sso_jar Create the KonaKart Liferay SSO jar
make_manifest_file Create the MANIFEST file for all jars
make_ordertotal_module_jar Create the ordertotal module jar
make_other_module_jar Create the other module jar
make_payment_module_jar Create the payment module jar
make_shipping_module_jar Create the shipping module jar
make_wars Create the konakart wars
print_classpaths Print the classpaths for diagnostic purposes
print_custom_classpath prints the specified classpath
reset_database Removes the default KonaKart database set-up
Default target: build
Notice that the default build target compiles all the source files and creates the jars. It doesn't move the jars or create any wars.
If after building the jars you wish to move these to your webapp lib directories you should use the "copy_jars" target.
The "make_wars" target is just a convenient means of creating wars out of the KonaKart webapps. It is not required to be run to build and deploy the custom code so it's not closely-related to the topics discussed on this page.
The "make_*_portlet_war" targets are for creating JSR-286 compliant WARs out of your current KonaKart application. See the section of this documentation regarding portlets for more details.
Here is an example of running the default ant target (Community version with default Struts-2 storefront):
C:\KonaKart\custom>bin\kkant
Buildfile: build.xml
debugenv:
[echo] custom.home = C:\KonaKart\custom
[echo] java.source = 1.8
[echo] java.target = 1.8
[echo] debug_javac = on
[echo] torque.build.present = ${torque.build.present}
[echo] adminappn.code.present = true
[echo] adminappnEE.code.present = ${adminappnEE.code.present}
[echo] adminengine.code.present = true
[echo] appn.code.present = true
[echo] appnEE.code.present = ${appnEE.code.present}
[echo] engine.code.present = true
[echo] utils.code.present = true
[echo] excludeAXIS = ${excludeAXIS}
[echo] noClean = ${noClean}
clean_torque_classes:
clean_portlet_war:
[echo] Cleanup portlet WARs...
[echo] Cleanup portlet classes...
[echo] Cleanup portlet WAR staging area...
clean_admin_portlet_war:
[echo] Cleanup admin portlet WARs...
[echo] Cleanup admin portlet WAR staging area...
clean_wars:
[echo] Cleanup WARs...
[echo] Cleanup EARs...
clean:
[echo] Cleanup...
generate_torque_java:
create_torque_classes:
make_manifest_file:
[echo] Create the MANIFEST.MF file for all jars
compile:
[echo] Compile the customisable application code
compile_appn:
[echo] Copy the properties over to C:\KonaKart\custom/appn/classes
[copy] Copying 3 files to C:\KonaKart\custom\appn\classes
[echo] Compile the customisable application code
[javac] Compiling 133 source files to C:\KonaKart\custom\appn\classes
compile_appnEE:
compile_appEngEE:
compile_adminappn:
[mkdir] Created dir: C:\KonaKart\custom\adminappn\classes
[javac] Compiling 10 source files to C:\KonaKart\custom\adminappn\classes
compile_adminappnEE:
compile_utils:
[echo] Compile the customisable utils code
[mkdir] Created dir: C:\KonaKart\custom\utils\classes
[javac] Compiling 3 source files to C:\KonaKart\custom\utils\classes
continued...
continued from above...
compile_modules:
[echo] Compile the customisable module code
[mkdir] Created dir: C:\KonaKart\custom\modules\classes
[javac] Compiling 149 source files to C:\KonaKart\custom\modules\classes
make_payment_module_jar:
[echo] Create the payment module jar
[mkdir] Created dir: C:\KonaKart\custom\jar
[jar] Building jar: C:\KonaKart\custom\jar\konakart_payment_authorizenet.jar
make_payment_module_jar:
[echo] Create the payment module jar
[jar] Building jar: C:\KonaKart\custom\jar\konakart_payment_elink.jar
-- other payment, order total and shipping module builds removed
compile_custom_engine:
[echo] Compile the customisable engine code
[mkdir] Created dir: C:\KonaKart\custom\engine\classes
[javac] Compiling 241 source files to C:\KonaKart\custom\engine\classes
compile_custom_adminengine:
[echo] Compile the customisable admin engine code
[mkdir] Created dir: C:\KonaKart\custom\adminengine\classes
[javac] Compiling 440 source files to C:\KonaKart\custom\adminengine\classes
make_jars:
[echo] Create the konakart custom jars
make_jar_custom:
[echo] Create the konakart_custom.jar
[jar] Building jar: C:\KonaKart\custom\jar\konakart_custom.jar
make_jar_customEE:
make_jar_custom_engine:
[echo] Create the konakart_custom_engine.jar
[jar] Building jar: C:\KonaKart\custom\jar\konakart_custom_engine.jar
make_jar_appEngEE:
make_jar_custom_utils:
[echo] Create the konakart_custom_utils.jar
[jar] Building jar: C:\KonaKart\custom\jar\konakart_custom_utils.jar
make_jar_custom_admin:
[echo] Create the konakartadmin_custom.jar
[jar] Building jar: C:\KonaKart\custom\jar\konakartadmin_custom.jar
make_jar_custom_adminEE:
make_jar_custom_adminengine:
[echo] Create the konakartadmin_custom_engine.jar
[jar] Building jar: C:\KonaKart\custom\jar\konakartadmin_custom_engine.jar
make_torque_jar:
build:
BUILD SUCCESSFUL
Note that from KonaKart v6.5.0.0 the default storefront uses Struts-2. Previous versions of the ANT build file required that if you had installed the Struts-1 storefront you needed to add the "-DS1=true" parameter to most of the custom ANT commands. This ANT parameter is no longer supported beyond v6.6.0.0 of KonaKart.
The custom ant file contains a target ("make_eclipse_project") that will create an Eclipse project that will allow you to develop the Struts-2 storefront application conveniently in the rich development environment provided by Eclipse.
In earlier versions of the ANT build file a similar "make_eclipse_project_s1" command existed for creating an Eclipse project for working on the Struts-1 storefront. This only worked if you had installed the Struts-1 version of the storefront. This ANT target is no longer included beyond v6.6.0.0 of KonaKart.
Some notes are provided after the Eclipse project is created as follows:
C:\Bob\KonaKart\custom>bin\kkant make_eclipse_project
Buildfile: build.xml
make_eclipse_project:
[echo] Create an Eclipse Project for Developing the Struts-2 Storefront
[mkdir] Created dir: C:\Bob\KonaKart\custom\appEngEE\src
[mkdir] Created dir: C:\Bob\KonaKart\custom\kkeclipse\src
[mkdir] Created dir: C:\Bob\KonaKart\custom\kkeclipse\build\classes
[mkdir] Created dir: C:\Bob\KonaKart\custom\kkeclipse\licenses
[mkdir] Created dir: C:\Bob\KonaKart\custom\kkeclipse\resources
[mkdir] Created dir: C:\Bob\KonaKart\custom\kkeclipse\WebContent
[mkdir] Created dir: C:\Bob\KonaKart\custom\kkeclipse\src\com\konakart\bl\modules\others
[mkdir] Created dir: C:\Bob\KonaKart\custom\kkeclipse\src\com\konakartadmin\modules\others
[copy] Copying 2 files to C:\Bob\KonaKart\custom\kkeclipse
[copy] Copying 748 files to C:\Bob\KonaKart\custom\kkeclipse\src
[copy] Copying 18 files to C:\Bob\KonaKart\custom\kkeclipse\resources
[copy] Copying 1 file to C:\Bob\KonaKart\custom\kkeclipse\licenses
[copy] Copying 672 files to C:\Bob\KonaKart\custom\kkeclipse\WebContent
[echo] -----------------------------------------------------------------------------------
[echo] Eclipse Project Created on disk - called kkeclipse
[echo] Start Eclipse
[echo] Create a tomcat server (see 'Servers' in Eclipse)
[echo] Move the kkeclipse directory to another location for development if you wish
[echo] Import the kkeclipse project using 'Import existing projects into Workspace'
[echo] Assign a server for kkeclipse to use (define server under Project Properties)
[echo] Edit, Debug and Run the KonaKart Storefront in Eclipse!
[echo] -----------------------------------------------------------------------------------
BUILD SUCCESSFUL
You can copy the kkeclipse directory to another location before importing into Eclipse if that is more convenient.
You have to create the "Server" that you wish to run the kkeclipse project in. In theory you can choose any server that is supported by Eclipse.
You may have to make one or two modifications to your Eclipse project settings depending on your own environment.
The custom ant file contains a target ("make_eclipse_wizard_project") that will create an Eclipse project that will allow you to develop the product creation wizard application conveniently in the rich development environment provided by Eclipse.
Some notes are provided after the Eclipse project is created as follows:
C:\KonaKart\custom>ant make_eclipse_wizard_project
Buildfile: build.xml
make_eclipse_wizard_project:
[echo] Create an Eclipse Project for Developing the Product Creation Wizard
[copy] Copying 56 files to C:\Bob\KonaKart\custom\kkeclipseWizard
[copy] Copying 213 files to C:\Bob\KonaKart\custom\kkeclipseWizard\WebContent
[echo] -----------------------------------------------------------------------------------
[echo] Eclipse Product Creation Wizard Project Created on disk - called kkeclipseWizard
[echo] Start Eclipse
[echo] Create a tomcat server (see 'Servers' in Eclipse)
[echo] Move the kkeclipseWizard directory to another location for development if you wish
[echo] Import the kkeclipseWizard project using 'Import existing projects into Workspace'
[echo] Assign a server for kkeclipseWizard to use (define server under Project Properties)
[echo] Edit, Debug and Run the KonaKart Product Creation Wizard in Eclipse!
[echo] -----------------------------------------------------------------------------------
BUILD SUCCESSFUL
You can copy the kkeclipseWizard directory to another location before importing into Eclipse if that is more convenient.
As for the kkeclipse storefront project you have to create the "Server" that you wish to run the kkeclipseWizard project in. In theory you can choose any server that is supported by Eclipse.
You may have to make one or two modifications to your Eclipse project settings depending on your own environment.