Revision: v2.1.7
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 07 Jan 2010 16:18:57 +0200
changeset 0 3fd91c96c86c
child 1 53c80e845d7c
Revision: v2.1.7 Kit: 201001
Makefile
bld.inf
group/bld.inf
java_plat/group/bld.inf
java_plat/java_debug_api/build/bld.inf
java_plat/java_debug_api/inc/javadebugapi.h
java_plat/java_debug_api/inc/javadiagnostic.h
java_plat/java_debug_api/java_debug_api.metaxml
java_plat/java_env_info_api/build/bld.inf
java_plat/java_env_info_api/inc.s60/javadomainpskeys.h
java_plat/java_env_info_api/inc.s60/javaenvinfo.h
java_plat/java_env_info_api/java_env_info_api.metaxml
java_plat/java_registry_api/build/bld.inf
java_plat/java_registry_api/inc/appversion.h
java_plat/java_registry_api/inc/appversion.inl
java_plat/java_registry_api/inc/javaattribute.h
java_plat/java_registry_api/inc/javaregistry.h
java_plat/java_registry_api/inc/javaregistryapplicationentry.h
java_plat/java_registry_api/inc/javaregistryentry.h
java_plat/java_registry_api/inc/javaregistryentrytype.h
java_plat/java_registry_api/inc/javaregistryincludes.h
java_plat/java_registry_api/inc/javaregistrypackageentry.h
java_plat/java_registry_api/inc/mjavaattribute.h
java_plat/java_registry_api/java_registry_api.metaxml
java_plat/java_superd_parser_api/build/bld.inf
java_plat/java_superd_parser_api/inc/javasuperdparser.h
java_plat/java_superd_parser_api/java_superd_parser_api.metaxml
java_stubs/group/bld.inf
java_stubs/javadebugapi/build/bld.inf
java_stubs/javadebugapi/build/javadebugapi.mmp
java_stubs/javadebugapi/bwins/javadebugapiu.def
java_stubs/javadebugapi/eabi/javadebugapiu.def
java_stubs/javadebugapi/src/javadebugapi.cpp
java_stubs/javadrmutils/build/bld.inf
java_stubs/javadrmutils/build/javadrmutils.mmp
java_stubs/javadrmutils/bwins/javadrmutilsu.def
java_stubs/javadrmutils/eabi/javadrmutilsu.def
java_stubs/javadrmutils/src/javasuperdparser.cpp
java_stubs/javaenvinfo/build/bld.inf
java_stubs/javaenvinfo/build/javaenvinfo.mmp
java_stubs/javaenvinfo/bwins/javaenvinfou.def
java_stubs/javaenvinfo/eabi/javaenvinfou.def
java_stubs/javaenvinfo/src/javaenvinfo.cpp
java_stubs/javaregistry/clientserver/client/build/bld.inf
java_stubs/javaregistry/clientserver/client/build/javaregclient.mmp
java_stubs/javaregistry/clientserver/client/bwins/javaregistryclientu.def
java_stubs/javaregistry/clientserver/client/eabi/javaregistryclientu.def
java_stubs/javaregistry/clientserver/client/inc/javaattributes.h
java_stubs/javaregistry/clientserver/client/inc/javaregclient.h
java_stubs/javaregistry/clientserver/client/inc/javaregconverter.h
java_stubs/javaregistry/clientserver/client/inc/javaregistrybackupsupport.h
java_stubs/javaregistry/clientserver/client/inc/javaregistrypropertyids.h
java_stubs/javaregistry/clientserver/client/inc/writeablejavaregistry.h
java_stubs/javaregistry/clientserver/client/inc/writeablejavaregistryapplicationentry.h
java_stubs/javaregistry/clientserver/client/inc/writeablejavaregistryentry.h
java_stubs/javaregistry/clientserver/client/inc/writeablejavaregistrypackageentry.h
java_stubs/javaregistry/clientserver/client/src/javaregconverter.cpp
java_stubs/javaregistry/clientserver/client/src/javaregistry.cpp
java_stubs/javaregistry/clientserver/client/src/javaregistryapplicationentry.cpp
java_stubs/javaregistry/clientserver/client/src/javaregistrybackupsupport.cpp
java_stubs/javaregistry/clientserver/client/src/javaregistryentry.cpp
java_stubs/javaregistry/clientserver/client/src/javaregistrypackageentry.cpp
java_stubs/javaregistry/clientserver/client/src/writeablejavaregistry.cpp
java_stubs/javaregistry/clientserver/client/src/writeablejavaregistryapplicationentry.cpp
java_stubs/javaregistry/clientserver/client/src/writeablejavaregistryentry.cpp
java_stubs/javaregistry/clientserver/client/src/writeablejavaregistrypackageentry.cpp
java_stubs/javaregistry/clientserver/common/inc/javapropertyarray.h
java_stubs/javaregistry/clientserver/common/inc/javaregburstates.h
java_stubs/javaregistry/clientserver/common/inc/javaregdef.h
java_stubs/javaregistry/clientserver/common/inc/javaregproperty.h
java_stubs/javaregistry/clientserver/common/inc/javareguidarrayconv.h
java_stubs/javaregistry/clientserver/common/src/javapropertyarray.cpp
java_stubs/javaregistry/clientserver/common/src/javaregproperty.cpp
java_stubs/rom/javastubs.iby
layers.sysdef.xml
package_definition.xml
sysdef_1_4_0.dtd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: Main makefile of Java, run when building app layer
+#
+
+override JAVA_SRC_ROOT = $(CURDIR)
+export JAVA_SRC_ROOT
+
+include $(JAVA_SRC_ROOT)/build/makefile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bld.inf	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#include "javacommons/bld.inf" 
+#include "javaruntimes/bld.inf" 
+#include "javauis/bld.inf" 
+#include "javamanager/bld.inf" 
+#include "javatools/bld.inf" 
+#include "javaextensions/bld.inf" 
+#include "java_plat/group/bld.inf" 
+#include "rom/bld.inf" 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/group/bld.inf	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: The main build file for Java Package
+*
+*/
+
+#include <platform_paths.hrh>
+
+// bld.inf of subprojects
+#ifdef __JAVA_STUBS
+#include "../java_stubs/group/bld.inf"
+#include "../java_plat/group/bld.inf"
+#else
+#include "../build/bld.inf"
+#endif // __JAVA_STUBS
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/group/bld.inf	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,22 @@
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Includes all the Java Platform API specific bld.inf files, 
+*               which export files.
+*
+*/
+
+#include "../java_registry_api/build/bld.inf"
+#include "../java_superd_parser_api/build/bld.inf"
+#include "../java_env_info_api/build/bld.inf"
+#include "../java_debug_api/build/bld.inf"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_debug_api/build/bld.inf	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Build information file for Java Debug API.
+*
+*/
+PRJ_EXPORTS
+
+#include <platform_paths.hrh>
+
+../inc/javadebugapi.h       APP_LAYER_PLATFORM_EXPORT_PATH(javadebugapi.h)
+../inc/javadiagnostic.h     APP_LAYER_PLATFORM_EXPORT_PATH(javadiagnostic.h)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_debug_api/inc/javadebugapi.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,85 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Java Debug API
+*
+*/
+
+
+#ifndef JAVADEBUGAPI_H
+#define JAVADEBUGAPI_H
+
+#include <e32cmn.h>
+
+/**
+ * Java Debug API allows it's users to install, remove, start and
+ * stop Java applications.
+ *
+ * @lib javadebugapi.lib
+ * @since S60 v9.2
+ */
+
+namespace java
+{
+namespace debug
+{
+
+/**
+ * Installs Java application.
+ * Java application is installed silently i.e. no prompts are shown to the user.
+ * @param[in] aFilename shall point to local JAD or JAR file
+ * @param[out] aSuiteUid returns the suite uid assigned to the application
+ * @param[out] aApplicationUid returns a list of application uids assigned to applications inside suite uid
+ * @capability TrustedUI
+ * @return true if installation is successful
+ */
+IMPORT_C TBool installApp(HBufC& aFilename, TUid& aSuiteUid, RArray<TUid>& aApplicationUid);
+
+/**
+ * Uninstalls Java application.
+ * Java application is removed silently i.e. no prompts are shown to the user.
+ * If application uid is given then the application suite it belongs is removed too.
+ * @param[in] aUid application suite uid (or application uid)
+ * @capability TrustedUI
+ * @return true if application is uninstalled successfully
+ */
+IMPORT_C TBool uninstallApp(TUid aSuiteUid);
+
+/**
+ * Starts Java application.
+ * @param[in] aApplicationUid application uid
+ * @param[in] aUeiParameters includes arguments defined in Unified Emulator Interface (UEI) specification.
+ * If aUeiParameters contains unsupported options then those options are discarded silently.
+ * Supported arguments:
+ *   -Xverbose[:options]
+ *   -Xdebug -Xrunjdwp:name=value[,name=value[...]]
+ * For example, to start Java application in debug mode and set full tracing on
+ * following UIE arguments could be given:
+ * "-Xdebug -Xrunjdwp:server=y,address=localhost:8000 -Xverbose:all"
+ * @capability NetworkControl
+ * @return true if application is started
+ */
+IMPORT_C TBool startApp(TUid aApplicationUid, HBufC& aUeiParameters);
+
+/**
+ * Stops Java application.
+ * @param[in] aApplicationUid application uid
+ * @capability PowerMgmt
+ * @return true if application is stopped
+ */
+IMPORT_C TBool stopApp(TUid aApplicationUid);
+
+} // end namespace debug
+} // end namespace java
+
+#endif // JAVADEBUGAPI_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_debug_api/inc/javadiagnostic.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,138 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Java Diagnostic API
+*
+*/
+
+
+#ifndef JAVADIAGNOSTIC_H
+#define JAVADIAGNOSTIC_H
+
+#include <e32cmn.h>
+
+namespace java
+{
+namespace debug
+{
+
+/**
+* DiagnosticListener will be called when Java Runtime outputs to standard out
+* or makes log message.
+*
+* DiagnosticListener may not perform any long lasting or blocking tasks
+* in the callback.
+*
+* Example below illustrates how Java Runtime outputs could be logged to file.
+*
+* @code
+* class LoggingListener : public DiagnosticListener
+* {
+* public:
+*     virtual void systemOut(const TDesC8& aData) { flog(aData); };
+*     virtual void systemErr(const TDesC8& aData) { flog(aData); };
+*     virtual void log(const TDesC8& aData) { flog(aData); };
+* protected:
+*     virtual void flog(const TDesC8& aData) {
+*         RFileLogger::Write(KLogDirectory, KLogFileName, EFileLoggingModeAppendRaw, aData);
+*     };
+* }
+*
+* LoggingListener listener;
+* JavaDiagnostic* jd = JavaDiagnostic::createInstance();
+* jd->setDiagnosticListener(listener);
+* ...
+* jd->removeDiagnosticListener();
+* delete jd;
+* @endcode
+*/
+class DiagnosticListener
+{
+public:
+    /**
+     * Called when Java Runtime writes to the standard output stream
+     * @param[in] aText may contain multiple lines of data
+     */
+    virtual void systemOut(const TDesC8& aText) = 0;
+
+    /**
+     * Called when Java Runtime writes to the standard error stream
+     * @param[in] aText may contain multiple lines of data
+     */
+    virtual void systemErr(const TDesC8& aText) = 0;
+
+    /**
+     * Called when Java Runtime makes log writing
+     * @param[in] aText may contain multiple lines of data ending with newline
+     */
+    virtual void log(const TDesC8& aText) = 0;
+};
+
+
+/**
+* Java Diagnostic can be used to monitor Java Runtime standard outs and
+* log messages.
+*
+* DiagnosticListener should be set before making any Java Debug API operation,
+* like installing or starting Java application, to ensure that all output
+* is captured.
+*
+* There can be only one running Java Diagnostic instance in the system, i.e.
+* instance with set listener.
+*
+* @code
+* JavaDiagnostic* jd = JavaDiagnostic::createInstance();
+* jd->setDiagnosticListener(listener);
+* ...
+* jd->removeDiagnosticListener();
+* delete jd;
+* @endcode
+*
+* @lib javadebugapi.lib
+* @since S60 v9.2
+*/
+class JavaDiagnostic
+{
+public:
+    virtual ~JavaDiagnostic() {};
+
+    /**
+     * Factory method for JavaDiagnostic.
+     * Returned pointer must be deleted once done using it.
+     * @return new JavaDiagnostic object
+     */
+    IMPORT_C static JavaDiagnostic* createInstance();
+
+    /**
+     * Sets listener and starts monitoring Java Runtime standard outs and log
+     * messages. There can be only one running JavaDiagnostic instance in
+     * the system.
+     * @param[in] aListener will be called when Java Runtime outputs to standard out
+     *                      or makes log message
+     * @return KErrNone if listener was set and monitoring was started succesfully
+     * @return KErrAlreadyExists if JavaDiagnostic is already running or setDiagnosticListener
+     *              is called twice without removing listener in between
+     */
+    virtual TInt setDiagnosticListener(DiagnosticListener& aListener) = 0;
+
+    /**
+     * Removes listener and stops monitoring Java Runtime standard outs and
+     * log messages.
+     */
+    virtual void removeDiagnosticListener() = 0;
+};
+
+} // end namespace debug
+} // end namespace java
+
+#endif // JAVADIAGNOSTIC_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_debug_api/java_debug_api.metaxml	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<api id="fb4b8d56e86ecb8152a0d3b2be8880c8" dataversion="2.0">
+  <name>Java Debug API</name>
+  <description>Java Debug API allows it's users to install, remove, start and stop Java applications. Java application can be launched with Universal Emulator Interface (UEI) arguments that can be used to start JVM in debug mode.</description>
+  <type>c++</type>
+  <collection>javamanager</collection>
+  <libs>
+    <lib name="javadebugapi.lib"/>
+  </libs>
+  <release category="platform" sinceversion="9.2"/>
+  <attributes>
+    <htmldocprovided>no</htmldocprovided>
+    <adaptation>no</adaptation>
+  </attributes>
+</api>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_env_info_api/build/bld.inf	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Build information file for Java Env Info API.
+*
+*/
+PRJ_EXPORTS
+
+#include <platform_paths.hrh>
+
+../inc.s60/javadomainpskeys.h         APP_LAYER_PLATFORM_EXPORT_PATH (javadomainpskeys.h)
+../inc.s60/javadomainpskeys.h         |../../../inc/javadomainpskeys.h
+../inc.s60/javaenvinfo.h              APP_LAYER_PLATFORM_EXPORT_PATH (javaenvinfo.h)
+../inc.s60/javaenvinfo.h              |../../../inc/javaenvinfo.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_env_info_api/inc.s60/javadomainpskeys.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javautils pskey definitions
+*
+*/
+
+#ifndef JAVADOMAINPSKEY_H
+#define JAVADOMAINPSKEY_H
+
+/**
+ * This header provides info about Java environment PS keys.
+ *
+ * During Java application installation the JavaInstaller updates the
+ * installation state to P&S keys. The states are changed as follows:
+ *
+ *   Installation (or upgrade) begins: iUid = 0, iProgress = 0, iState = INSTALLING
+ *   Installation proceeds: iUid = no_change, iProgress = xx%, iState = no_change
+ *   Installation completes: iUid = suiteUid, iProgress = 100, iState = INSTALL_OK
+ *   Installation fails: iUid = suiteUid, iProgress = 0, iState = INSTALL_FAIL
+ *
+ *   Uninstallation begins: iUid = 0, iProgress = 0, iState = UNINSTALLING
+ *   Uninstallation proceeds: iUid = no_change, iProgress = xx%, iState = no_change
+ *   Uninstallation completes: iUid = suiteUid, iProgress = 100, iState = UNINSTALL_OK
+ *   Uninstallation fails: iUid = suiteUid, iProgress = 0, iState = UNINSTALL_FAIL
+ *
+ *
+ *
+ * P&S keys that are updated:
+ *
+ *   iUid ==> KPSUidJavaLatestInstallation
+ *   iProgress ==> KPSUidJavaLatestInstallationProgress
+ *   iState ==> KPSUidJavaLatestInstallationState
+ *
+ * Values for the P&S keys:
+ *
+ *   INSTALLING = 0x100;
+ *   INSTALL_OK = 0x101;
+ *   INSTALL_FAIL = 0x102;
+ *   UNINSTALLING = 0x200;
+ *   UNINSTALL_OK = 0x201;
+ *   UNINSTALL_FAIL = 0x202;
+ */
+
+#ifndef KPSUidJavaLatestInstallation
+/** PS flag for the most recent installed Java application. */
+#define KPSUidJavaLatestInstallation 0x10282567
+#endif
+
+#ifndef KPSUidJavaLatestInstallationProgress
+/** PS flag for indicating JavaInstaller installation progress. */
+#define KPSUidJavaLatestInstallationProgress 0x20019546
+#endif
+
+#ifndef KPSUidJavaLatestInstallationState
+/** PS flag for JavaInstaller latest installation state. */
+#define KPSUidJavaLatestInstallationState 0x20019547
+#endif
+
+#endif //JAVADOMAINPSKEY_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_env_info_api/inc.s60/javaenvinfo.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,79 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Java environment information utilities
+*
+*/
+
+#ifndef JAVAENVINFO_H
+#define JAVAENVINFO_H
+
+//  INCLUDES
+#include <e32cmn.h>
+
+// CLASS DECLARATION
+
+namespace Java
+{
+/**
+ * Class provides information about Java environment version.
+ *
+ * @lib javaenvinfo.lib
+ * @since S60 5.1
+ */
+NONSHARABLE_CLASS(JavaEnvInfo)
+{
+public:
+
+    /**
+      * Returns the Java environment version
+      *
+      * @since S60 5.1
+      * @return TVersion instance representing the Java environment version
+      */
+    IMPORT_C static TVersion Version();
+
+    /**
+      * Returns the part of the user agent header describing the Java environment.
+      * This string can be used by Browser or any other HTTP client when sending
+      * HTTP requests to describe the supported Java environment.
+      *
+      * The returned string could be for example
+      * "Configuration/CLDC-1.1 Profile/MIDP-2.1".
+      *
+      * @since S60 5.1
+      * @return User Agent header string. Caller is responsible for deleting
+      * this when done with it.
+      */
+    IMPORT_C static HBufC* GetUserAgentHeaderL();
+
+    /**
+      * Returns the Java configuration and profile information in human
+      * readable format.
+      *
+      * The used format is <profile> ", " <configuration> - as an example
+      * "MIDP 2.1, CLDC 1.1".
+      *
+      * @since S60 5.1
+      * @return String in the format. Caller is responsible for deleting
+      * this when done with it.
+      */
+    IMPORT_C static HBufC* GetPlatformInfoL();
+private:
+
+    static TVersion JavaEnvInfo::GetJavaVersionL();
+};
+
+}
+
+#endif //JAVAENVINFO_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_env_info_api/java_env_info_api.metaxml	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,18 @@
+<?xml version="1.0" ?>
+<api id="935dbdc2b6dfe73953cf5cc603647d36" dataversion="1.0">
+  <name>Java Environment Info API</name>
+  <description>This API provides information about the Java environment and events occurring within it</description>
+  <type>c++</type>
+  <subsystem>java_dom</subsystem>
+  <libs>
+    <lib name="javaenv.lib" />  
+  </libs>
+  <release category="domain"/>
+  <attributes>
+     <!-- This indicates wether the api provedes separate html documentation -->
+     <!-- or is the additional documentation generated from headers. -->
+     <!-- If you are unsuere then the value is "no" -->
+     <htmldocprovided>no</htmldocprovided>
+     <adaptation>no</adaptation>
+  </attributes>
+</api>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_registry_api/build/bld.inf	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Java Registy API build file
+*
+*/
+
+PRJ_EXPORTS
+
+#include <platform_paths.hrh>
+
+../inc/javaregistryentry.h                APP_LAYER_PLATFORM_EXPORT_PATH(javaregistryentry.h)
+../inc/javaregistryapplicationentry.h     APP_LAYER_PLATFORM_EXPORT_PATH(javaregistryapplicationentry.h)
+../inc/javaregistryentrytype.h            APP_LAYER_PLATFORM_EXPORT_PATH(javaregistryentrytype.h)
+../inc/javaregistrypackageentry.h         APP_LAYER_PLATFORM_EXPORT_PATH(javaregistrypackageentry.h)
+../inc/javaregistryincludes.h             APP_LAYER_PLATFORM_EXPORT_PATH(javaregistryincludes.h)
+../inc/javaregistry.h                     APP_LAYER_PLATFORM_EXPORT_PATH(javaregistry.h)
+../inc/javaattribute.h                    APP_LAYER_PLATFORM_EXPORT_PATH(javaattribute.h)
+../inc/mjavaattribute.h                   APP_LAYER_PLATFORM_EXPORT_PATH(mjavaattribute.h)
+../inc/appversion.h                       APP_LAYER_PLATFORM_EXPORT_PATH(appversion.h)
+../inc/appversion.inl                     APP_LAYER_PLATFORM_EXPORT_PATH(appversion.inl)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_registry_api/inc/appversion.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Java Registy API header file
+*
+*/
+
+#ifndef TAPPVERSION_H
+#define TAPPVERSION_H
+
+/**
+ * This class is used to represent the version of a Java application.
+ * The standard TVersion provided in Symbian OS can't be used because it
+ * doesn't allow for major and minor version numbers above 127.
+ */
+class TAppVersion
+{
+public:
+
+    /**
+     * This constructor creates a 0.0.0 version.
+     */
+    inline TAppVersion();
+
+    /**
+     * This is the copy constructor.
+     * @param aAppVersion is the app version that will be copied
+     */
+    inline TAppVersion(const TAppVersion& aAppVersion);
+
+    /**
+     * This constructor creates a version according to the arguments.
+     * @param aMajor is the major version number
+     * @param aMinor is the minor version number
+     * @param aBuild is the micro version number
+     */
+    inline TAppVersion(TInt aMajor, TInt aMinor, TInt aBuild);
+
+    /**
+     * Assignment operator.
+     * @param aAppVersion is the app version to be assigned to the object
+     */
+    inline TAppVersion& operator =(const TAppVersion& aAppVersion);
+
+    /**
+     * Equality operator.
+     * @param aAppVersion is the app version to be compared with
+     * the object's app version
+     * @return ETrue if the app versions are the same, EFalse otherwise
+     */
+    inline TBool operator ==(const TAppVersion& aAppVersion) const;
+
+    /**
+     * Inequality operator.
+     * @param aAppVersion is the app version to be compared with
+     * the object's app version
+     * @return ETrue if the app versions are not the same, EFalse otherwise
+     */
+    inline TBool operator !=(const TAppVersion& aAppVersion) const;
+
+    /**
+     * Less than operator.
+     * @param aAppVersion is the app version to be compared with
+     * the object's app version
+     * @return ETrue if the app version to the left of the operator is less
+     * than the version to the right, EFalse otherwise
+     */
+    inline TBool operator <(const TAppVersion& aAppVersion) const;
+
+    /**
+     * Greater than operator.
+     * @param aAppVersion is the app version to be compared with
+     * the object's app version
+     * @return ETrue if the app version to the left of the operator is
+     * greater than the version to the right, EFalse otherwise
+     */
+    inline TBool operator >(const TAppVersion& aAppVersion) const;
+
+    /**
+     * Less or equal operator.
+     * @param aAppVersion is the app version to be compared with
+     * the object's app version
+     * @return ETrue if the app version to the left of the operator is
+     * less than or equal to the version to the right, EFalse otherwise
+     */
+    inline TBool operator <=(const TAppVersion& aAppVersion) const;
+
+    /**
+     * Greater or equal operator.
+     * @param aAppVersion is the app version to be compared with
+     * the object's app version
+     * @return ETrue if the app version to the left of the operator is
+     * greater than or equal to the version to the right, EFalse otherwise
+     */
+    inline TBool operator >=(const TAppVersion& aAppVersion) const;
+
+public:
+    TInt iMajor;
+    TInt iMinor;
+    TInt iBuild;
+};
+
+#include <appversion.inl>
+
+#endif // TAPPVERSION_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_registry_api/inc/appversion.inl	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,79 @@
+/*
+* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Java Registy API header file
+*
+*/
+
+#ifndef TAPPVERSIONINL_H
+#define TAPPVERSIONINL_H
+
+TAppVersion::TAppVersion()
+        : iMajor(0), iMinor(0), iBuild(0)
+{
+}
+
+TAppVersion::TAppVersion(const TAppVersion& aAppVersion)
+        : iMajor(aAppVersion.iMajor), iMinor(aAppVersion.iMinor), iBuild(aAppVersion.iBuild)
+{
+}
+
+TAppVersion::TAppVersion(TInt aMajor, TInt aMinor, TInt aBuild)
+        : iMajor(aMajor), iMinor(aMinor), iBuild(aBuild)
+{
+}
+
+TAppVersion& TAppVersion::operator =(const TAppVersion& aAppVersion)
+{
+    // Assignment operator using the copy constructor
+    return *new(this) TAppVersion(aAppVersion);
+}
+
+TBool TAppVersion::operator ==(const TAppVersion& aAppVersion) const
+{
+    return ((iMajor == aAppVersion.iMajor) &&
+            (iMinor == aAppVersion.iMinor) &&
+            (iBuild == aAppVersion.iBuild));
+}
+
+TBool TAppVersion::operator !=(const TAppVersion& aAppVersion) const
+{
+    return !(*this == aAppVersion);
+}
+
+TBool TAppVersion::operator <(const TAppVersion& aAppVersion) const
+{
+    return ((iMajor < aAppVersion.iMajor) ||
+            ((iMajor == aAppVersion.iMajor) && (iMinor < aAppVersion.iMinor)) ||
+            ((iMajor == aAppVersion.iMajor) && (iMinor == aAppVersion.iMinor) &&
+             (iBuild < aAppVersion.iBuild)));
+}
+
+TBool TAppVersion::operator >(const TAppVersion& aAppVersion) const
+{
+    return (aAppVersion < *this);
+}
+
+TBool TAppVersion::operator <=(const TAppVersion& aAppVersion) const
+{
+    return !(*this > aAppVersion);
+}
+
+TBool TAppVersion::operator >=(const TAppVersion& aAppVersion) const
+{
+    return !(*this < aAppVersion);
+}
+
+#endif // TAPPVERSIONINL_H
+
+//End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_registry_api/inc/javaattribute.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,101 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Java Registy API header file
+*
+*/
+
+
+#ifndef CJAVAATTRIBUTE_H
+#define CJAVAATTRIBUTE_H
+
+
+#include <e32base.h>
+#include "mjavaattribute.h"
+
+/**
+ * This class is used to access Java application attributes.
+ * In case of MIDlets, these attributes are defined in
+ * Java Application Descriptor (JAD) and JAR manifest files.
+ */
+namespace Java
+{
+class CJavaAttribute: public CBase, public MJavaAttribute
+{
+public:
+
+    IMPORT_C virtual ~CJavaAttribute();
+
+    /**
+     * Construct a new attribute using the given name, value and trusted
+     *
+     * @since S60 v5.0
+     * @param aName is attribute name
+     * @param aValue is attribute value
+     * @param aTrusted is true if attribute can be trusted.
+     * @return a new CJavaAttribute object
+     */
+    IMPORT_C static CJavaAttribute* NewL(const TDesC& aName, const TDesC& aValue, TBool aTrusted);
+    /**
+     * Construct a new attribute using the given name, value and trusted
+     * and leaves the object on the cleanup stack
+     *
+     * @since S60 v5.0
+     * @param aName is attribute name
+     * @param aValue is attribute value
+     * @param aTrusted is true if attribute can be trusted
+     * @return a new CJavaAttribute object
+     */
+    IMPORT_C static CJavaAttribute* NewLC(const TDesC& aName, const TDesC& aValue, TBool aTrusted);
+
+    /**
+     * from MJavaAttribute
+     */
+public:
+    virtual const TDesC& Name() const;
+    virtual const TDesC& Value() const;
+    virtual TBool Trusted() const;
+
+
+private:
+    /**
+     * ConstructL
+     *
+     * @since S60 v5.0
+     * @param aName
+     * @param aValue
+     * @param aTrusted
+     */
+    void ConstructL(const TDesC& aName, const TDesC& aValue, TBool aTrusted);
+
+private:
+    /**
+     * Attribute name
+     */
+    HBufC* iName;
+    /**
+     * Attribute value
+     */
+    HBufC* iValue;
+    /**
+     * this value indicate, if attribute is trusted (= signed JAR file +
+     * attribute present in JAR manifest) or not
+     */
+    TBool iTrusted;
+};
+} // namespace Java
+
+#endif // CJAVAATTRIBUTE_H
+
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_registry_api/inc/javaregistry.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,193 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  The main class of Java Registy API. Java Registy API
+*               can be used to query the installed Java applications
+*               and their properties.
+*
+*/
+
+
+
+// JAVAREGISTRY.H
+#ifndef __JAVAREGISTRY_H
+#define __JAVAREGISTRY_H
+
+#include <e32base.h>
+#include "javaregistryentrytype.h"
+
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+
+// FORWARD DECLARATION
+class CWriteableJavaRegistry;
+
+}// namespace Registry
+}// namespace Manager
+}// namespace Java
+
+namespace Java
+{
+class CJavaRegistryEntry;
+
+/**
+ * This class provides the Platform API for JavaRegistry.
+ * It allows for clients to retrieve properties of
+ * Java install packages, applications, services etc.
+ *
+ * @lib javaregistryclient.lib
+ * @since S60 v3.2
+ */
+class CJavaRegistry : public CBase
+{
+
+    // Constructors
+public:
+
+    /**
+     * Creates a CJavaRegistry object.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @return A pointer to a CJavaRegistry object.
+     *         Caller takes over the ownership of the object being
+     *         transferred.
+     */
+    IMPORT_C static CJavaRegistry* NewL();
+
+    /**
+     * Creates a CJavaRegistry object.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @return A pointer to a CJavaRegistry object.
+     *         Caller takes over the ownership of the object being
+     *         transferred.
+     */
+    IMPORT_C static CJavaRegistry* NewLC();
+
+
+public:
+
+    // Generic methods
+
+    /**
+     * Returns whether registry entry with the specified Uid exists.
+     * Registry entries representing entities installed on
+     * removable media which are currently not present in the device
+     * are considered as not existent.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid to be checked.
+     * @return ETrue if the registry entry exists, EFalse otherwise.
+     */
+    IMPORT_C TBool RegistryEntryExistsL(const TUid& aUid) const;
+
+    /**
+     * Returns an array of Uids of the existing registry entries.
+     * Uids of registry entries representing entities installed on
+     * removable media which are currently not present in the device
+     * are not returned.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUids [out] Uids of the registry entries.
+     */
+    IMPORT_C void GetRegistryEntryUidsL(RArray<TUid>& aUids) const;
+
+    /**
+     * Returns an array of Uids of the existing registry entries.
+     * Entries are searched by the specified type.
+     * Uids of registry entries representing entities installed on
+     * removable media which are currently not present in the device
+     * are not returned.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aType Type of registry entries whose Uids are to be returned.
+     * @param aUids [out] Uids of the matching registry entries.
+     */
+    IMPORT_C void GetRegistryEntryUidsL
+    (TJavaRegistryEntryType aType, RArray<TUid>& aUids) const;
+
+    /**
+     * Returns the corresponding registry entry for a given Uid.
+     * The returned entry can be casted to the appropriate subclass
+     * according to the type property. If type is in the package range
+     * ( EGeneralPackage <= entryType < EGeneralApplication ), it can
+     * be casted to CJavaRegistryPackageEntry, and if type is
+     * in the application range ( EGeneralApplication <= entryType ),
+     * it can be casted to CJavaRegistryApplicationEntry.
+     * Registry entries representing entities installed on
+     * removable media which are currently not present in the device
+     * are not returned.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of the entry to be retrieved
+     * @return The returned registry entry or null if registry entry
+     *         not found. Caller takes over the ownership of the object
+     *         being transferred.
+     */
+    IMPORT_C CJavaRegistryEntry* RegistryEntryL(const TUid& aUid) const;
+
+    // Destructor
+    /**
+     * CJavaRegistry::~CJavaRegistry destructor
+     *
+     * @since S60 v3.2
+     */
+    virtual ~CJavaRegistry();
+
+private:
+
+    // Constructor
+
+    /**
+     * CJavaRegistry::CJavaRegistry constructor
+     *
+     * @since S60 v3.2
+     */
+    CJavaRegistry();
+
+    // 2nd phase constructor
+
+    /**
+     * CJavaRegistry::ConstructL method
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     */
+    void ConstructL();
+
+private: // Data
+
+
+    /**
+     * CJavaRegistry::iJavaReg member
+     * Pointer Owned
+     * @since S60 v3.2
+     */
+    Java::Manager::Registry::CWriteableJavaRegistry* iJavaReg;
+
+};
+
+}// namespace Java
+
+#endif // __JAVAREGISTRY_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_registry_api/inc/javaregistryapplicationentry.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,137 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Java Registy API header file
+*
+*/
+
+
+#ifndef JAVAREGISTRYAPPLICATIONENTRY_H
+#define JAVAREGISTRYAPPLICATIONENTRY_H
+
+#include <e32base.h>
+#include <e32cmn.h>
+#include <f32file.h>
+#include "javaregistryentry.h"
+#include "javaregistryentrytype.h"
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+
+// FORWARD DECLARATION
+class CWriteableJavaRegistryApplicationEntry;
+
+}// namespace Registry
+}// namespace Manager
+
+// FORWARD DECLARATION
+class CJavaRegistryPackageEntry;
+
+/**
+ * This subclass of CJavaRegistryEntry supports attributes
+ * for single application, that can't contain embedded entries.
+ *
+ * @lib javaregistryclient.lib
+ * @since S60 v3.2
+ */
+class CJavaRegistryApplicationEntry : public CJavaRegistryEntry
+{
+public:
+
+
+    /**
+     * CJavaRegistryApplicationEntry::CJavaRegistryApplicationEntry
+     * constructor
+     *
+     * @since S60 v3.2
+     * @param aWritableEntry Pointer to a writable entry, to delegate
+     *          getter methods. Pointer ownership taken.
+     */
+    CJavaRegistryApplicationEntry(Java::Manager::Registry::
+                                  CWriteableJavaRegistryApplicationEntry* aWritableEntry);
+
+    /**
+     * Tells if this application is startable.
+     *
+     * @since S60 v3.2
+     * @return ETrue if the application is startable, EFalse otherwise.
+     *         Default value if not set: ETrue.
+     */
+    IMPORT_C TBool IsStartable() const;
+
+    /**
+     * Tells if this application must be shown in Application Shell or
+     * it must rather be hidden.
+     *
+     * @since S60 v3.2
+     * @return ETrue if the application is shown in Application Shell,
+     *         EFalse otherwise.
+     *         Default value if not set: ETrue.
+     */
+    IMPORT_C TBool IsVisible() const;
+
+    /**
+     * Tells if the end user can not uninstall this application.
+     *
+     * @since S60 v3.2
+     * @return ETrue if the application is resident, EFalse otherwise.
+     *         Default value if not set: EFalse.
+     */
+    IMPORT_C TBool IsResident() const;
+
+    /**
+     * Gets the group name of this application. This property tells in
+     * which folder the application icon shall appear. It can be a
+     * null-string: in that case the Installed folder will be hosting
+     * midlet icons.
+     *
+     * @since S60 v3.2
+     * @return Group name of this application.
+     *         Default value if not set:
+     */
+    IMPORT_C const TDesC& GroupName() const;
+
+    /**
+     * Gets a reference to the install package entry, which is the parent
+     * of this application. E.g. if this entry represents a MIDlet this
+     * method returns a reference to the corresponding MIDlet Suite entry.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @return a CJavaRegistryEntry object. Caller takes over the
+     *         ownership of the object being transferred.
+     */
+    IMPORT_C CJavaRegistryPackageEntry* PackageEntryL() const;
+
+protected:
+
+    /**
+     * CJavaRegistryApplicationEntry::WritableEntry method returns the member
+     * of the parent class, but first casts it to
+     * CWriteableJavaRegistryApplicationEntry.
+     *
+     * @since S60 v3.2
+     * @return Returns the member of this class.
+     */
+    Java::Manager::Registry::
+    CWriteableJavaRegistryApplicationEntry* WritableEntry() const;
+
+};
+
+} // namespace Java
+
+#endif // JAVAREGISTRYAPPLICATIONENTRY_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_registry_api/inc/javaregistryentry.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,206 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Java Registy API header file
+*
+*/
+
+
+#ifndef JAVAREGISTRYENTRY_H
+#define JAVAREGISTRYENTRY_H
+
+#include <e32base.h>
+#include <e32cmn.h>
+#include <f32file.h>
+#include "javaregistryentrytype.h"
+#include "javaattribute.h"
+
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+
+// FORWARD DECLARATION
+class CWriteableJavaRegistryEntry;
+
+}// namespace Registry
+}// namespace Manager
+
+/**
+ * This class provides the Domain API for entries in JavaRegistry.
+ * This class is intended for further derivation.
+ * It supports only those attributes which exist in all types of
+ * entries.
+ *
+ * @lib javaregistryclient.lib
+ * @since S60 v3.2
+ */
+class CJavaRegistryEntry : public CBase
+{
+public:
+
+    /**
+     * Gets the Uid of this registry entry.
+     *
+     * @since S60 v3.2
+     * @return A TUid object.
+     */
+    IMPORT_C TUid Uid() const;
+
+    /**
+     * Gets the type of this registry entry.
+     * Enumeration TJavaRegistryEntryType defines the currently possible
+     * options. Mandatory property.
+     *
+     * @since S60 v3.2
+     * @return Type of this registry entry.
+     */
+    IMPORT_C TJavaRegistryEntryType Type() const;
+
+    /**
+     * Gets the drive letter where the content of the installation package
+     * has been installed.
+     *
+     * @since S60 v3.2
+     * @return Drive letter where the content of the installation package
+     *         has been installed.
+     *         Default value if not set: EDriveC.
+     */
+    IMPORT_C TDriveNumber Drive() const;
+
+    /**
+     * Gets the name of the entity (midlet, suite, etc.) this entry
+     * represents.
+     *
+     * @since S60 v3.2
+     * @return Name of the entity this entry represents.
+     *         Default value if not set: KNullDesC.
+     */
+    IMPORT_C const TDesC& Name() const;
+
+    /**
+     * Returns the number of certificate chains belonging to the entity
+     * this entry represents.
+     *
+     * @since S60 v3.2
+     * @return Number of certificate chains.
+     */
+    IMPORT_C TInt NumberOfCertificateChains() const;
+
+    /**
+     * Returns the n-th certificate chain of the entity this entry
+     * represents consisting of X.509 version 3 certificates
+     * in their DER encoded format concatenated together
+     * without any separators.
+     * All certificate chains are returned indifferent if they could be
+     * validated or not.
+     * This format is directly suitable to be used with
+     * function CX509CertChain::DecodeCertsL().
+     *
+     * @since S60 v3.2
+     * @param aChain Zero-based index of the certificate chain to be
+     *               retrieved.
+     * @return N-th certificate chain
+     *         Default value if not set: KNullDesC8.
+     */
+    IMPORT_C const TDesC8& CertificateChain(TInt aChain) const;
+
+    /**
+     * Returns the content id of the entity this entry represents.
+     * The content id can be used to check if a DRM protected entity
+     * has enough right to be launched or not.
+     * The method can also be used to check if the entity is DRM
+     * protected or not.
+     *
+     * @since S60 v3.2
+     * @return Content id of the entity this entry represent or
+     *          KNullDesC if the entity is not DRM protected.
+     */
+    IMPORT_C const TDesC& DrmContentId() const;
+
+    /**
+     * CJavaRegistryEntry::~CJavaRegistryEntry method
+     * Destructor
+     *
+     * @since S60 v3.2
+     */
+    IMPORT_C ~CJavaRegistryEntry();
+
+    /**
+     * CJavaRegistryEntry::Attribute method gets the
+     * additional attribute.
+     *
+     * @since S60 v5.0
+     * @param aName The name the searched attribute.
+     * @return MJavaAttribute poiter to instance, which contain attribute.
+     * If attribute doesn't exist return NULL.
+     */
+    IMPORT_C const MJavaAttribute*
+    CJavaRegistryEntry::AttributeL(const TDesC& aName) const;
+
+    /**
+     * CJavaRegistryEntry::Attributes method gets the
+     * array of additional attributes.
+     *
+     * @since S60 v5.0
+     * @return RPointerArray& with all additional attributes.
+     */
+    IMPORT_C const RPointerArray<MJavaAttribute>&
+    CJavaRegistryEntry::AttributesL() const;
+
+protected:
+
+    /**
+     * CJavaRegistryEntry::CJavaRegistryEntry constructor
+     *
+     * @since S60 v3.2
+     * @param aWritableEntry Pointer to a writable entry, to delegate
+     *          getter methods. Pointer ownership taken.
+     */
+    CJavaRegistryEntry(Java::Manager::Registry::
+                       CWriteableJavaRegistryEntry* aWritableEntry);
+
+    /**
+     * CJavaRegistryEntry::WritableEntry method returns the member
+     * of this class;
+     *
+     * @since S60 v3.2
+     * @return Returns the member of this class.
+     */
+    Java::Manager::Registry::
+    CWriteableJavaRegistryEntry* WritableEntry() const;
+
+protected: // Data
+
+
+    /**
+     * CJavaRegistryEntry::iWritableEntry member
+     * Pointer Owned
+     *
+     * @since S60 v3.2
+     */
+    Java::Manager::Registry::CWriteableJavaRegistryEntry* iWritableEntry;
+
+private: // Data
+
+
+    RPointerArray<MJavaAttribute> iAttributes;
+
+};
+
+} // namespace Java
+
+#endif // JAVAREGISTRYENTRY_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_registry_api/inc/javaregistryentrytype.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Java Registy API header file
+*
+*/
+
+
+#ifndef JAVAREGISTRYENTRYTYPE_H
+#define JAVAREGISTRYENTRYTYPE_H
+
+namespace Java
+{
+
+/**
+ * This enumeration lists Java Registry Entry types.
+ */
+enum TJavaRegistryEntryType
+{
+    // EGeneralPackage defines the starting value of the range including
+    // the ids of entry types which are considered as package entries
+    EGeneralPackage         = 100,
+    EMidp2MidletSuite       = 101,
+    EDeploymentPackage      = 102,    // OSGi Deployment Package
+    EBundle                 = 103,
+    EOsgiAwareMidletSuite   = 104,    // OSGi Aware Midlet Suite
+
+    // EGeneralApplication defines the starting value of the range including
+    // the ids of entry types which are considered as application entries
+    EGeneralApplication     = 200,
+    EMidp2Midlet            = 201,
+    EOsgiService            = 202,
+    EOsgiAwareMidlet        = 203,    // OSGi Aware Midlet Application
+    EERCP                   = 204     // eRCP Application
+};
+
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_registry_api/inc/javaregistryincludes.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Java Registy API header file
+*
+*/
+
+
+#ifndef JAVAREGISTRYDOMAINAPI_H
+#define JAVAREGISTRYDOMAINAPI_H
+
+#include "javaregistry.h"
+#include "javaregistryentry.h"
+#include "javaregistrypackageentry.h"
+#include "javaregistryapplicationentry.h"
+
+#endif // JAVAREGISTRYDOMAINAPI_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_registry_api/inc/javaregistrypackageentry.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,200 @@
+/*
+* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Java Registy API header file
+*
+*/
+
+
+#ifndef JAVAREGISTRYPACKAGEENTRY_H
+#define JAVAREGISTRYPACKAGEENTRY_H
+
+#include <e32base.h>
+#include <e32cmn.h>
+#include <f32file.h>
+#include "javaregistryentry.h"
+#include "javaregistryentrytype.h"
+
+// FORWARD DECLARATION
+class TAppVersion;
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+
+// FORWARD DECLARATION
+class CWriteableJavaRegistryPackageEntry;
+
+}// namespace Registry
+}// namespace Manager
+
+
+/**
+ * This subclass of CJavaRegistryEntry supports attributes
+ * for packages, that can contain embedded entries.
+ *
+ * @lib javaregistryclient.lib
+ * @since S60 v3.2
+ */
+class CJavaRegistryPackageEntry : public CJavaRegistryEntry
+{
+public:
+
+
+    /**
+     * CJavaRegistryPackageEntry::CJavaRegistryPackageEntry constructor
+     *
+     * @since S60 v3.2
+     * @param aWritableEntry Pointer to a writable entry, to delegate
+     *          getter methods. Pointer ownership taken.
+     */
+    CJavaRegistryPackageEntry(Java::Manager::Registry::
+                              CWriteableJavaRegistryPackageEntry* aWritableEntry);
+
+    /**
+     * Gets the version of Java entity represented by this package entry.
+     *
+     * @since S60 v3.2
+     * @return A TAppVersion object.
+     *         Default value if not set: TAppVersion( 0, 0, 0 ).
+     */
+    IMPORT_C TAppVersion Version() const;
+
+    /**
+     * Gets the vendor name of the Java entity represented by this
+     * package entry.
+     *
+     * @since S60 v3.2
+     * @return Vendor name of the Java entity.
+     *         Default value if not set: KNullDesC.
+     */
+    IMPORT_C const TDesC& Vendor() const;
+
+
+    /**
+     * Tells if the Java entity represented by this package entry
+     * is uninstallable.
+     *
+     * @since S60 v3.2
+     * @return ETrue if the entity is uninstallable, EFalse otherwise.
+     *         Default value if not set: ETrue.
+     */
+    IMPORT_C TBool IsUninstallable() const;
+
+    /**
+     * Returns an array of Uids associated with the Java entity
+     * represented by this package entry.
+     * E.g. if this entry represents a MIDlet suite this method returns
+     * an array of MIDlet Uids.
+     *
+     * @since S60 v3.2
+     * @param aUids [out] Returns Uids of the embedded entries.
+     */
+    IMPORT_C void GetEmbeddedEntries(RArray<TUid>& aUids) const;
+
+    /**
+     * Gets the number of embedded entries in Java entity represented
+     * by this package entry.
+     *
+     * @since S60 v3.2
+     * @return the number of embedded entries
+     */
+    IMPORT_C TInt NumberOfEmbeddedEntries() const;
+
+    /**
+     * Returns the corresponding embedded entry for the given Uid.
+     * The returned entry can be casted to the appropriate subclass
+     * according to the type property. If type is in the package range
+     * ( EGeneralPackage <= entryType < EGeneralApplication ), it can
+     * be casted to CJavaRegistryPackageEntry, and if type is
+     * in the application range ( EGeneralApplication <= entryType ),
+     * it can be casted to CJavaRegistryApplicationEntry.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aAppUid The Uid of the embedded entry to be retrieved
+     * @return The returned embedded entry or null if entry is not found.
+     *         Caller takes over the ownership of the object being
+     *         transferred.
+     */
+    IMPORT_C CJavaRegistryEntry*
+    EmbeddedEntryByUidL(const TUid& aEntryUid) const;
+
+    /**
+     * Returns an embedded entry specified by a zero-based index.
+     * There is not any guaranteed order for embedded entries inside this
+     * package entry.
+     * The returned entry can be casted to the appropriate subclass
+     * according to the type property. If type is in the package range
+     * ( EGeneralPackage <= entryType < EGeneralApplication ), it can
+     * be casted to CJavaRegistryPackageEntry, and if type is
+     * in the application range ( EGeneralApplication <= entryType ),
+     * it can be casted to CJavaRegistryApplicationEntry.
+     *
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aAppNum Zero-based index of the embedded entry to be
+     *                retrieved.
+     * @return The returned embedded entry or null if entry is not found.
+     *         Caller takes over the ownership of the object being
+     *         transferred.
+     */
+    IMPORT_C CJavaRegistryEntry*
+    EmbeddedEntryByNumberL(TInt aEntryNum) const;
+
+    /**
+     * Returns the amount of disk space taken by the installed application.
+     *
+     * @since S60 v5.1
+     * @return Returns the size of used disk space in bytes.
+     */
+    IMPORT_C TInt64 UsedUserDiskSpace() const;
+
+    /**
+     * Tells if the application package is pre-installed.
+     *
+     * If a pre-installed application package is upgraded,
+     * it remains marked as pre-installed.
+     *
+     * If a pre-installed application package is uninstalled
+     * and later installed again, it is no more marked as
+     * pre-installed.
+     *
+     * @since S60 v5.1
+     * @return ETrue if the application suite is pre-installed,
+     *         EFalse otherwise.
+     */
+    IMPORT_C TBool IsPreinstalled() const;
+
+protected:
+
+    /**
+     * CJavaRegistryPackageEntry::WritableEntry method returns the member
+     * of the parent class, but first casts it to
+     * CWriteableJavaRegistrypackageEntry.
+     *
+     * @since S60 v3.2
+     * @return Returns the member of this class.
+     */
+    Java::Manager::Registry::
+    CWriteableJavaRegistryPackageEntry* WritableEntry() const;
+
+};
+
+} // namespace Java
+
+#endif // JAVAREGISTRYPACKAGEENTRY_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_registry_api/inc/mjavaattribute.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,65 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Java Registy API header file
+*
+*/
+
+
+#ifndef MJAVAATTRIBUTE_H
+#define MJAVAATTRIBUTE_H
+
+
+#include <e32base.h>
+
+/**
+ * This interface is used to access Java application attributes.
+ * In case of MIDlets, these attributes are defined in
+ * Java Application Descriptor (JAD) and JAR manifest files.
+ */
+namespace Java
+{
+class MJavaAttribute
+{
+public:
+    /**
+    * This method returns name of attribute
+    *
+    * Since S60 v5.0
+    */
+    virtual const TDesC& Name() const = 0;
+    /**
+    * This method returns attribute's value
+    *
+    * Since S60 v5.0
+    */
+    virtual const TDesC& Value() const = 0;
+    /**
+    * This method returns if attribut is trusted or not (attribute is trusted if
+    * JAR file is signed and attribute is present in JAR manifest)
+    *
+    * Since S60 v5.0
+    */
+    virtual TBool Trusted() const = 0;
+
+    virtual ~MJavaAttribute() {};
+
+
+
+};
+} // namespace Registry
+
+#endif // MJAVAATTRIBUTE_H
+
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_registry_api/java_registry_api.metaxml	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,18 @@
+<?xml version="1.0" ?>
+<api id="82ec49d9ff0aa95b1a50b117f48bced2" dataversion="2.0">
+  <name>Java Registry API</name>
+  <description>Provides functionality to get information about installed Java applications and installation packages.</description>
+  <type>c++</type>
+  <collection>javamanager</collection>
+  <libs>
+    <lib name="javaregistryclient.lib" />
+  </libs>
+  <release category="platform" sinceversion="3.2"/>
+  <attributes>
+     <!-- This indicates wether the api provedes separate html documentation -->
+     <!-- or is the additional documentation generated from headers. -->
+     <!-- If you are unsuere then the value is "no" -->
+     <htmldocprovided>no</htmldocprovided>
+     <adaptation>no</adaptation>
+  </attributes>
+</api>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_superd_parser_api/build/bld.inf	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Build information file for Java DRM Utils API.
+*
+*/
+
+
+
+PRJ_EXPORTS
+
+#include <platform_paths.hrh>
+
+../inc/javasuperdparser.h    APP_LAYER_PLATFORM_EXPORT_PATH(javasuperdparser.h)
+
+PRJ_EXPORTS
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_superd_parser_api/inc/javasuperdparser.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,344 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CJavaSuperDParser definition.
+*
+*/
+
+
+#ifndef C_JAVASUPERDPARSER_H
+#define C_JAVASUPERDPARSER_H
+
+#include <e32base.h>
+#include <f32file.h>
+#include <s32strm.h>
+#include <e32std.h>
+
+class CZipFile;
+class CZipFileMember;
+
+namespace Java
+{
+
+/**
+ * CJavaSuperDParser includes methods for parsing SuperD packages.
+ *
+ * This class includes methods for creating a superdistributable JAR
+ * package and also methods for parsing a superdistributable JAR
+ * package when installing it.
+ *
+ * A superdistributable JAR package is in uncompressed ZIP format
+ * containing:
+ *     -# a manifest file (META-INF/MANIFEST.MF),
+ *     -# a JAD file and
+ *     -# either a plaintext JAR file or a JAR file in DCF.
+ *
+ * The manifest file must have the following attributes:
+ *     -# Distribution-Package: &lt;SuperD version number&gt;
+ *     -# Distribution-Descriptor-Filename: &lt;JAD file name&gt;
+ *     -# Distribution-Content-Filename: &lt;JAR file name&gt;
+ *
+ * To create a superdistributable jar package use the static method
+ * CreateSuperDPackageL:
+ * @code
+ * using namespace Java;
+ * CJavaSuperDParser::CreateSuperDPackageL( RFs& aFileSession,
+ *                                          const TDesC& aDestinationFileName,
+ *                                          const TDesC& aJadFileName,
+ *                                          const TDesC& aJarFileName );
+ * @endcode
+ *
+ * To parse a superdistributable jar package:
+ * @code
+ * using namespace Java;
+ * CJavaSuperDParser* parser( NULL );
+ * TRAPD( err, parser = CJavaSuperDParser::NewL( aFileSession,
+ *                                               KSuperDFile,
+ *                                               KDestinationDir ) );
+ * if ( !err )
+ *     {
+ *     // Now you know that KSuperDFile is a superdistributable package.
+ *     // JAD and JAR file have been written in KDestinationDir.
+ *     }
+ * delete parser;
+ * @endcode
+ *
+ * CJavaSuperDParser was renamed from CJcfSuperDParser.
+ *
+ * @lib   javadrmutils.lib
+ * @since S60 v3.2
+ */
+NONSHARABLE_CLASS(CJavaSuperDParser) : public CBase
+{
+
+public:
+
+    /**
+     * First phase constructor. Creates a CJavaSuperDParser object, parses
+     * the SuperD package and extracts its contents to the specified
+     * folder.
+     *
+     * @since S60 v3.2
+     * @param aFileSession File session handle to be used by this object
+     * @param aJarFileName Filename of the file containing SuperD
+     * package
+     * @param aDestinationFolder Folder where descriptor and content
+     * files will be saved
+     * @return The newly created CJavaSuperDParser object handle
+     * @leave KErrCorrupt If supplied file is not a SuperD package
+     */
+    IMPORT_C static CJavaSuperDParser* NewL(RFs& aFileSession,
+    const TDesC& aJarFileName,
+    const TDesC& aDestinationFolder);
+
+    /**
+     * First phase constructor. Creates a CJavaSuperDParser object, parses
+     * the SuperD package and extracts its contents to the specified
+     * folder.
+     *
+     * @since S60 v3.2
+     * @param aFileSession File session handle to be used by this object
+     * @param aJarFileHandle File handle of the file containing SuperD
+     * package
+     * @param aDestinationFolder Folder where descriptor and content
+     * files will be saved
+     * @return The newly created CJavaSuperDParser object handle
+     * @leave KErrCorrupt If supplied file is not a SuperD package
+     */
+    IMPORT_C static CJavaSuperDParser* NewL(RFs& aFileSession,
+                                            RFile& aJarFileHandle,
+                                            const TDesC& aDestinationFolder);
+
+    /**
+     * Destructor. Frees allocated resources.
+     *
+     * @since S60 v3.2
+     */
+    virtual ~CJavaSuperDParser();
+
+    /**
+     * Creates a superdistribution package from the given JAD and JAR file.
+     *
+     * @since S60 v3.2
+     * @param aFileSession File session handle to be used by this object
+     * @param aDestinationFileName Filename of the destination SuperD
+     * package.
+     * @param aDescriptorFileName JAD file name
+     * @param aContentFileName JAR file name
+     */
+    IMPORT_C static void CreateSuperDPackageL(RFs& aFileSession,
+            const TDesC& aDestinationFileName,
+            const TDesC& aDescriptorFileName,
+            const TDesC& aContentFileName);
+
+    /**
+     * Returns the name of the JAD file in the SuperD package parsed by
+     * this object.
+     *
+     * @since S60 v3.2
+     * @return Descriptor file name
+     */
+    IMPORT_C TFileName DescriptorFileName() const;
+
+    /**
+     * Returns the name of the JAR file in the SuperD package parsed by
+     * this object.
+     *
+     * @since S60 v3.2
+     * @return Content file name
+     */
+    IMPORT_C TFileName ContentFileName() const;
+
+private:
+
+    /**
+     * Private C++ constructor.
+     *
+     * @since S60 v3.2
+     * @param aFileSession File session handle to be used by this object
+     */
+    CJavaSuperDParser(RFs& aFileSession);
+
+    /**
+     * Second phase Symbian constructor. Extracts the contents of the
+     * SuperD package into the destination folder.
+     *
+     * @since S60 v3.2
+     * @param aJarFileName File name of SuperD package in the files system
+     * @param aDestinationFolder Files from the package will be extracted
+     * here.
+     * @leave KErrCorrupt If supplied file is not a SuperD package
+     */
+    void ConstructL(const TDesC& aJarFileName,
+                    const TDesC& aDestinationFolder);
+
+    /**
+     * Second phase Symbian constructor. Checks and extracts the contents
+     * of the SuperD package into the destination folder with
+     * ParseZipFileL.
+     *
+     * @since S60 v3.2
+     * @param aJarFileHandle File handle to the SuperD package
+     * @param aDestinationFolder Files from the package will be extracted
+     * here.
+     * @leave KErrCorrupt If supplied file is not a SuperD package
+     */
+    void ConstructL(RFile& aJarFileHandle,
+                    const TDesC& aDestinationFolder);
+
+    /**
+     * Calculates the CRC of a given file according to zip specification.
+     *
+     * @since S60 v3.2
+     * @param aFile File to calculate the CRC for
+     * @return CRC value
+     */
+    static TUint32 CalculateCRC(RFile& aFile);
+
+    /**
+     * Creates and writes the MANIFEST.MF file for the SuperD package.
+     * The manifest file contains the following three lines:
+     *     -# Distribution-Package: &lt;SuperD version number&gt;
+     *     -# Distribution-Descriptor-Filename: &lt;JAD file name&gt;
+     *     -# Distribution-Content-Filename: &lt;JAR file name&gt;
+     *
+     * This function creates a META-INF/MANIFEST.MF (in the META-INF
+     * directory inside the SuperD JAR file with the structure above,
+     * and writes it to a RWriteStream with WriteEntryAndUpdateIndexL.
+     *
+     * @since S60 v3.2
+     * @param aFileSession File session handle to be used by this object
+     * @param aStream File write stream where the manifest file will be
+     * written
+     * @param aCurrentOffset Offset where to start to write in the write
+     * stream
+     * @param aZipIndex The zip file index
+     * @param aRelativeJadFileName Name of the JAD file with relative path
+     * @param aRelativeJarFileName Name of the JAR file with relative path
+     */
+    static void CreateAndWriteManifestL(RFs& aFileSession,
+                                        RWriteStream& aStream,
+                                        TInt& aCurrentOffset,
+                                        HBufC8*& aZipIndex,
+                                        const TDesC8& aRelativeJadFileName,
+                                        const TDesC8& aRelativeJarFileName);
+    /**
+     * Writes an entry (file or directory) to the zip file stream and
+     * updates the zip file index.
+     *
+     * @since S60 v3.2
+     * @param aFileSession File session handle to be used by this object
+     * @param aStream ZIP file write stream where the entry will be written
+     * @param aCurrentOffset Offset where to start to write
+     * @param aZipIndex The zip file index
+     * @param aRelativeFileName Relative name of the entry inside the ZIP
+     * file
+     * @param aFileName Name of the file in the file system which will be
+     * written in the ZIP file. Use NULL to create a directory.
+     */
+    static void WriteEntryAndUpdateIndexL(RFs& aFileSession,
+                                          RWriteStream& aStream,
+                                          TInt& aCurrentOffset,
+                                          HBufC8*& aZipIndex,
+                                          const TDesC8& aRelativeFileName,
+                                          const TDesC* aFileName);
+    /**
+     * Writes the ZIP index entry to the ZIP output stream. The ZIP index
+     * should be the last entry in the ZIP file.
+     *
+     * @since S60 v3.2
+     * @param aStream ZIP file write stream where the entry will be written
+     * @param aCurrentOffset Offset where to start to write
+     * @param aZipIndex The zip file index which will be written in the stream
+     */
+    static void WriteIndexL(RWriteStream& aStream,
+                            TInt aCurrentOffset,
+                            const HBufC8* aZipIndex);
+
+    /**
+     * Checks and parses the contents of the SuperD package.
+     *
+     * @since S60 v3.2
+     * @param aDestinationFolder Files from the package will be extracted
+     * here.
+     */
+    void ParseZipFileL(const TDesC& aDestinationFolder);
+
+    /**
+     * Checks from the manifest file that this is a SuperD package.
+     * Extracts the JAD and JAR file name from the manifest file in the
+     * SuperD package and checks wether the package version is compatible
+     * with the parser.
+     *
+     * @since S60 v3.2
+     * @param aManifest The manifest file entry in the ZIP file.
+     */
+    void ParseManifestL(CZipFileMember* aManifest);
+
+    /**
+     * Extracts the JAD and the JAR file from the SuperD package to the
+     * destination folder.
+     *
+     * @since S60 v3.2
+     * @param aDestinationFolder Destination folder name.
+     */
+    void WriteFileL(const TDesC& aDestinationFolder);
+
+private: // data
+
+    /**
+     * File session handle to be used by this object.
+     * Not own.
+     */
+    RFs& iFileSession;
+
+    /**
+     * Zip file object.
+     * Own.
+     */
+    CZipFile*       iZipFile;
+
+    /**
+     * JAD file entry in the SuperD package.
+     * Own.
+     */
+    CZipFileMember* iJadMember;
+
+    /**
+     * JAR file entry in the SuperD package.
+     * Own.
+     */
+    CZipFileMember* iJarMember;
+
+    /**
+     * Shows wether there is a valid manifest file in the package.
+     */
+    TBool           iManifestFound;
+
+    /**
+     * Name of the JAD file in the SuperD package.
+     */
+    TFileName       iDescriptorFileName;
+
+    /**
+     * Name of the JAR file in the SuperD package.
+     */
+    TFileName       iContentFileName;
+
+};
+
+}
+
+#endif // C_JAVASUPERDPARSER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_plat/java_superd_parser_api/java_superd_parser_api.metaxml	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,18 @@
+<?xml version="1.0" ?>
+<api id="01ecb2345c6a46912da51c209739aab3" dataversion="1.0">
+  <name>Java SuperD Parser API</name>
+  <description>Provides functionality to create and parse superdistributable JAR packages. There is a special JAR package format for Java applications. This format is used when end users send DRM protected java applications to each other. Superdistributable package includes Java application in encrypted format. The decryption key can be purchased separately.</description>
+  <type>c++</type>
+  <subsystem>javautils</subsystem>
+  <libs>
+    <lib name="javadrmutils.lib" />
+  </libs>
+  <release category="domain" sinceversion="3.2" deprecatedsince="9.2"/>
+  <attributes>
+     <!-- This indicates wether the api provedes separate html documentation -->
+     <!-- or is the additional documentation generated from headers. -->
+     <!-- If you are unsuere then the value is "no" -->
+     <htmldocprovided>yes</htmldocprovided>
+     <adaptation>no</adaptation>
+  </attributes>
+</api>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/group/bld.inf	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+*
+*/
+
+
+// bld.inf of subprojects
+#include "../javadrmutils/build/bld.inf"
+#include "../javaenvinfo/build/bld.inf"
+#include "../javaregistry/clientserver/client/build/bld.inf"
+#include "../javadebugapi/build/bld.inf"
+
+PRJ_EXPORTS
+../rom/javastubs.iby    CORE_APP_LAYER_IBY_EXPORT_PATH(javastubs.iby)
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javadebugapi/build/bld.inf	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Java Debug API build info file
+*
+*/
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+javadebugapi.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javadebugapi/build/javadebugapi.mmp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Java Debug API build file
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+TARGET        javadebugapi.dll
+TARGETTYPE    dll
+CAPABILITY    CAP_GENERAL_DLL
+VENDORID      VID_DEFAULT
+
+PAGED
+APP_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH    ../src
+SOURCE        javadebugapi.cpp
+
+LIBRARY       euser.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javadebugapi/bwins/javadebugapiu.def	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,7 @@
+EXPORTS
+	?installApp@debug@java@@YAHAAVHBufC16@@AAVTUid@@AAV?$RArray@VTUid@@@@@Z @ 1 NONAME ; int java::debug::installApp(class HBufC16 &, class TUid &, class RArray<class TUid> &)
+	?startApp@debug@java@@YAHVTUid@@AAVHBufC16@@@Z @ 2 NONAME ; int java::debug::startApp(class TUid, class HBufC16 &)
+	?stopApp@debug@java@@YAHVTUid@@@Z @ 3 NONAME ; int java::debug::stopApp(class TUid)
+	?uninstallApp@debug@java@@YAHVTUid@@@Z @ 4 NONAME ; int java::debug::uninstallApp(class TUid)
+	?createInstance@JavaDiagnostic@debug@java@@SAPAV123@XZ @ 5 NONAME ; class java::debug::JavaDiagnostic * java::debug::JavaDiagnostic::createInstance(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javadebugapi/eabi/javadebugapiu.def	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,7 @@
+EXPORTS
+	_ZN4java5debug10installAppER7HBufC16R4TUidR6RArrayIS3_E @ 1 NONAME
+	_ZN4java5debug12uninstallAppE4TUid @ 2 NONAME
+	_ZN4java5debug7stopAppE4TUid @ 3 NONAME
+	_ZN4java5debug8startAppE4TUidR7HBufC16 @ 4 NONAME
+	_ZN4java5debug14JavaDiagnostic14createInstanceEv @ 5 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javadebugapi/src/javadebugapi.cpp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,53 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Java Debug API stub implementation.
+*
+*/
+
+
+#include <e32base.h>
+#include <javadebugapi.h>
+#include <javadiagnostic.h>
+
+EXPORT_C
+TBool java::debug::installApp(HBufC& /*aFilename*/,
+                              TUid& /*aSuiteUid*/,
+                              RArray<TUid>& /*aApplicationUid*/)
+{
+    return EFalse;
+}
+
+EXPORT_C
+TBool java::debug::uninstallApp(TUid /*aSuiteUid*/)
+{
+    return EFalse;
+}
+
+EXPORT_C
+TBool java::debug::startApp(TUid /*aApplicationUid*/, HBufC& /*aUeiParameters*/)
+{
+    return EFalse;
+}
+
+EXPORT_C
+TBool java::debug::stopApp(TUid /*aApplicationUid*/)
+{
+    return EFalse;
+}
+
+EXPORT_C
+java::debug::JavaDiagnostic* java::debug::JavaDiagnostic::createInstance()
+{
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javadrmutils/build/bld.inf	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Build information file for project JavaDrmUtils
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_MMPFILES
+javadrmutils.mmp
+
+PRJ_EXPORTS
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javadrmutils/build/javadrmutils.mmp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,37 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Project definition file for javadrmutils stub
+*             
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+TARGET          javadrmutils.dll
+TARGETTYPE      dll
+
+CAPABILITY      CAP_GENERAL_DLL
+VENDORID        VID_DEFAULT
+
+UID             0x100039CE 0x1028246D
+
+USERINCLUDE     ../../../java_plat/java_superd_parser_api/inc 
+
+SOURCEPATH      ../src
+SOURCE          javasuperdparser.cpp 
+
+APP_LAYER_SYSTEMINCLUDE
+
+LIBRARY         euser.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javadrmutils/bwins/javadrmutilsu.def	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,7 @@
+EXPORTS
+	?ContentFileName@CJavaSuperDParser@Java@@QBE?AV?$TBuf@$0BAA@@@XZ @ 1 NONAME ; class TBuf<256> Java::CJavaSuperDParser::ContentFileName(void) const
+	?CreateSuperDPackageL@CJavaSuperDParser@Java@@SAXAAVRFs@@ABVTDesC16@@11@Z @ 2 NONAME ; void Java::CJavaSuperDParser::CreateSuperDPackageL(class RFs &, class TDesC16 const &, class TDesC16 const &, class TDesC16 const &)
+	?DescriptorFileName@CJavaSuperDParser@Java@@QBE?AV?$TBuf@$0BAA@@@XZ @ 3 NONAME ; class TBuf<256> Java::CJavaSuperDParser::DescriptorFileName(void) const
+	?NewL@CJavaSuperDParser@Java@@SAPAV12@AAVRFs@@AAVRFile@@ABVTDesC16@@@Z @ 4 NONAME ; class Java::CJavaSuperDParser * Java::CJavaSuperDParser::NewL(class RFs &, class RFile &, class TDesC16 const &)
+	?NewL@CJavaSuperDParser@Java@@SAPAV12@AAVRFs@@ABVTDesC16@@1@Z @ 5 NONAME ; class Java::CJavaSuperDParser * Java::CJavaSuperDParser::NewL(class RFs &, class TDesC16 const &, class TDesC16 const &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javadrmutils/eabi/javadrmutilsu.def	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,7 @@
+EXPORTS
+	_ZN4Java17CJavaSuperDParser20CreateSuperDPackageLER3RFsRK7TDesC16S5_S5_ @ 1 NONAME
+	_ZN4Java17CJavaSuperDParser4NewLER3RFsR5RFileRK7TDesC16 @ 2 NONAME
+	_ZN4Java17CJavaSuperDParser4NewLER3RFsRK7TDesC16S5_ @ 3 NONAME
+	_ZNK4Java17CJavaSuperDParser15ContentFileNameEv @ 4 NONAME
+	_ZNK4Java17CJavaSuperDParser18DescriptorFileNameEv @ 5 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javadrmutils/src/javasuperdparser.cpp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,89 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CJavaSuperDParser implementation (EXCLUDE_JAVA version)
+*
+*/
+
+
+#include "javasuperdparser.h"
+
+using namespace Java;
+
+
+// ======== MEMBER FUNCTIONS ========
+
+
+// ----------------------------------------------------------------------------
+// CJavaSuperDParser::NewL()
+// ----------------------------------------------------------------------------
+//
+EXPORT_C CJavaSuperDParser* CJavaSuperDParser::NewL(RFs& /* aFileSession */,
+        const TDesC& /* aJarFileName */,
+        const TDesC& /* aDestinationFolder */)
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ----------------------------------------------------------------------------
+// CJavaSuperDParser::NewL()
+// ----------------------------------------------------------------------------
+//
+EXPORT_C CJavaSuperDParser* CJavaSuperDParser::NewL(RFs& /* aFileSession */,
+        RFile& /* aJarFileHandle */,
+        const TDesC& /* aDestinationFolder */)
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ----------------------------------------------------------------------------
+// CJavaSuperDParser::~CJavaSuperDParser()
+// ----------------------------------------------------------------------------
+//
+CJavaSuperDParser::~CJavaSuperDParser()
+{
+}
+
+// ----------------------------------------------------------------------------
+// CJavaSuperDParser::CreateSuperDPackageL()
+// ----------------------------------------------------------------------------
+//
+EXPORT_C void CJavaSuperDParser::CreateSuperDPackageL(RFs& /* aFileSession */,
+        const TDesC& /* aDestinationFileName */,
+        const TDesC& /* aDescriptorFileName */,
+        const TDesC& /* aContentFileName */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ----------------------------------------------------------------------------
+// CJavaSuperDParser::DescriptorFileName
+// ----------------------------------------------------------------------------
+//
+EXPORT_C TFileName CJavaSuperDParser::DescriptorFileName() const
+{
+    return TFileName(KNullDesC);
+}
+
+// ----------------------------------------------------------------------------
+// CJavaSuperDParser::ContentFileName
+// ----------------------------------------------------------------------------
+//
+EXPORT_C TFileName CJavaSuperDParser::ContentFileName() const
+{
+    return TFileName(KNullDesC);
+}
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaenvinfo/build/bld.inf	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Java Environment Info build info file
+*
+*/
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+
+javaenvinfo.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaenvinfo/build/javaenvinfo.mmp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,36 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  JavaEnvInfo build file
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+TARGET        javaenvinfo.dll
+TARGETTYPE    dll
+CAPABILITY    CAP_GENERAL_DLL
+UID	          0x1000008d 0x2001B2A5
+VENDORID      VID_DEFAULT
+
+PAGED
+
+APP_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH    ../src
+
+SOURCE        javaenvinfo.cpp
+
+
+LIBRARY       euser.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaenvinfo/bwins/javaenvinfou.def	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,5 @@
+EXPORTS
+	?GetUserAgentHeaderL@JavaEnvInfo@Java@@SAPAVHBufC16@@XZ @ 1 NONAME ; class HBufC16 * Java::JavaEnvInfo::GetUserAgentHeaderL(void)
+	?Version@JavaEnvInfo@Java@@SA?AVTVersion@@XZ @ 2 NONAME ; class TVersion Java::JavaEnvInfo::Version(void)
+	?GetPlatformInfoL@JavaEnvInfo@Java@@SAPAVHBufC16@@XZ @ 3 NONAME ; class HBufC16 * Java::JavaEnvInfo::GetPlatformInfoL(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaenvinfo/eabi/javaenvinfou.def	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,5 @@
+EXPORTS
+	_ZN4Java11JavaEnvInfo16GetPlatformInfoLEv @ 1 NONAME
+	_ZN4Java11JavaEnvInfo19GetUserAgentHeaderLEv @ 2 NONAME
+	_ZN4Java11JavaEnvInfo7VersionEv @ 3 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaenvinfo/src/javaenvinfo.cpp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CJavaEnvInfo implementation.
+*
+*/
+
+
+#include <e32base.h>
+
+#include <javaenvinfo.h>
+
+namespace Java
+{
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// JavaEnvInfo::Version()
+// @return Java environment version
+// ---------------------------------------------------------------------------
+EXPORT_C TVersion JavaEnvInfo::Version()
+{
+    TVersion version(0, 0, 0);
+    return version;
+}
+
+// ---------------------------------------------------------------------------
+// JavaEnvInfo::GetUserAgentHeaderL
+// ---------------------------------------------------------------------------
+EXPORT_C HBufC* JavaEnvInfo::GetUserAgentHeaderL()
+{
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// JavaEnvInfo::GetUserAgentHeaderL
+// ---------------------------------------------------------------------------
+EXPORT_C HBufC* JavaEnvInfo::GetPlatformInfoL()
+{
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// JavaEnvInfo::GetJavaVersionL()
+// ---------------------------------------------------------------------------
+TVersion JavaEnvInfo::GetJavaVersionL()
+{
+    TVersion version(0, 0, 0);
+    return version;
+}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/build/bld.inf	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Build information file for project javaregclient
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_MMPFILES
+javaregclient.mmp
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/build/javaregclient.mmp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,53 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Project definition file for project javaregistryclient.dll
+*
+*/
+
+#include <platform_paths.hrh>
+
+TARGET          javaregistryclient.dll
+TARGETTYPE      DLL
+UID             0x1000008d 0x10282476
+
+// CAPABILITY 
+CAPABILITY      CAP_CLIENT_DLL
+VENDORID        VID_DEFAULT
+
+PAGED
+
+USERINCLUDE     ../inc
+USERINCLUDE     ../../common/inc
+
+SOURCEPATH      ../src
+SOURCE          javaregistry.cpp
+SOURCE          javaregistryentry.cpp
+SOURCE          javaregistryapplicationentry.cpp
+SOURCE          javaregistrypackageentry.cpp
+SOURCE          writeablejavaregistrypackageentry.cpp
+SOURCE          writeablejavaregistryentry.cpp
+SOURCE          writeablejavaregistryapplicationentry.cpp
+SOURCE          writeablejavaregistry.cpp 
+SOURCE          javaregistrybackupsupport.cpp
+SOURCE          javaregconverter.cpp
+
+SOURCEPATH      ../../common/src
+SOURCE          javaregproperty.cpp
+SOURCE          javapropertyarray.cpp
+
+APP_LAYER_SYSTEMINCLUDE
+
+LIBRARY         euser.lib
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/bwins/javaregistryclientu.def	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,180 @@
+EXPORTS
+	??0CWriteableJavaRegistry@Registry@Manager@Java@@IAE@XZ @ 1 NONAME ; Java::Manager::Registry::CWriteableJavaRegistry::CWriteableJavaRegistry(void)
+	??0CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@IAE@ABVTUid@@@Z @ 2 NONAME ; Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::CWriteableJavaRegistryApplicationEntry(class TUid const &)
+	??0CWriteableJavaRegistryEntry@Registry@Manager@Java@@IAE@ABVTUid@@@Z @ 3 NONAME ; Java::Manager::Registry::CWriteableJavaRegistryEntry::CWriteableJavaRegistryEntry(class TUid const &)
+	??0CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@IAE@ABVTUid@@@Z @ 4 NONAME ; Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::CWriteableJavaRegistryPackageEntry(class TUid const &)
+	??1CJavaProperty@Registry@Manager@Java@@UAE@XZ @ 5 NONAME ; Java::Manager::Registry::CJavaProperty::~CJavaProperty(void)
+	??1CJavaRegistryBackupSupport@Registry@Manager@Java@@UAE@XZ @ 6 NONAME ; Java::Manager::Registry::CJavaRegistryBackupSupport::~CJavaRegistryBackupSupport(void)
+	??1CJavaRegistryEntry@Java@@UAE@XZ @ 7 NONAME ; Java::CJavaRegistryEntry::~CJavaRegistryEntry(void)
+	??1CWriteableJavaRegistry@Registry@Manager@Java@@UAE@XZ @ 8 NONAME ; Java::Manager::Registry::CWriteableJavaRegistry::~CWriteableJavaRegistry(void)
+	??1CWriteableJavaRegistryEntry@Registry@Manager@Java@@UAE@XZ @ 9 NONAME ; Java::Manager::Registry::CWriteableJavaRegistryEntry::~CWriteableJavaRegistryEntry(void)
+	??1CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@UAE@XZ @ 10 NONAME ; Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::~CWriteableJavaRegistryPackageEntry(void)
+	??8CJavaProperty@Registry@Manager@Java@@QAEHABV0123@@Z @ 11 NONAME ; int Java::Manager::Registry::CJavaProperty::operator==(class Java::Manager::Registry::CJavaProperty const &)
+	?AddCertificateChainL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@QAEXABVTDesC8@@@Z @ 12 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryEntry::AddCertificateChainL(class TDesC8 const &)
+	?AddEmbeddedEntryL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QAEXABVTUid@@@Z @ 13 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::AddEmbeddedEntryL(class TUid const &)
+	?BooleanProperty@CWriteableJavaRegistryEntry@Registry@Manager@Java@@IBEHJH@Z @ 14 NONAME ; int Java::Manager::Registry::CWriteableJavaRegistryEntry::BooleanProperty(long, int) const
+	?CertificateChain@CJavaRegistryEntry@Java@@QBEABVTDesC8@@H@Z @ 15 NONAME ; class TDesC8 const & Java::CJavaRegistryEntry::CertificateChain(int) const
+	?CertificateChain@CWriteableJavaRegistryEntry@Registry@Manager@Java@@QBEABVTDesC8@@H@Z @ 16 NONAME ; class TDesC8 const & Java::Manager::Registry::CWriteableJavaRegistryEntry::CertificateChain(int) const
+	?ChangeBURState@CJavaRegistryBackupSupport@Registry@Manager@Java@@QBEHABW4TBackupState@234@@Z @ 17 NONAME ; int Java::Manager::Registry::CJavaRegistryBackupSupport::ChangeBURState(enum Java::Manager::Registry::TBackupState const &) const
+	?ConstructL@CWriteableJavaRegistry@Registry@Manager@Java@@IAEXHH@Z @ 18 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistry::ConstructL(int, int)
+	?ConstructL@CWriteableJavaRegistry@Registry@Manager@Java@@IAEX_J@Z @ 19 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistry::ConstructL(long long)
+	?ConstructL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@IAEXW4TJavaRegistryEntryType@4@@Z @ 20 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryEntry::ConstructL(enum Java::TJavaRegistryEntryType)
+	?DecideEntryTypeAndCreateL@CWriteableJavaRegistry@Registry@Manager@Java@@MBEPAVCWriteableJavaRegistryEntry@234@ABVTUid@@PAVCJavaPropertyArray@234@@Z @ 21 NONAME ; class Java::Manager::Registry::CWriteableJavaRegistryEntry * Java::Manager::Registry::CWriteableJavaRegistry::DecideEntryTypeAndCreateL(class TUid const &, class Java::Manager::Registry::CJavaPropertyArray *) const
+	?DeleteProperty@CWriteableJavaRegistryEntry@Registry@Manager@Java@@IAEXH@Z @ 22 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryEntry::DeleteProperty(int)
+	?DownloadPlugin@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QBEABVTDesC8@@XZ @ 23 NONAME ; class TDesC8 const & Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::DownloadPlugin(void) const
+	?Drive@CJavaRegistryEntry@Java@@QBE?AW4TDriveNumber@@XZ @ 24 NONAME ; enum TDriveNumber Java::CJavaRegistryEntry::Drive(void) const
+	?Drive@CWriteableJavaRegistryEntry@Registry@Manager@Java@@QBE?AW4TDriveNumber@@XZ @ 25 NONAME ; enum TDriveNumber Java::Manager::Registry::CWriteableJavaRegistryEntry::Drive(void) const
+	?EmbeddedEntryByNumberL@CJavaRegistryPackageEntry@Java@@QBEPAVCJavaRegistryEntry@2@H@Z @ 26 NONAME ; class Java::CJavaRegistryEntry * Java::CJavaRegistryPackageEntry::EmbeddedEntryByNumberL(int) const
+	?EmbeddedEntryByNumberL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QBEPAVCWriteableJavaRegistryEntry@234@H@Z @ 27 NONAME ; class Java::Manager::Registry::CWriteableJavaRegistryEntry * Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::EmbeddedEntryByNumberL(int) const
+	?EmbeddedEntryByUidL@CJavaRegistryPackageEntry@Java@@QBEPAVCJavaRegistryEntry@2@ABVTUid@@@Z @ 28 NONAME ; class Java::CJavaRegistryEntry * Java::CJavaRegistryPackageEntry::EmbeddedEntryByUidL(class TUid const &) const
+	?EmbeddedEntryByUidL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QBEPAVCWriteableJavaRegistryEntry@234@ABVTUid@@@Z @ 29 NONAME ; class Java::Manager::Registry::CWriteableJavaRegistryEntry * Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::EmbeddedEntryByUidL(class TUid const &) const
+	?EntriesExistForDriveL@CJavaRegistryBackupSupport@Registry@Manager@Java@@QBEHABW4TDriveNumber@@@Z @ 30 NONAME ; int Java::Manager::Registry::CJavaRegistryBackupSupport::EntriesExistForDriveL(enum TDriveNumber const &) const
+	?GenerateUidsL@CWriteableJavaRegistry@Registry@Manager@Java@@QBEXAAV?$RArray@VTUid@@@@H@Z @ 31 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistry::GenerateUidsL(class RArray<class TUid> &, int) const
+	?GetCertificateChainsL@JavaRegConverter@Registry@Manager@Java@@SAXABVTDesC16@@AAV?$RPointerArray@VHBufC8@@@@@Z @ 32 NONAME ; void Java::Manager::Registry::JavaRegConverter::GetCertificateChainsL(class TDesC16 const &, class RPointerArray<class HBufC8> &)
+	?GetEmbeddedEntries@CJavaRegistryPackageEntry@Java@@QBEXAAV?$RArray@VTUid@@@@@Z @ 33 NONAME ; void Java::CJavaRegistryPackageEntry::GetEmbeddedEntries(class RArray<class TUid> &) const
+	?GetEmbeddedEntries@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QBEXAAV?$RArray@VTUid@@@@@Z @ 34 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::GetEmbeddedEntries(class RArray<class TUid> &) const
+	?GetPropertyIndex@CWriteableJavaRegistryEntry@Registry@Manager@Java@@IBEHJ@Z @ 35 NONAME ; int Java::Manager::Registry::CWriteableJavaRegistryEntry::GetPropertyIndex(long) const
+	?GetRegistryEntryUidsL@CJavaRegistry@Java@@QBEXAAV?$RArray@VTUid@@@@@Z @ 36 NONAME ; void Java::CJavaRegistry::GetRegistryEntryUidsL(class RArray<class TUid> &) const
+	?GetRegistryEntryUidsL@CJavaRegistry@Java@@QBEXW4TJavaRegistryEntryType@2@AAV?$RArray@VTUid@@@@@Z @ 37 NONAME ; void Java::CJavaRegistry::GetRegistryEntryUidsL(enum Java::TJavaRegistryEntryType, class RArray<class TUid> &) const
+	?GetRegistryEntryUidsL@CWriteableJavaRegistry@Registry@Manager@Java@@QBEXAAV?$RArray@VTUid@@@@@Z @ 38 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistry::GetRegistryEntryUidsL(class RArray<class TUid> &) const
+	?GetRegistryEntryUidsL@CWriteableJavaRegistry@Registry@Manager@Java@@QBEXABV?$RPointerArray@VCJavaProperty@Registry@Manager@Java@@@@AAV?$RArray@VTUid@@@@@Z @ 39 NONAME ABSENT ; void Java::Manager::Registry::CWriteableJavaRegistry::GetRegistryEntryUidsL(class RPointerArray<class Java::Manager::Registry::CJavaProperty> const &, class RArray<class TUid> &) const
+	?GetRegistryEntryUidsL@CWriteableJavaRegistry@Registry@Manager@Java@@QBEXW4TJavaRegistryEntryType@4@AAV?$RArray@VTUid@@@@@Z @ 40 NONAME ABSENT ; void Java::Manager::Registry::CWriteableJavaRegistry::GetRegistryEntryUidsL(enum Java::TJavaRegistryEntryType, class RArray<class TUid> &) const
+	?GetTAppVersion@JavaRegConverter@Registry@Manager@Java@@SA?AVTAppVersion@@ABVTDesC16@@V5@@Z @ 41 NONAME ; class TAppVersion Java::Manager::Registry::JavaRegConverter::GetTAppVersion(class TDesC16 const &, class TAppVersion)
+	?GetTAppVersionL@JavaRegConverter@Registry@Manager@Java@@SA?AVTAppVersion@@ABVTDesC16@@@Z @ 42 NONAME ; class TAppVersion Java::Manager::Registry::JavaRegConverter::GetTAppVersionL(class TDesC16 const &)
+	?GetTBool@JavaRegConverter@Registry@Manager@Java@@SAHABVTDesC16@@H@Z @ 43 NONAME ; int Java::Manager::Registry::JavaRegConverter::GetTBool(class TDesC16 const &, int)
+	?GetTBoolL@JavaRegConverter@Registry@Manager@Java@@SAHABVTDesC16@@@Z @ 44 NONAME ; int Java::Manager::Registry::JavaRegConverter::GetTBoolL(class TDesC16 const &)
+	?GetTInt@JavaRegConverter@Registry@Manager@Java@@SAJABVTDesC16@@J@Z @ 45 NONAME ; long Java::Manager::Registry::JavaRegConverter::GetTInt(class TDesC16 const &, long)
+	?GetTIntL@JavaRegConverter@Registry@Manager@Java@@SAJABVTDesC16@@@Z @ 46 NONAME ; long Java::Manager::Registry::JavaRegConverter::GetTIntL(class TDesC16 const &)
+	?GetUnicodeDescriptorsL@JavaRegConverter@Registry@Manager@Java@@SAXABVTDesC16@@AAV?$RPointerArray@VHBufC16@@@@@Z @ 47 NONAME ; void Java::Manager::Registry::JavaRegConverter::GetUnicodeDescriptorsL(class TDesC16 const &, class RPointerArray<class HBufC16> &)
+	?GroupName@CJavaRegistryApplicationEntry@Java@@QBEABVTDesC16@@XZ @ 48 NONAME ; class TDesC16 const & Java::CJavaRegistryApplicationEntry::GroupName(void) const
+	?GroupName@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@QBEABVTDesC16@@XZ @ 49 NONAME ; class TDesC16 const & Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::GroupName(void) const
+	?Id@CJavaProperty@Registry@Manager@Java@@QBEJXZ @ 50 NONAME ; long Java::Manager::Registry::CJavaProperty::Id(void) const
+	?InstallPackageUid@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@QBE?AVTUid@@XZ @ 51 NONAME ; class TUid Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::InstallPackageUid(void) const
+	?InstallPlugin@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QBEABVTDesC8@@XZ @ 52 NONAME ; class TDesC8 const & Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::InstallPlugin(void) const
+	?IntegerProperty@CWriteableJavaRegistryEntry@Registry@Manager@Java@@IBEJJJ@Z @ 53 NONAME ; long Java::Manager::Registry::CWriteableJavaRegistryEntry::IntegerProperty(long, long) const
+	?IsResident@CJavaRegistryApplicationEntry@Java@@QBEHXZ @ 54 NONAME ; int Java::CJavaRegistryApplicationEntry::IsResident(void) const
+	?IsResident@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@QBEHXZ @ 55 NONAME ; int Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::IsResident(void) const
+	?IsStartable@CJavaRegistryApplicationEntry@Java@@QBEHXZ @ 56 NONAME ; int Java::CJavaRegistryApplicationEntry::IsStartable(void) const
+	?IsStartable@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@QBEHXZ @ 57 NONAME ; int Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::IsStartable(void) const
+	?IsUninstallable@CJavaRegistryPackageEntry@Java@@QBEHXZ @ 58 NONAME ; int Java::CJavaRegistryPackageEntry::IsUninstallable(void) const
+	?IsUninstallable@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QBEHXZ @ 59 NONAME ; int Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::IsUninstallable(void) const
+	?IsVisible@CJavaRegistryApplicationEntry@Java@@QBEHXZ @ 60 NONAME ; int Java::CJavaRegistryApplicationEntry::IsVisible(void) const
+	?IsVisible@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@QBEHXZ @ 61 NONAME ; int Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::IsVisible(void) const
+	?Name@CJavaRegistryEntry@Java@@QBEABVTDesC16@@XZ @ 62 NONAME ; class TDesC16 const & Java::CJavaRegistryEntry::Name(void) const
+	?Name@CWriteableJavaRegistryEntry@Registry@Manager@Java@@QBEABVTDesC16@@XZ @ 63 NONAME ; class TDesC16 const & Java::Manager::Registry::CWriteableJavaRegistryEntry::Name(void) const
+	?NewL@CJavaProperty@Registry@Manager@Java@@SAPAV1234@JABVTDesC16@@@Z @ 64 NONAME ; class Java::Manager::Registry::CJavaProperty * Java::Manager::Registry::CJavaProperty::NewL(long, class TDesC16 const &)
+	?NewL@CJavaRegistry@Java@@SAPAV12@XZ @ 65 NONAME ; class Java::CJavaRegistry * Java::CJavaRegistry::NewL(void)
+	?NewL@CJavaRegistryBackupSupport@Registry@Manager@Java@@SAPAV1234@XZ @ 66 NONAME ; class Java::Manager::Registry::CJavaRegistryBackupSupport * Java::Manager::Registry::CJavaRegistryBackupSupport::NewL(void)
+	?NewL@CWriteableJavaRegistry@Registry@Manager@Java@@SAPAV1234@H@Z @ 67 NONAME ; class Java::Manager::Registry::CWriteableJavaRegistry * Java::Manager::Registry::CWriteableJavaRegistry::NewL(int)
+	?NewL@CWriteableJavaRegistry@Registry@Manager@Java@@SAPAV1234@_J@Z @ 68 NONAME ; class Java::Manager::Registry::CWriteableJavaRegistry * Java::Manager::Registry::CWriteableJavaRegistry::NewL(long long)
+	?NewL@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@SAPAV1234@ABVTUid@@@Z @ 69 NONAME ; class Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry * Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::NewL(class TUid const &)
+	?NewL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@SAPAV1234@ABVTUid@@@Z @ 70 NONAME ; class Java::Manager::Registry::CWriteableJavaRegistryPackageEntry * Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::NewL(class TUid const &)
+	?NewLC@CJavaProperty@Registry@Manager@Java@@SAPAV1234@JABVTDesC16@@@Z @ 71 NONAME ; class Java::Manager::Registry::CJavaProperty * Java::Manager::Registry::CJavaProperty::NewLC(long, class TDesC16 const &)
+	?NewLC@CJavaRegistry@Java@@SAPAV12@XZ @ 72 NONAME ; class Java::CJavaRegistry * Java::CJavaRegistry::NewLC(void)
+	?NewLC@CJavaRegistryBackupSupport@Registry@Manager@Java@@SAPAV1234@XZ @ 73 NONAME ; class Java::Manager::Registry::CJavaRegistryBackupSupport * Java::Manager::Registry::CJavaRegistryBackupSupport::NewLC(void)
+	?NewLC@CWriteableJavaRegistry@Registry@Manager@Java@@SAPAV1234@H@Z @ 74 NONAME ; class Java::Manager::Registry::CWriteableJavaRegistry * Java::Manager::Registry::CWriteableJavaRegistry::NewLC(int)
+	?NewLC@CWriteableJavaRegistry@Registry@Manager@Java@@SAPAV1234@_J@Z @ 75 NONAME ; class Java::Manager::Registry::CWriteableJavaRegistry * Java::Manager::Registry::CWriteableJavaRegistry::NewLC(long long)
+	?NewLC@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@SAPAV1234@ABVTUid@@@Z @ 76 NONAME ; class Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry * Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::NewLC(class TUid const &)
+	?NewLC@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@SAPAV1234@ABVTUid@@@Z @ 77 NONAME ; class Java::Manager::Registry::CWriteableJavaRegistryPackageEntry * Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::NewLC(class TUid const &)
+	?NumberOfCertificateChains@CJavaRegistryEntry@Java@@QBEHXZ @ 78 NONAME ; int Java::CJavaRegistryEntry::NumberOfCertificateChains(void) const
+	?NumberOfCertificateChains@CWriteableJavaRegistryEntry@Registry@Manager@Java@@QBEHXZ @ 79 NONAME ; int Java::Manager::Registry::CWriteableJavaRegistryEntry::NumberOfCertificateChains(void) const
+	?NumberOfEmbeddedEntries@CJavaRegistryPackageEntry@Java@@QBEHXZ @ 80 NONAME ; int Java::CJavaRegistryPackageEntry::NumberOfEmbeddedEntries(void) const
+	?NumberOfEmbeddedEntries@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QBEHXZ @ 81 NONAME ; int Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::NumberOfEmbeddedEntries(void) const
+	?PackageEntryL@CJavaRegistryApplicationEntry@Java@@QBEPAVCJavaRegistryPackageEntry@2@XZ @ 82 NONAME ; class Java::CJavaRegistryPackageEntry * Java::CJavaRegistryApplicationEntry::PackageEntryL(void) const
+	?PackageEntryL@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@QBEPAVCWriteableJavaRegistryPackageEntry@234@XZ @ 83 NONAME ; class Java::Manager::Registry::CWriteableJavaRegistryPackageEntry * Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::PackageEntryL(void) const
+	?Property@CWriteableJavaRegistryEntry@Registry@Manager@Java@@QBEPBVCJavaProperty@234@J@Z @ 84 NONAME ; class Java::Manager::Registry::CJavaProperty const * Java::Manager::Registry::CWriteableJavaRegistryEntry::Property(long) const
+	?RegistryEntryExistsL@CJavaRegistry@Java@@QBEHABVTUid@@@Z @ 85 NONAME ; int Java::CJavaRegistry::RegistryEntryExistsL(class TUid const &) const
+	?RegistryEntryExistsL@CWriteableJavaRegistry@Registry@Manager@Java@@QBEHABVTUid@@@Z @ 86 NONAME ; int Java::Manager::Registry::CWriteableJavaRegistry::RegistryEntryExistsL(class TUid const &) const
+	?RegistryEntryL@CJavaRegistry@Java@@QBEPAVCJavaRegistryEntry@2@ABVTUid@@@Z @ 87 NONAME ; class Java::CJavaRegistryEntry * Java::CJavaRegistry::RegistryEntryL(class TUid const &) const
+	?RegistryEntryL@CWriteableJavaRegistry@Registry@Manager@Java@@QBEPAVCWriteableJavaRegistryEntry@234@ABVTUid@@@Z @ 88 NONAME ABSENT ; class Java::Manager::Registry::CWriteableJavaRegistryEntry * Java::Manager::Registry::CWriteableJavaRegistry::RegistryEntryL(class TUid const &) const
+	?RemoveEmbeddedEntryL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QAEXABVTUid@@@Z @ 89 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::RemoveEmbeddedEntryL(class TUid const &)
+	?RemoveRegistryEntryL@CWriteableJavaRegistry@Registry@Manager@Java@@QBEXABVTUid@@H@Z @ 90 NONAME ABSENT ; void Java::Manager::Registry::CWriteableJavaRegistry::RemoveRegistryEntryL(class TUid const &, int) const
+	?SetBooleanPropertyL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@IAEXJH@Z @ 91 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryEntry::SetBooleanPropertyL(long, int)
+	?SetDescriptorPropertyL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@IAEXJABVTDesC16@@@Z @ 92 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryEntry::SetDescriptorPropertyL(long, class TDesC16 const &)
+	?SetDownloadPluginL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QAEXABVTDesC8@@@Z @ 93 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::SetDownloadPluginL(class TDesC8 const &)
+	?SetDriveL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@QAEXABW4TDriveNumber@@@Z @ 94 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryEntry::SetDriveL(enum TDriveNumber const &)
+	?SetGroupNameL@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@QAEXABVTDesC16@@@Z @ 95 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::SetGroupNameL(class TDesC16 const &)
+	?SetInstallPackageUidL@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@QAEXABVTUid@@@Z @ 96 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::SetInstallPackageUidL(class TUid const &)
+	?SetInstallPluginL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QAEXABVTDesC8@@@Z @ 97 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::SetInstallPluginL(class TDesC8 const &)
+	?SetIntegerPropertyL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@IAEXJJ@Z @ 98 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryEntry::SetIntegerPropertyL(long, long)
+	?SetNameL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@QAEXABVTDesC16@@@Z @ 99 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryEntry::SetNameL(class TDesC16 const &)
+	?SetPropertyL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@QAEXJABVTDesC16@@@Z @ 100 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryEntry::SetPropertyL(long, class TDesC16 const &)
+	?SetPropertyL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@UAEXPAVCJavaProperty@234@@Z @ 101 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryEntry::SetPropertyL(class Java::Manager::Registry::CJavaProperty *)
+	?SetPropertyL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@UAEXPAVCJavaProperty@234@@Z @ 102 NONAME ABSENT ; void Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::SetPropertyL(class Java::Manager::Registry::CJavaProperty *)
+	?SetRegistryEntryL@CWriteableJavaRegistry@Registry@Manager@Java@@QBEXABVCWriteableJavaRegistryEntry@234@@Z @ 103 NONAME ABSENT ; void Java::Manager::Registry::CWriteableJavaRegistry::SetRegistryEntryL(class Java::Manager::Registry::CWriteableJavaRegistryEntry const &) const
+	?SetResidentL@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@QAEXH@Z @ 104 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::SetResidentL(int)
+	?SetSizeL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QAEXH@Z @ 105 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::SetSizeL(int)
+	?SetStartableL@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@QAEXH@Z @ 106 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::SetStartableL(int)
+	?SetTypeL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@QAEXW4TJavaRegistryEntryType@4@@Z @ 107 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryEntry::SetTypeL(enum Java::TJavaRegistryEntryType)
+	?SetUninstallableL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QAEXH@Z @ 108 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::SetUninstallableL(int)
+	?SetVendorL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QAEXABVTDesC16@@@Z @ 109 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::SetVendorL(class TDesC16 const &)
+	?SetVersionL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QAEXABVTAppVersion@@@Z @ 110 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::SetVersionL(class TAppVersion const &)
+	?SetVisibleL@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@QAEXH@Z @ 111 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::SetVisibleL(int)
+	?Size@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QBEHXZ @ 112 NONAME ; int Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::Size(void) const
+	?StoreCertificateChainsL@JavaRegConverter@Registry@Manager@Java@@SAXABV?$RPointerArray@VHBufC8@@@@AAPAVHBufC16@@@Z @ 113 NONAME ; void Java::Manager::Registry::JavaRegConverter::StoreCertificateChainsL(class RPointerArray<class HBufC8> const &, class HBufC16 * &)
+	?StoreTAppVersionL@JavaRegConverter@Registry@Manager@Java@@SAXABVTAppVersion@@AAPAVHBufC16@@@Z @ 114 NONAME ; void Java::Manager::Registry::JavaRegConverter::StoreTAppVersionL(class TAppVersion const &, class HBufC16 * &)
+	?StoreTBoolL@JavaRegConverter@Registry@Manager@Java@@SAXHAAPAVHBufC16@@@Z @ 115 NONAME ; void Java::Manager::Registry::JavaRegConverter::StoreTBoolL(int, class HBufC16 * &)
+	?StoreTIntL@JavaRegConverter@Registry@Manager@Java@@SAXJAAPAVHBufC16@@@Z @ 116 NONAME ; void Java::Manager::Registry::JavaRegConverter::StoreTIntL(long, class HBufC16 * &)
+	?StoreUnicodeDescriptorsL@JavaRegConverter@Registry@Manager@Java@@SAXABV?$RPointerArray@VHBufC16@@@@AAPAVHBufC16@@@Z @ 117 NONAME ; void Java::Manager::Registry::JavaRegConverter::StoreUnicodeDescriptorsL(class RPointerArray<class HBufC16> const &, class HBufC16 * &)
+	?Type@CJavaRegistryEntry@Java@@QBE?AW4TJavaRegistryEntryType@2@XZ @ 118 NONAME ; enum Java::TJavaRegistryEntryType Java::CJavaRegistryEntry::Type(void) const
+	?Type@CWriteableJavaRegistryEntry@Registry@Manager@Java@@QBE?AW4TJavaRegistryEntryType@4@XZ @ 119 NONAME ; enum Java::TJavaRegistryEntryType Java::Manager::Registry::CWriteableJavaRegistryEntry::Type(void) const
+	?Uid@CJavaRegistryEntry@Java@@QBE?AVTUid@@XZ @ 120 NONAME ; class TUid Java::CJavaRegistryEntry::Uid(void) const
+	?Uid@CWriteableJavaRegistryEntry@Registry@Manager@Java@@QBE?AVTUid@@XZ @ 121 NONAME ; class TUid Java::Manager::Registry::CWriteableJavaRegistryEntry::Uid(void) const
+	?Value@CJavaProperty@Registry@Manager@Java@@QBEABVTDesC16@@XZ @ 122 NONAME ; class TDesC16 const & Java::Manager::Registry::CJavaProperty::Value(void) const
+	?Vendor@CJavaRegistryPackageEntry@Java@@QBEABVTDesC16@@XZ @ 123 NONAME ; class TDesC16 const & Java::CJavaRegistryPackageEntry::Vendor(void) const
+	?Vendor@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QBEABVTDesC16@@XZ @ 124 NONAME ; class TDesC16 const & Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::Vendor(void) const
+	?Version@CJavaRegistryPackageEntry@Java@@QBE?AVTAppVersion@@XZ @ 125 NONAME ; class TAppVersion Java::CJavaRegistryPackageEntry::Version(void) const
+	?Version@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QBE?AVTAppVersion@@XZ @ 126 NONAME ; class TAppVersion Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::Version(void) const
+	?SetPropertyL@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@UAEXPAVCJavaProperty@234@@Z @ 127 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::SetPropertyL(class Java::Manager::Registry::CJavaProperty *)
+	?DrmContentId@CJavaRegistryEntry@Java@@QBEABVTDesC16@@XZ @ 128 NONAME ; class TDesC16 const & Java::CJavaRegistryEntry::DrmContentId(void) const
+	?DrmContentId@CWriteableJavaRegistryEntry@Registry@Manager@Java@@QBEABVTDesC16@@XZ @ 129 NONAME ; class TDesC16 const & Java::Manager::Registry::CWriteableJavaRegistryEntry::DrmContentId(void) const
+	?SetDrmContentIdL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@QAEXABVTDesC16@@@Z @ 130 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryEntry::SetDrmContentIdL(class TDesC16 const &)
+	??1CJavaAttribute@Registry@Manager@Java@@UAE@XZ @ 131 NONAME ABSENT ; Java::Manager::Registry::CJavaAttribute::~CJavaAttribute(void)
+	??1CJavaAttributes@Registry@Manager@Java@@UAE@XZ @ 132 NONAME ABSENT ; Java::Manager::Registry::CJavaAttributes::~CJavaAttributes(void)
+	??1CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@UAE@XZ @ 133 NONAME ; Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::~CWriteableJavaRegistryApplicationEntry(void)
+	?AddAttributeL@CJavaAttributes@Registry@Manager@Java@@QAEXABVTDesC16@@0H@Z @ 134 NONAME ABSENT ; void Java::Manager::Registry::CJavaAttributes::AddAttributeL(class TDesC16 const &, class TDesC16 const &, int)
+	?AddAttributeL@CJavaAttributes@Registry@Manager@Java@@QAEXPAVMJavaAttribute@234@@Z @ 135 NONAME ABSENT ; void Java::Manager::Registry::CJavaAttributes::AddAttributeL(class Java::Manager::Registry::MJavaAttribute *)
+	?Attribute@CJavaAttributes@Registry@Manager@Java@@QBEPBVMJavaAttribute@234@ABVTDesC16@@@Z @ 136 NONAME ABSENT ; class Java::Manager::Registry::MJavaAttribute const * Java::Manager::Registry::CJavaAttributes::Attribute(class TDesC16 const &) const
+	?AttributeL@CJavaRegistryEntry@Java@@QBEPBVMJavaAttribute@Registry@Manager@2@ABVTDesC16@@@Z @ 137 NONAME ABSENT ; class Java::Manager::Registry::MJavaAttribute const * Java::CJavaRegistryEntry::AttributeL(class TDesC16 const &) const
+	?AttributeL@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@UAEPBVMJavaAttribute@234@ABVTDesC16@@@Z @ 138 NONAME ABSENT ; class Java::Manager::Registry::MJavaAttribute const * Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::AttributeL(class TDesC16 const &) const
+	?AttributeL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@UAEPBVMJavaAttribute@234@ABVTDesC16@@@Z @ 139 NONAME ABSENT ; class Java::Manager::Registry::MJavaAttribute const * Java::Manager::Registry::CWriteableJavaRegistryEntry::AttributeL(class TDesC16 const &) const
+	?AttributeL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@UAEPBVMJavaAttribute@234@ABVTDesC16@@@Z @ 140 NONAME ABSENT ; class Java::Manager::Registry::MJavaAttribute const * Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::AttributeL(class TDesC16 const &) const
+	?Attributes@CJavaAttributes@Registry@Manager@Java@@QBEABV?$RPointerArray@VMJavaAttribute@Registry@Manager@Java@@@@XZ @ 141 NONAME ABSENT ; class RPointerArray<class Java::Manager::Registry::MJavaAttribute> const & Java::Manager::Registry::CJavaAttributes::Attributes(void) const
+	?AttributesL@CJavaRegistryEntry@Java@@QBEABV?$RPointerArray@VMJavaAttribute@Registry@Manager@Java@@@@XZ @ 142 NONAME ABSENT ; class RPointerArray<class Java::Manager::Registry::MJavaAttribute> const & Java::CJavaRegistryEntry::AttributesL(void) const
+	?AttributesL@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@UAEABV?$RPointerArray@VMJavaAttribute@Registry@Manager@Java@@@@XZ @ 143 NONAME ABSENT ; class RPointerArray<class Java::Manager::Registry::MJavaAttribute> const & Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::AttributesL(void) const
+	?AttributesL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@UAEABV?$RPointerArray@VMJavaAttribute@Registry@Manager@Java@@@@XZ @ 144 NONAME ABSENT ; class RPointerArray<class Java::Manager::Registry::MJavaAttribute> const & Java::Manager::Registry::CWriteableJavaRegistryEntry::AttributesL(void) const
+	?AttributesL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@UAEABV?$RPointerArray@VMJavaAttribute@Registry@Manager@Java@@@@XZ @ 145 NONAME ABSENT ; class RPointerArray<class Java::Manager::Registry::MJavaAttribute> const & Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::AttributesL(void) const
+	?Count@CJavaAttributes@Registry@Manager@Java@@QBEHXZ @ 146 NONAME ABSENT ; int Java::Manager::Registry::CJavaAttributes::Count(void) const
+	?DeleteAttributes@CJavaAttributes@Registry@Manager@Java@@QAEXXZ @ 147 NONAME ABSENT ; void Java::Manager::Registry::CJavaAttributes::DeleteAttributes(void)
+	?NewL@CJavaAttribute@Registry@Manager@Java@@SAPAV1234@ABVTDesC16@@0H@Z @ 148 NONAME ABSENT ; class Java::Manager::Registry::CJavaAttribute * Java::Manager::Registry::CJavaAttribute::NewL(class TDesC16 const &, class TDesC16 const &, int)
+	?NewL@CJavaAttributes@Registry@Manager@Java@@SAPAV1234@PAVTDesC8@@@Z @ 149 NONAME ABSENT ; class Java::Manager::Registry::CJavaAttributes * Java::Manager::Registry::CJavaAttributes::NewL(class TDesC8 *)
+	?NewL@CJavaAttributes@Registry@Manager@Java@@SAPAV1234@XZ @ 150 NONAME ABSENT ; class Java::Manager::Registry::CJavaAttributes * Java::Manager::Registry::CJavaAttributes::NewL(void)
+	?NewLC@CJavaAttribute@Registry@Manager@Java@@SAPAV1234@ABVTDesC16@@0H@Z @ 151 NONAME ABSENT ; class Java::Manager::Registry::CJavaAttribute * Java::Manager::Registry::CJavaAttribute::NewLC(class TDesC16 const &, class TDesC16 const &, int)
+	?NewLC@CJavaAttributes@Registry@Manager@Java@@SAPAV1234@PAVTDesC8@@@Z @ 152 NONAME ABSENT ; class Java::Manager::Registry::CJavaAttributes * Java::Manager::Registry::CJavaAttributes::NewLC(class TDesC8 *)
+	?NewLC@CJavaAttributes@Registry@Manager@Java@@SAPAV1234@XZ @ 153 NONAME ABSENT ; class Java::Manager::Registry::CJavaAttributes * Java::Manager::Registry::CJavaAttributes::NewLC(void)
+	?SerializeAttributesL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@UAEXXZ @ 154 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryEntry::SerializeAttributesL(void)
+	?SerializeAttributesL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@UAEXXZ @ 155 NONAME ABSENT ; void Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::SerializeAttributesL(void)
+	?SerializedAttributesL@CJavaAttributes@Registry@Manager@Java@@QBEPAVHBufC8@@XZ @ 156 NONAME ABSENT ; class HBufC8 * Java::Manager::Registry::CJavaAttributes::SerializedAttributesL(void) const
+	?SetAttributeL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@QAEXABVTDesC16@@0H@Z @ 157 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::SetAttributeL(class TDesC16 const &, class TDesC16 const &, int)
+	?SetRegistryEntryL@CWriteableJavaRegistry@Registry@Manager@Java@@QBEXAAVCWriteableJavaRegistryEntry@234@@Z @ 158 NONAME ABSENT ; void Java::Manager::Registry::CWriteableJavaRegistry::SetRegistryEntryL(class Java::Manager::Registry::CWriteableJavaRegistryEntry &) const
+	?Size@CJavaAttributes@Registry@Manager@Java@@QBEHXZ @ 159 NONAME ABSENT ; int Java::Manager::Registry::CJavaAttributes::Size(void) const
+	??1CJavaAttribute@Java@@UAE@XZ @ 160 NONAME ABSENT ; Java::CJavaAttribute::~CJavaAttribute(void)
+	?AddAttributeL@CJavaAttributes@Registry@Manager@Java@@QAEXPAVMJavaAttribute@4@@Z @ 161 NONAME ABSENT ; void Java::Manager::Registry::CJavaAttributes::AddAttributeL(class Java::MJavaAttribute *)
+	?Attribute@CJavaAttributes@Registry@Manager@Java@@QBEPBVMJavaAttribute@4@ABVTDesC16@@@Z @ 162 NONAME ABSENT ; class Java::MJavaAttribute const * Java::Manager::Registry::CJavaAttributes::Attribute(class TDesC16 const &) const
+	?AttributeL@CJavaRegistryEntry@Java@@QBEPBVMJavaAttribute@2@ABVTDesC16@@@Z @ 163 NONAME ; class Java::MJavaAttribute const * Java::CJavaRegistryEntry::AttributeL(class TDesC16 const &) const
+	?AttributeL@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@UBEPBVMJavaAttribute@4@ABVTDesC16@@@Z @ 164 NONAME ; class Java::MJavaAttribute const * Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::AttributeL(class TDesC16 const &) const
+	?AttributeL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@UBEPBVMJavaAttribute@4@ABVTDesC16@@@Z @ 165 NONAME ; class Java::MJavaAttribute const * Java::Manager::Registry::CWriteableJavaRegistryEntry::AttributeL(class TDesC16 const &) const
+	?AttributeL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@UBEPBVMJavaAttribute@4@ABVTDesC16@@@Z @ 166 NONAME ; class Java::MJavaAttribute const * Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::AttributeL(class TDesC16 const &) const
+	?Attributes@CJavaAttributes@Registry@Manager@Java@@QBEABV?$RPointerArray@VMJavaAttribute@Java@@@@XZ @ 167 NONAME ABSENT ; class RPointerArray<class Java::MJavaAttribute> const & Java::Manager::Registry::CJavaAttributes::Attributes(void) const
+	?AttributesL@CJavaRegistryEntry@Java@@QBEABV?$RPointerArray@VMJavaAttribute@Java@@@@XZ @ 168 NONAME ; class RPointerArray<class Java::MJavaAttribute> const & Java::CJavaRegistryEntry::AttributesL(void) const
+	?AttributesL@CWriteableJavaRegistryApplicationEntry@Registry@Manager@Java@@UBEABV?$RPointerArray@VMJavaAttribute@Java@@@@XZ @ 169 NONAME ; class RPointerArray<class Java::MJavaAttribute> const & Java::Manager::Registry::CWriteableJavaRegistryApplicationEntry::AttributesL(void) const
+	?AttributesL@CWriteableJavaRegistryEntry@Registry@Manager@Java@@UBEABV?$RPointerArray@VMJavaAttribute@Java@@@@XZ @ 170 NONAME ; class RPointerArray<class Java::MJavaAttribute> const & Java::Manager::Registry::CWriteableJavaRegistryEntry::AttributesL(void) const
+	?AttributesL@CWriteableJavaRegistryPackageEntry@Registry@Manager@Java@@UBEABV?$RPointerArray@VMJavaAttribute@Java@@@@XZ @ 171 NONAME ; class RPointerArray<class Java::MJavaAttribute> const & Java::Manager::Registry::CWriteableJavaRegistryPackageEntry::AttributesL(void) const
+	?NewL@CJavaAttribute@Java@@SAPAV12@ABVTDesC16@@0H@Z @ 172 NONAME ABSENT ; class Java::CJavaAttribute * Java::CJavaAttribute::NewL(class TDesC16 const &, class TDesC16 const &, int)
+	?NewLC@CJavaAttribute@Java@@SAPAV12@ABVTDesC16@@0H@Z @ 173 NONAME ABSENT ; class Java::CJavaAttribute * Java::CJavaAttribute::NewLC(class TDesC16 const &, class TDesC16 const &, int)
+	?GetRegistryEntryUidsL@CWriteableJavaRegistry@Registry@Manager@Java@@QBEXABV?$RPointerArray@VCJavaProperty@Registry@Manager@Java@@@@AAV?$RArray@VTUid@@@@H@Z @ 174 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistry::GetRegistryEntryUidsL(class RPointerArray<class Java::Manager::Registry::CJavaProperty> const &, class RArray<class TUid> &, int) const
+	?GetRegistryEntryUidsL@CWriteableJavaRegistry@Registry@Manager@Java@@QBEXW4TJavaRegistryEntryType@4@AAV?$RArray@VTUid@@@@H@Z @ 175 NONAME ; void Java::Manager::Registry::CWriteableJavaRegistry::GetRegistryEntryUidsL(enum Java::TJavaRegistryEntryType, class RArray<class TUid> &, int) const
+	?RegistryEntryL@CWriteableJavaRegistry@Registry@Manager@Java@@QBEPAVCWriteableJavaRegistryEntry@234@ABVTUid@@H@Z @ 176 NONAME ; class Java::Manager::Registry::CWriteableJavaRegistryEntry * Java::Manager::Registry::CWriteableJavaRegistry::RegistryEntryL(class TUid const &, int) const
+	?RemoveRegistryEntryL@CWriteableJavaRegistry@Registry@Manager@Java@@QBEXABVTUid@@HH@Z @ 177 NONAME ABSENT ; void Java::Manager::Registry::CWriteableJavaRegistry::RemoveRegistryEntryL(class TUid const &, int, int) const
+	?UsedUserDiskSpace@CJavaRegistryPackageEntry@Java@@QBE_JXZ @ 178 NONAME ; long long Java::CJavaRegistryPackageEntry::UsedUserDiskSpace(void) const
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/eabi/javaregistryclientu.def	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,209 @@
+EXPORTS
+	_ZN4Java13CJavaRegistry4NewLEv @ 1 NONAME
+	_ZN4Java13CJavaRegistry5NewLCEv @ 2 NONAME
+	_ZN4Java7Manager8Registry13CJavaProperty4NewLElRK7TDesC16 @ 3 NONAME
+	_ZN4Java7Manager8Registry13CJavaProperty5NewLCElRK7TDesC16 @ 4 NONAME
+	_ZN4Java7Manager8Registry13CJavaPropertyD0Ev @ 5 NONAME
+	_ZN4Java7Manager8Registry13CJavaPropertyD1Ev @ 6 NONAME
+	_ZN4Java7Manager8Registry13CJavaPropertyD2Ev @ 7 NONAME
+	_ZN4Java7Manager8Registry13CJavaPropertyeqERKS2_ @ 8 NONAME
+	_ZN4Java7Manager8Registry16JavaRegConverter10StoreTIntLElRP7HBufC16 @ 9 NONAME
+	_ZN4Java7Manager8Registry16JavaRegConverter11StoreTBoolLEiRP7HBufC16 @ 10 NONAME
+	_ZN4Java7Manager8Registry16JavaRegConverter14GetTAppVersionERK7TDesC1611TAppVersion @ 11 NONAME
+	_ZN4Java7Manager8Registry16JavaRegConverter15GetTAppVersionLERK7TDesC16 @ 12 NONAME
+	_ZN4Java7Manager8Registry16JavaRegConverter17StoreTAppVersionLERK11TAppVersionRP7HBufC16 @ 13 NONAME
+	_ZN4Java7Manager8Registry16JavaRegConverter21GetCertificateChainsLERK7TDesC16R13RPointerArrayI6HBufC8E @ 14 NONAME
+	_ZN4Java7Manager8Registry16JavaRegConverter22GetUnicodeDescriptorsLERK7TDesC16R13RPointerArrayI7HBufC16E @ 15 NONAME
+	_ZN4Java7Manager8Registry16JavaRegConverter23StoreCertificateChainsLERK13RPointerArrayI6HBufC8ERP7HBufC16 @ 16 NONAME
+	_ZN4Java7Manager8Registry16JavaRegConverter24StoreUnicodeDescriptorsLERK13RPointerArrayI7HBufC16ERPS4_ @ 17 NONAME
+	_ZN4Java7Manager8Registry16JavaRegConverter7GetTIntERK7TDesC16l @ 18 NONAME
+	_ZN4Java7Manager8Registry16JavaRegConverter8GetTBoolERK7TDesC16i @ 19 NONAME
+	_ZN4Java7Manager8Registry16JavaRegConverter8GetTIntLERK7TDesC16 @ 20 NONAME
+	_ZN4Java7Manager8Registry16JavaRegConverter9GetTBoolLERK7TDesC16 @ 21 NONAME
+	_ZN4Java7Manager8Registry22CWriteableJavaRegistry10ConstructLEii @ 22 NONAME
+	_ZN4Java7Manager8Registry22CWriteableJavaRegistry10ConstructLEx @ 23 NONAME
+	_ZN4Java7Manager8Registry22CWriteableJavaRegistry4NewLEi @ 24 NONAME
+	_ZN4Java7Manager8Registry22CWriteableJavaRegistry4NewLEx @ 25 NONAME
+	_ZN4Java7Manager8Registry22CWriteableJavaRegistry5NewLCEi @ 26 NONAME
+	_ZN4Java7Manager8Registry22CWriteableJavaRegistry5NewLCEx @ 27 NONAME
+	_ZN4Java7Manager8Registry22CWriteableJavaRegistryC1Ev @ 28 NONAME
+	_ZN4Java7Manager8Registry22CWriteableJavaRegistryC2Ev @ 29 NONAME
+	_ZN4Java7Manager8Registry22CWriteableJavaRegistryD0Ev @ 30 NONAME
+	_ZN4Java7Manager8Registry22CWriteableJavaRegistryD1Ev @ 31 NONAME
+	_ZN4Java7Manager8Registry22CWriteableJavaRegistryD2Ev @ 32 NONAME
+	_ZN4Java7Manager8Registry26CJavaRegistryBackupSupport4NewLEv @ 33 NONAME
+	_ZN4Java7Manager8Registry26CJavaRegistryBackupSupport5NewLCEv @ 34 NONAME
+	_ZN4Java7Manager8Registry26CJavaRegistryBackupSupportD0Ev @ 35 NONAME
+	_ZN4Java7Manager8Registry26CJavaRegistryBackupSupportD1Ev @ 36 NONAME
+	_ZN4Java7Manager8Registry26CJavaRegistryBackupSupportD2Ev @ 37 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntry10ConstructLENS_22TJavaRegistryEntryTypeE @ 38 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntry12SetPropertyLEPNS1_13CJavaPropertyE @ 39 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntry12SetPropertyLElRK7TDesC16 @ 40 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntry14DeletePropertyEi @ 41 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntry19SetBooleanPropertyLEli @ 42 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntry19SetIntegerPropertyLEll @ 43 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntry20AddCertificateChainLERK6TDesC8 @ 44 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntry22SetDescriptorPropertyLElRK7TDesC16 @ 45 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntry8SetNameLERK7TDesC16 @ 46 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntry8SetTypeLENS_22TJavaRegistryEntryTypeE @ 47 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntry9SetDriveLERK12TDriveNumber @ 48 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntryC1ERK4TUid @ 49 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntryC2ERK4TUid @ 50 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntryD0Ev @ 51 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntryD1Ev @ 52 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntryD2Ev @ 53 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry10SetVendorLERK7TDesC16 @ 54 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry11SetVersionLERK11TAppVersion @ 55 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry12SetPropertyLEPNS1_13CJavaPropertyE @ 56 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry17AddEmbeddedEntryLERK4TUid @ 57 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry17SetInstallPluginLERK6TDesC8 @ 58 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry17SetUninstallableLEi @ 59 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry18SetDownloadPluginLERK6TDesC8 @ 60 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry20RemoveEmbeddedEntryLERK4TUid @ 61 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry4NewLERK4TUid @ 62 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry5NewLCERK4TUid @ 63 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry8SetSizeLEi @ 64 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntryC1ERK4TUid @ 65 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntryC2ERK4TUid @ 66 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntryD0Ev @ 67 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntryD1Ev @ 68 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntryD2Ev @ 69 NONAME
+	_ZN4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry11SetVisibleLEi @ 70 NONAME
+	_ZN4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry12SetResidentLEi @ 71 NONAME
+	_ZN4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry13SetGroupNameLERK7TDesC16 @ 72 NONAME
+	_ZN4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry13SetStartableLEi @ 73 NONAME
+	_ZN4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry21SetInstallPackageUidLERK4TUid @ 74 NONAME
+	_ZN4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry4NewLERK4TUid @ 75 NONAME
+	_ZN4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry5NewLCERK4TUid @ 76 NONAME
+	_ZN4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntryC1ERK4TUid @ 77 NONAME
+	_ZN4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntryC2ERK4TUid @ 78 NONAME
+	_ZNK4Java13CJavaRegistry14RegistryEntryLERK4TUid @ 79 NONAME
+	_ZNK4Java13CJavaRegistry20RegistryEntryExistsLERK4TUid @ 80 NONAME
+	_ZNK4Java13CJavaRegistry21GetRegistryEntryUidsLENS_22TJavaRegistryEntryTypeER6RArrayI4TUidE @ 81 NONAME
+	_ZNK4Java13CJavaRegistry21GetRegistryEntryUidsLER6RArrayI4TUidE @ 82 NONAME
+	_ZNK4Java18CJavaRegistryEntry16CertificateChainEi @ 83 NONAME
+	_ZNK4Java18CJavaRegistryEntry25NumberOfCertificateChainsEv @ 84 NONAME
+	_ZNK4Java18CJavaRegistryEntry3UidEv @ 85 NONAME
+	_ZNK4Java18CJavaRegistryEntry4NameEv @ 86 NONAME
+	_ZNK4Java18CJavaRegistryEntry4TypeEv @ 87 NONAME
+	_ZNK4Java18CJavaRegistryEntry5DriveEv @ 88 NONAME
+	_ZNK4Java25CJavaRegistryPackageEntry15IsUninstallableEv @ 89 NONAME
+	_ZNK4Java25CJavaRegistryPackageEntry18GetEmbeddedEntriesER6RArrayI4TUidE @ 90 NONAME
+	_ZNK4Java25CJavaRegistryPackageEntry19EmbeddedEntryByUidLERK4TUid @ 91 NONAME
+	_ZNK4Java25CJavaRegistryPackageEntry22EmbeddedEntryByNumberLEi @ 92 NONAME
+	_ZNK4Java25CJavaRegistryPackageEntry23NumberOfEmbeddedEntriesEv @ 93 NONAME
+	_ZNK4Java25CJavaRegistryPackageEntry6VendorEv @ 94 NONAME
+	_ZNK4Java25CJavaRegistryPackageEntry7VersionEv @ 95 NONAME
+	_ZNK4Java29CJavaRegistryApplicationEntry10IsResidentEv @ 96 NONAME
+	_ZNK4Java29CJavaRegistryApplicationEntry11IsStartableEv @ 97 NONAME
+	_ZNK4Java29CJavaRegistryApplicationEntry13PackageEntryLEv @ 98 NONAME
+	_ZNK4Java29CJavaRegistryApplicationEntry9GroupNameEv @ 99 NONAME
+	_ZNK4Java29CJavaRegistryApplicationEntry9IsVisibleEv @ 100 NONAME
+	_ZNK4Java7Manager8Registry13CJavaProperty2IdEv @ 101 NONAME
+	_ZNK4Java7Manager8Registry13CJavaProperty5ValueEv @ 102 NONAME
+	_ZNK4Java7Manager8Registry22CWriteableJavaRegistry13GenerateUidsLER6RArrayI4TUidEi @ 103 NONAME
+	_ZNK4Java7Manager8Registry22CWriteableJavaRegistry14RegistryEntryLERK4TUid @ 104 NONAME ABSENT
+	_ZNK4Java7Manager8Registry22CWriteableJavaRegistry17SetRegistryEntryLERKNS1_27CWriteableJavaRegistryEntryE @ 105 NONAME ABSENT
+	_ZNK4Java7Manager8Registry22CWriteableJavaRegistry20RegistryEntryExistsLERK4TUid @ 106 NONAME
+	_ZNK4Java7Manager8Registry22CWriteableJavaRegistry20RemoveRegistryEntryLERK4TUidi @ 107 NONAME ABSENT
+	_ZNK4Java7Manager8Registry22CWriteableJavaRegistry21GetRegistryEntryUidsLENS_22TJavaRegistryEntryTypeER6RArrayI4TUidE @ 108 NONAME ABSENT
+	_ZNK4Java7Manager8Registry22CWriteableJavaRegistry21GetRegistryEntryUidsLER6RArrayI4TUidE @ 109 NONAME
+	_ZNK4Java7Manager8Registry22CWriteableJavaRegistry21GetRegistryEntryUidsLERK13RPointerArrayINS1_13CJavaPropertyEER6RArrayI4TUidE @ 110 NONAME ABSENT
+	_ZNK4Java7Manager8Registry22CWriteableJavaRegistry25DecideEntryTypeAndCreateLERK4TUidPNS1_18CJavaPropertyArrayE @ 111 NONAME
+	_ZNK4Java7Manager8Registry26CJavaRegistryBackupSupport14ChangeBURStateERKNS1_12TBackupStateE @ 112 NONAME
+	_ZNK4Java7Manager8Registry26CJavaRegistryBackupSupport21EntriesExistForDriveLERK12TDriveNumber @ 113 NONAME
+	_ZNK4Java7Manager8Registry27CWriteableJavaRegistryEntry15BooleanPropertyEli @ 114 NONAME
+	_ZNK4Java7Manager8Registry27CWriteableJavaRegistryEntry15IntegerPropertyEll @ 115 NONAME
+	_ZNK4Java7Manager8Registry27CWriteableJavaRegistryEntry16CertificateChainEi @ 116 NONAME
+	_ZNK4Java7Manager8Registry27CWriteableJavaRegistryEntry16GetPropertyIndexEl @ 117 NONAME
+	_ZNK4Java7Manager8Registry27CWriteableJavaRegistryEntry25NumberOfCertificateChainsEv @ 118 NONAME
+	_ZNK4Java7Manager8Registry27CWriteableJavaRegistryEntry3UidEv @ 119 NONAME
+	_ZNK4Java7Manager8Registry27CWriteableJavaRegistryEntry4NameEv @ 120 NONAME
+	_ZNK4Java7Manager8Registry27CWriteableJavaRegistryEntry4TypeEv @ 121 NONAME
+	_ZNK4Java7Manager8Registry27CWriteableJavaRegistryEntry5DriveEv @ 122 NONAME
+	_ZNK4Java7Manager8Registry27CWriteableJavaRegistryEntry8PropertyEl @ 123 NONAME
+	_ZNK4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry13InstallPluginEv @ 124 NONAME
+	_ZNK4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry14DownloadPluginEv @ 125 NONAME
+	_ZNK4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry15IsUninstallableEv @ 126 NONAME
+	_ZNK4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry18GetEmbeddedEntriesER6RArrayI4TUidE @ 127 NONAME
+	_ZNK4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry19EmbeddedEntryByUidLERK4TUid @ 128 NONAME
+	_ZNK4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry22EmbeddedEntryByNumberLEi @ 129 NONAME
+	_ZNK4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry23NumberOfEmbeddedEntriesEv @ 130 NONAME
+	_ZNK4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry4SizeEv @ 131 NONAME
+	_ZNK4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry6VendorEv @ 132 NONAME
+	_ZNK4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry7VersionEv @ 133 NONAME
+	_ZNK4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry10IsResidentEv @ 134 NONAME
+	_ZNK4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry11IsStartableEv @ 135 NONAME
+	_ZNK4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry13PackageEntryLEv @ 136 NONAME
+	_ZNK4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry17InstallPackageUidEv @ 137 NONAME
+	_ZNK4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry9GroupNameEv @ 138 NONAME
+	_ZNK4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry9IsVisibleEv @ 139 NONAME
+	_ZTIN4Java13CJavaRegistryE @ 140 NONAME ; #<TI>#
+	_ZTIN4Java18CJavaRegistryEntryE @ 141 NONAME ; #<TI>#
+	_ZTIN4Java7Manager8Registry13CJavaPropertyE @ 142 NONAME ; #<TI>#
+	_ZTIN4Java7Manager8Registry18CJavaPropertyArrayE @ 143 NONAME ; #<TI>#
+	_ZTIN4Java7Manager8Registry22CWriteableJavaRegistryE @ 144 NONAME ; #<TI>#
+	_ZTIN4Java7Manager8Registry26CJavaRegistryBackupSupportE @ 145 NONAME ; #<TI>#
+	_ZTIN4Java7Manager8Registry27CWriteableJavaRegistryEntryE @ 146 NONAME ; #<TI>#
+	_ZTIN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntryE @ 147 NONAME ; #<TI>#
+	_ZTVN4Java13CJavaRegistryE @ 148 NONAME ; #<VT>#
+	_ZTVN4Java18CJavaRegistryEntryE @ 149 NONAME ; #<VT>#
+	_ZTVN4Java7Manager8Registry13CJavaPropertyE @ 150 NONAME ; #<VT>#
+	_ZTVN4Java7Manager8Registry18CJavaPropertyArrayE @ 151 NONAME ; #<VT>#
+	_ZTVN4Java7Manager8Registry22CWriteableJavaRegistryE @ 152 NONAME ; #<VT>#
+	_ZTVN4Java7Manager8Registry26CJavaRegistryBackupSupportE @ 153 NONAME ; #<VT>#
+	_ZTVN4Java7Manager8Registry27CWriteableJavaRegistryEntryE @ 154 NONAME ; #<VT>#
+	_ZTVN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntryE @ 155 NONAME ; #<VT>#
+	_ZN4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry12SetPropertyLEPNS1_13CJavaPropertyE @ 156 NONAME
+	_ZTIN4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntryE @ 157 NONAME ; #<TI>#
+	_ZTVN4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntryE @ 158 NONAME ; #<VT>#
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntry16SetDrmContentIdLERK7TDesC16 @ 159 NONAME
+	_ZNK4Java18CJavaRegistryEntry12DrmContentIdEv @ 160 NONAME
+	_ZNK4Java7Manager8Registry27CWriteableJavaRegistryEntry12DrmContentIdEv @ 161 NONAME
+	_ZN4Java7Manager8Registry14CJavaAttribute4NewLERK7TDesC16S5_i @ 162 NONAME ABSENT
+	_ZN4Java7Manager8Registry14CJavaAttribute5NewLCERK7TDesC16S5_i @ 163 NONAME ABSENT
+	_ZN4Java7Manager8Registry15CJavaAttributes13AddAttributeLEPNS1_14MJavaAttributeE @ 164 NONAME ABSENT
+	_ZN4Java7Manager8Registry15CJavaAttributes13AddAttributeLERK7TDesC16S5_i @ 165 NONAME ABSENT
+	_ZN4Java7Manager8Registry15CJavaAttributes16DeleteAttributesEv @ 166 NONAME ABSENT
+	_ZN4Java7Manager8Registry15CJavaAttributes4NewLEP6TDesC8 @ 167 NONAME ABSENT
+	_ZN4Java7Manager8Registry15CJavaAttributes4NewLEv @ 168 NONAME ABSENT
+	_ZN4Java7Manager8Registry15CJavaAttributes5NewLCEP6TDesC8 @ 169 NONAME ABSENT
+	_ZN4Java7Manager8Registry15CJavaAttributes5NewLCEv @ 170 NONAME ABSENT
+	_ZN4Java7Manager8Registry15CJavaAttributesD0Ev @ 171 NONAME ABSENT
+	_ZN4Java7Manager8Registry15CJavaAttributesD1Ev @ 172 NONAME ABSENT
+	_ZN4Java7Manager8Registry15CJavaAttributesD2Ev @ 173 NONAME ABSENT
+	_ZNK4Java7Manager8Registry27CWriteableJavaRegistryEntry10AttributeLERK7TDesC16 @ 174 NONAME
+	_ZNK4Java7Manager8Registry27CWriteableJavaRegistryEntry11AttributesLEv @ 175 NONAME
+	_ZN4Java7Manager8Registry27CWriteableJavaRegistryEntry20SerializeAttributesLEv @ 176 NONAME
+	_ZNK4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry10AttributeLERK7TDesC16 @ 177 NONAME
+	_ZNK4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry11AttributesLEv @ 178 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry13SetAttributeLERK7TDesC16S5_i @ 179 NONAME
+	_ZN4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry20SerializeAttributesLEv @ 180 NONAME
+	_ZNK4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry10AttributeLERK7TDesC16 @ 181 NONAME
+	_ZNK4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntry11AttributesLEv @ 182 NONAME
+	_ZN4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntryD0Ev @ 183 NONAME
+	_ZN4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntryD1Ev @ 184 NONAME
+	_ZN4Java7Manager8Registry38CWriteableJavaRegistryApplicationEntryD2Ev @ 185 NONAME
+	_ZNK4Java18CJavaRegistryEntry10AttributeLERK7TDesC16 @ 186 NONAME
+	_ZNK4Java18CJavaRegistryEntry11AttributesLEv @ 187 NONAME
+	_ZNK4Java7Manager8Registry15CJavaAttributes10AttributesEv @ 188 NONAME ABSENT
+	_ZNK4Java7Manager8Registry15CJavaAttributes21SerializedAttributesLEv @ 189 NONAME ABSENT
+	_ZNK4Java7Manager8Registry15CJavaAttributes4SizeEv @ 190 NONAME ABSENT
+	_ZNK4Java7Manager8Registry15CJavaAttributes5CountEv @ 191 NONAME ABSENT
+	_ZNK4Java7Manager8Registry15CJavaAttributes9AttributeERK7TDesC16 @ 192 NONAME ABSENT
+	_ZNK4Java7Manager8Registry22CWriteableJavaRegistry17SetRegistryEntryLERNS1_27CWriteableJavaRegistryEntryE @ 193 NONAME
+	_ZTIN4Java7Manager8Registry14CJavaAttributeE @ 194 NONAME ABSENT ; #<TI>#
+	_ZTIN4Java7Manager8Registry15CJavaAttributesE @ 195 NONAME ABSENT ; #<TI>#
+	_ZTVN4Java7Manager8Registry14CJavaAttributeE @ 196 NONAME ABSENT ; #<VT>#
+	_ZTVN4Java7Manager8Registry15CJavaAttributesE @ 197 NONAME ABSENT ; #<VT>#
+	_ZN4Java14CJavaAttribute4NewLERK7TDesC16S3_i @ 198 NONAME ABSENT
+	_ZN4Java14CJavaAttribute5NewLCERK7TDesC16S3_i @ 199 NONAME ABSENT
+	_ZN4Java7Manager8Registry15CJavaAttributes13AddAttributeLEPNS_14MJavaAttributeE @ 200 NONAME ABSENT
+	_ZTIN4Java14CJavaAttributeE @ 201 NONAME ABSENT ; #<TI>#
+	_ZTVN4Java14CJavaAttributeE @ 202 NONAME ABSENT ; #<VT>#
+	_ZNK4Java7Manager8Registry22CWriteableJavaRegistry14RegistryEntryLERK4TUidi @ 203 NONAME
+	_ZNK4Java7Manager8Registry22CWriteableJavaRegistry20RemoveRegistryEntryLERK4TUidii @ 204 NONAME
+	_ZNK4Java7Manager8Registry22CWriteableJavaRegistry21GetRegistryEntryUidsLENS_22TJavaRegistryEntryTypeER6RArrayI4TUidEi @ 205 NONAME
+	_ZNK4Java7Manager8Registry22CWriteableJavaRegistry21GetRegistryEntryUidsLERK13RPointerArrayINS1_13CJavaPropertyEER6RArrayI4TUidEi @ 206 NONAME
+	_ZNK4Java25CJavaRegistryPackageEntry17UsedUserDiskSpaceEv @ 207 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/inc/javaattributes.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,208 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CJavaAttributes header file
+*
+*/
+
+
+#ifndef CJAVAATTRIBUTES_H
+#define CJAVAATTRIBUTES_H
+
+
+#include <e32base.h>
+#include <s32strm.h>
+
+#include "javaattribute.h"
+
+using namespace Java;
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+class CJavaAttributes: public CBase
+{
+public:
+    /**
+     * Construct a new attributes array object
+     * @since S60 v5.0
+     *
+     *
+     * @return a new CJavaAttribute object
+     */
+    IMPORT_C static CJavaAttributes* NewL();
+
+    /**
+     * Construct a new attributes array object and fill array form serialized
+     * buffer
+     * @since S60 v5.0
+     *
+     * @param aBuffer with serialized CJavaAttributes object
+     * @return a new CJavaAttribute object
+     */
+    IMPORT_C static CJavaAttributes* NewL(TDesC8* aBuffer);
+
+    /**
+     * Construct a new attributes array object and leaves the object on
+     * the cleanupstack
+     * @since S60 v5.0
+     *
+     *
+     * @return a new CJavaAttribute object
+     */
+    IMPORT_C static CJavaAttributes* NewLC();
+
+    /**
+     * Construct a new attributes array object, fill array form serialized
+     * buffer and leaves the object on the cleanupstack
+     * @since S60 v5.0
+     *
+     *
+     * @param aBuffer with serialized CJavaAttributes object
+     * @return a new CJavaAttribute object
+     */
+    IMPORT_C static CJavaAttributes* NewLC(TDesC8* aBuffer);
+
+    /**
+     * Destructor deletes all attributes stored in iAttributes
+     * @since S60 v5.0
+     *
+     */
+    virtual ~CJavaAttributes();
+
+    /**
+     * Returns number of stored attributes
+     * @since S60 v5.0
+     *
+     *
+     * @return number of attributes in array
+     */
+    IMPORT_C TInt Count() const;
+
+    /**
+     * Returns reference to object with requested Attribute.
+     * @since S60 v5.0
+     *
+     *
+     * @param aName: name of attribute
+     * @return MJavaAttribute&; Ownership handed over
+     */
+    IMPORT_C const MJavaAttribute* Attribute(const TDesC& aName) const;
+
+    /**
+     * Returns copy of attributes storage
+     * @since S60 v5.0
+     *
+     *
+     * @return RPointerArray<MJavaAttributes>
+     */
+    IMPORT_C  const RPointerArray< MJavaAttribute >& Attributes() const;
+
+    /**
+     * Add attribute to array.
+     * @since S60 v5.0
+     *
+     *
+     * @param MJavaAttribute*, Ownership gotten.
+     * @return position of added attribute in array
+     */
+    IMPORT_C void AddAttributeL(MJavaAttribute* aAttribute);
+
+    /**
+     * Store attribute to MJavaAttribute and add to array.
+     * @since S60 v5.0
+     *
+     *
+     * @param aName
+     * @param aValue
+     * @param aTrusted
+     * @return position of added attribute in array
+     */
+    IMPORT_C void AddAttributeL(const TDesC& aName, const TDesC& aValue, TBool aTrusted);
+
+    /**
+    * Delete all attributes
+    *
+    * @since S60 v5.0
+    */
+    IMPORT_C void DeleteAttributes();
+
+    /**
+    * Returns the size needed for serialization.
+    * @since S60 v5.0
+    *
+    * @return size needed for serialization
+    * @see SerializedPropertiesL
+    */
+    IMPORT_C TInt Size() const;
+
+    /**
+     * Returns serialized CJavaAttributes object
+     * @since S60 v5.0
+     *
+     *
+     * @param aName
+     * @param aValue
+     * @param aTrusted
+     * @return HBufC8* with serialized object, ownership handed over.
+     */
+    IMPORT_C HBufC8* SerializedAttributesL() const;
+
+public:
+    /**
+    * Externalizes the attribete objects. It is used by "<<" operator.
+     * @since S60 v5.0
+     *
+    *
+    * @param aStream externalization happens in this stream
+    */
+    virtual void ExternalizeL(RWriteStream& aStream) const;
+
+    /**
+    * Internalizes the attribute objects. It is used by ">>" operator.
+    * @since S60 v5.0
+    *
+    * @param aStream internalization happens from this stream
+    */
+    virtual void InternalizeL(RReadStream& aStream);
+
+private:
+    /**
+     * ConstructL does deserialize attributes, if a buffer exists
+     * @since S60 v5.0
+     *
+     *
+     * @param aBuffer with serialized CJavaAttributes object
+     */
+    void ConstructL(TDesC8* aBuffer);
+
+private:
+    /**
+     * Array of atributes objects
+     * @since S60 v5.0
+     *
+     */
+    RPointerArray< MJavaAttribute > iAttributes;
+
+};
+} // namespace Registry
+} // namespace Manager
+} // namespace Java
+
+#endif // CJAVAATTRIBUTES_H
+
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/inc/javaregclient.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,281 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javaregclient definition
+*
+*/
+
+
+#ifndef __JAVAREGCLIENT_H
+#define __JAVAREGCLIENT_H
+
+#include "javaregdef.h"
+#include "javaregburstates.h"
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+// FORWARD DECLARATIONS
+class CJavaPropertyArray;
+
+/**
+ * RJavaRegSession class makes it possible to access java registry server
+ * services like adding, getting and removing entries.
+ * The class implements the client side of java registry
+ * client-server communication.
+ *
+ * @since S60 v3.2
+ */
+class RJavaRegSession : public RSessionBase
+{
+
+public:
+
+    /**
+     * Constructor
+     *
+     * @since S60 v3.2
+     */
+    RJavaRegSession();
+
+    /**
+     * Connects to registry server and sets integrity service's
+     * transaction id.
+     *
+     * @since S60 v3.2
+     * @param aTransactionId transaction id of integrity service
+     * @param aLegacy legacy flag, must be set to true if
+     *          legacy api wants to use server services
+     * @return KErrNone if connection was successful or an error code
+     */
+    TInt Connect(TInt64 aTransactionId, TBool aLegacy = EFalse);
+
+    /**
+     * Connects to registry server and sets if integrity service
+     * is required or not to be created in registry.
+     *
+     * @since S60 v3.2
+     * @param aUseIntegrity true if registry should create an
+     *          interior integrity session
+     * @param aLegacy if true legacy api uses server services
+     * @return KErrNone if connection was successful or an error code
+     */
+    TInt Connect(TBool aUseIntegrity, TBool aLegacy = EFalse);
+
+    /**
+     * Checks if an entry with specified uid exist or not
+     * in the registry.
+     *
+     * @since S60 v3.2
+     * @param aUid uid of the entry to be checked if exists
+     * @return true if the entry exists and false if not
+     */
+    TBool EntryExistsL(TUid aUid) const;
+
+    /**
+     * Gets uids of entries stored in registry.
+     *
+     * @since S60 v3.2
+     * @param[out] aUids reference to an array where stored uids
+     *          are returned
+     */
+    void GetEntryUidsL(RArray<TUid>& aUids) const;
+
+    /**
+     * Gets uids of entries stored in registry and belonging to
+     * the given drive.
+     *
+     * @since S60 v3.2
+     * @param[out] aUids reference to an array where stored uids
+     *          are returned
+     * @param aDrive drive whose entry uids must be returned
+     */
+    void GetEntryUidsL(RArray<TUid>& aUids, TInt aDrive) const;
+
+    /**
+     * Gets the entry belonging to the given uid.
+     * The entry is represented as a set of properties.
+     * If no entry found for the given uid aProperties is null else
+     * it is allocated a new CJavaPropertyArray object containing the read
+     * entry.
+     *
+     * @since S60 v3.2
+     * @param aUid the uid of entry we are interested in
+     * @param[out] aProperties entry is read in this parameter
+     * @param aAllEntries decision if we want to read entry from not
+     *                    presented MMC
+     */
+    void GetEntryL(TUid aUid,
+                   CJavaPropertyArray*& aProperties,
+                   TBool aAllEntries = EFalse) const;
+
+    /**
+     * Adds a new entry or updates an existent one with the given uid.
+     * The entry is represented as a set of properties.
+     *
+     * @since S60 v3.2
+     * @param aUid the uid of the entry to be added or updated
+     * @param aProperties the entry to be added or updated
+     * @param aDrive the drive to which the set entry belongs
+     */
+    void SetEntryL(TUid aUid,
+                   const CJavaPropertyArray& aProperties,
+                   TInt aDrive) const;
+
+    /**
+     * Returns a set of uids whose entries contains the properties (and
+     * has the same values) given in the aProperties parameter.
+     *
+     * @since S60 v3.2
+     * @param aProperties the set of properties which must exists
+     *          (and must have the same values) in the looked entries
+     * @param[out] aUids uids of the found entries are returned
+     *          in this parameter
+     * @param aAllEntries means, that method give all entries including
+     *          entries, which regards with midlets stored in not presented
+     *          media. EFalse means entries with regarding not presented
+     *          media will not return.
+     */
+    void FindEntriesL(const CJavaPropertyArray& aProperties,
+                      RArray<TUid>& aUids, TBool aAllEntries = EFalse) const;
+
+    /**
+     * Removes the entry belonging to the given uid.
+     *
+     * @since S60 v3.2
+     * @param aUid uid of entry which must be deleted
+     * @param aAllEntries means, that method give all entries including
+     *          entries, which regards with midlets stored in not presented
+     *          media. EFalse means entries with regarding not presented
+     *          media will not return.
+     */
+    void RemoveEntryL(TUid aUid, TBool aAllEntries = EFalse) const;
+
+    /**
+     * Allocates a range of new uids.
+     *
+     * @since S60 v3.2
+     * @param[out] aUids array reference where the allocated uids
+     *          will be returned
+     * @param aUidCount number of uids to be allocated
+     */
+    void AllocateUidsL(RArray<TUid>& aUids,
+                       TInt aUidCount = 1) const;
+
+    /**
+     * Sets the backup state of registry.
+     * If the registry is in backing up or restoring state
+     * the client requests will not be executed.
+     *
+     * @since S60 v3.2
+     * @param aBackupState the requested backup state
+     */
+    void SetBackupStateL(TBackupState aBackupState) const;
+
+private:
+
+    /**
+     * Initializes server with integrity service transaction id
+     * and the legacy api flag.
+     *
+     * @since S60 v3.2
+     * @param aTransactionId integrity service transaction id
+     * @param aLegacy legacy flag, must be set to true if
+     *          legacy api wants to use server services
+     * @return KErrNone if no error or the appropriate error code
+     */
+    TInt InitializeServer(TInt64 aTransactionId, TBool aLegacy) const;
+
+    /**
+     * Initializes server with use integrity session flag,
+     * and the legacy api flag.
+     *
+     * @since S60 v3.2
+     * @param aUseIntegrity true if registry should create an interior
+     *          integrity session
+     * @param aLegacy legacy flag, must be set to true if
+     *          legacy api wants to use server services
+     * @return KErrNone if no error or the appropriate error code
+     */
+    TInt InitializeServer(TBool aUseIntegrity, TBool aLegacy) const;
+
+    /**
+     * Sends to server a message containing the function id and the
+     * arguments given in TIpcArgs argument.
+     * The first and second arguments of TIpcArgs are reserved.
+     *
+     * @since S60 v3.2
+     * @param aFunction funtion id
+     * @param[out] aBuffer the received buffer is returned
+     *          in this parameter
+     * @param aArgs arguments to be sent for server, first and second
+     *          argument must be left empty
+     */
+    void GetBuffer8FromServerL(TInt aFunction,
+                               HBufC8*& aBuffer,
+                               TIpcArgs& aArgs) const;
+
+    /**
+     * Sends to server a message containing the function id and the
+     * arguments given in TIpcArgs argument.
+     * The first and second arguments of TIpcArgs are reserved.
+     *
+     * @since S60 v3.2
+     * @param aFunction funtion id
+     * @param[out] aBuffer the received buffer is returned
+     *          in this parameter
+     * @param aArgs arguments to be sent for server, first and second
+     *          argument must be left empty
+     */
+    void GetBuffer16FromServerL(TInt aFunction,
+                                HBufC16*& aBuffer,
+                                TIpcArgs& aArgs) const;
+
+    /**
+     * Sends to server a message containing the function id and the
+     * arguments given in TIpcArgs argument.
+     * The first and second arguments of TIpcArgs are reserved.
+     *
+     * @since S60 v3.2
+     * @param aFunction funtion id
+     * @param[out] aBuffer the received buffer is returned
+     *          in this parameter
+     * @param aArgs arguments to be sent for server, first and second
+     *          argument must be left empty
+     * @param a8BitDesc if true a 8 bit descriptor must be allocated
+     *          in other case a 16 bit descriptor must be allocated
+     */
+    void GetBufferFromServerL(TInt aFunction,
+                              TAny** aBuffer,
+                              TIpcArgs& aArgs,
+                              TBool a8BitDesc) const;
+    /**
+     * Connects to server.
+     *
+     * @since S60 v3.2
+     * @return KErrNone if connection was successful or an error code
+     */
+    TInt Connect();
+
+private:
+
+};
+
+}//namespace Registry
+}//namespace Manager
+}//namespace Java
+
+#endif //__JAVAREGCLIENT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/inc/javaregconverter.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,238 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javaregconverter definition
+*
+*/
+
+
+#ifndef JAVAREGCONVERTER_H
+#define JAVAREGCONVERTER_H
+
+// INCLUDES
+#include <e32std.h>
+
+// FORWARD DECLARATION
+class TAppVersion;
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+// FORWARD DECLARATION
+class CJavaProperty;
+
+// CLASS DECLARATION
+/**
+ * This class has only static methods, that help to store some types,
+ * and structures in descriptors, and to retrieve them. It is mainly used
+ * by the javaregistry internal API.
+ *
+ * @lib javaregistryclient.lib
+ * @since S60 v3.2
+ */
+class JavaRegConverter
+{
+public:
+
+    /**
+     * JavaRegConverter::GetTAppVersion method converts the descriptor
+     * parameter to a TAppVersion.
+     *
+     * @since S60 v3.2
+     * @param aValue A descriptor storing a TAppVersion.
+     * @param aDefault The value to be returned if aValue does'nt contain
+     *                 valid data.
+     * @return A TAppVersion stored in the descriptor parameter.
+     */
+    IMPORT_C static TAppVersion GetTAppVersion(
+        const TDesC& aValue,
+        TAppVersion aDefault);
+
+    /**
+     * JavaRegConverter::GetTAppVersionL method converts the descriptor
+     * parameter to a TAppVersion.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aValue A descriptor storing a TAppVersion.
+     * @return A TAppVersion stored in the descriptor parameter.
+     */
+    IMPORT_C static TAppVersion GetTAppVersionL(const TDesC& aValue);
+
+    /**
+     * JavaRegConverter::StoreTAppVersionL method stores the TAppVersion
+     * parameter into the descriptor paramameter, that is instantiated by
+     * this method.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aValue The TAppVersion value to be stored.
+     * @param aDes [out] Descriptor parameter, storing, and the returning
+     * the TAppVersion value.
+     */
+    IMPORT_C static void StoreTAppVersionL(
+        const TAppVersion& aValue,
+        HBufC*& aDes);
+
+
+    /**
+     * JavaRegConverter::GetTInt method converts the descriptor
+     * parameter to a TInt32.
+     *
+     * @since S60 v3.2
+     * @param aValue A descriptor storing a TInt32.
+     * @param aDefault The value to be returned if aValue does'nt contain
+     *                 valid data.
+     * @return A TInt32 stored in the descriptor parameter.
+     */
+    IMPORT_C static TInt32 GetTInt(const TDesC& aValue, TInt32 aDefault);
+
+    /**
+     * JavaRegConverter::GetTIntL method converts the descriptor
+     * parameter to a TInt32.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aValue A descriptor storing a TInt32.
+     * @return A TInt32 stored in the descriptor parameter.
+     */
+    IMPORT_C static TInt32 GetTIntL(const TDesC& aValue);
+
+
+    /**
+     * JavaRegConverter::StoreTIntL method stores the TInt32
+     * parameter into the descriptor paramameter, that is instantiated by
+     * this method.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aValue The TInt32 value to be stored.
+     * @param aDes [out] Descriptor parameter, storing, and the returning
+     * the TInt32 value.
+     */
+    IMPORT_C static void StoreTIntL(const TInt32 aValue, HBufC*& aDes);
+
+    /**
+     * JavaRegConverter::GetTBool method converts the descriptor
+     * parameter to a TBool.
+     *
+     * @since S60 v3.2
+     * @param aValue A descriptor storing a TBool.
+     * @param aDefault The value to be returned if aValue does'nt contain
+     *                 valid data.
+     * @return A TBool stored in the descriptor parameter.
+     */
+    IMPORT_C static TBool GetTBool(const TDesC& aValue, TBool aDefault);
+
+
+    /**
+     * JavaRegConverter::GetTBoolL method converts the descriptor
+     * parameter to a TBool.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aValue A descriptor storing a TBool.
+     * @return A TBool stored in the descriptor parameter.
+     */
+    IMPORT_C static TBool GetTBoolL(const TDesC& aValue);
+
+
+    /**
+     * JavaRegConverter::StoreTBoolL method stores the TBool
+     * parameter into the descriptor paramameter, that is instantiated by
+     * this method.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aValue The TBool value to be stored.
+     * @param aDes [out] Descriptor parameter, storing, and the returning
+     * the TBool value.
+     */
+    IMPORT_C static void StoreTBoolL(const TBool aValue, HBufC*& aDes);
+
+
+
+    /**
+     * JavaRegConverter::GetCertificateChainsL method converts the
+     * descriptor parameter to a RPointerArray<HBufC8> storing
+     * certificate chains.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aValue A descriptor storing certificate chains.
+     * @param aCertChains [out] The method converts the certificate chains
+     *                          into this RPointerArray<HBufC>.
+     */
+    IMPORT_C static void GetCertificateChainsL(
+        const TDesC& aValue,
+        RPointerArray<HBufC8>& aCertChains);
+
+
+    /**
+     * JavaRegConverter::StoreCertificateChainsL method stores the
+     * certificate chains ( given in the first parameter ),
+     * into the descriptor paramameter, that is instantiated by
+     * this method.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aValue The certificate chains to be stored.
+     * @param aDes [out] Descriptor parameter, storing, and the returning
+     * the certificate chains.
+     */
+    IMPORT_C static void StoreCertificateChainsL(
+        const RPointerArray<HBufC8>& aValue,
+        HBufC*& aDes);
+
+
+    /**
+     * JavaRegConverter::GetUnicodeDescriptorsL method converts the
+     * descriptor parameter to a RPointerArray<HBufC> storing
+     * unicode descriptors.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aValue A descriptor storing unicode descriptors.
+     * @param aCertChains [out] The method converts the unicode descriptors
+     *                          into this RPointerArray<HBufC>.
+     */
+    IMPORT_C static void JavaRegConverter::GetUnicodeDescriptorsL(
+        const TDesC& aValue,
+        RPointerArray<HBufC>& aDescriptors);
+    /**
+     * JavaRegConverter::StoreUnicodeDescriptorsL method stores the
+     * unicode descriptors ( given in the first parameter ),
+     * into the descriptor paramameter, that is instantiated by
+     * this method.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aValue The certificate chains to be stored.
+     * @param aDes [out] Descriptor parameter, storing, and the returning
+     * the certificate chains.
+     */
+    IMPORT_C static void JavaRegConverter::StoreUnicodeDescriptorsL(
+        const RPointerArray<HBufC>& aValue,
+        HBufC*& aDes);
+};
+
+}// namespace Registry
+}// namespace Manager
+}// namespace Java
+
+#endif // JAVAREGCONVERTER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/inc/javaregistrybackupsupport.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,141 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javaregistrybackupsupport definition
+*
+*/
+
+
+#ifndef JAVAREGISTRYBACKUPSUPPORT_H
+#define JAVAREGISTRYBACKUPSUPPORT_H
+
+// INCLUDES
+#include <e32base.h>
+#include <f32file.h>
+#include "javaregburstates.h"
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+
+// FORWARD DECLARATION
+class RJavaRegSession;
+
+// CLASS DECLARATION
+/**
+ * This class is used to indicate the registry the phases of backup and
+ * restore. Mainly used by the Java Backup component.
+ *
+ * @lib javaregistryclient.lib
+ * @since S60 v3.2
+ */
+class CJavaRegistryBackupSupport :
+        public CBase
+{
+public:
+
+    // constructors
+
+    /**
+     * CJavaRegistryBackupSupport::NewL method creates a
+     * CJavaRegistryBackupSupport object.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @return A pointer to a CJavaRegistryBackupSupport object.
+     *         Caller takes over the ownership of the object being
+     *         transferred.
+     */
+    IMPORT_C static CJavaRegistryBackupSupport* NewL();
+
+    /**
+     * CJavaRegistryBackupSupport::NewLC method creates a
+     * CJavaRegistryBackupSupport object, and puts it on the
+     * CleanupStack.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @return A pointer to a CJavaRegistryBackupSupport object.
+     *         Caller takes over the ownership of the object being
+     *         transferred.
+     */
+    IMPORT_C static CJavaRegistryBackupSupport* NewLC();
+
+    // destructor
+
+    /**
+     * ~CJavaRegistryBackupSupport::~CJavaRegistryBackupSupport
+     * Destructor
+     */
+    IMPORT_C ~CJavaRegistryBackupSupport();
+
+    // general methods
+
+    /**
+     * CJavaRegistryBackupSupport::EntriesExistForDriveL
+     * Returns whether registry entries on the specified drive exist.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aDrive The entries are searched for this drive.
+     * @return ETrue if registry entries on the specified drive exist,
+     *         EFalse otherwise.
+     */
+    IMPORT_C TBool EntriesExistForDriveL
+    (const TDriveNumber& aDrive) const;
+
+    /**
+     * CJavaRegistryBackupSupport::ChangeBURState method changes the
+     * registry BackUp and Restore state, according to the given
+     * TBackupState type param.
+     *
+     * @since S60 v3.2
+     * @param aState The state to be changed.
+     * @return KErrNone if successful, otherwise one of the
+     *         system-wide error codes.
+     */
+    IMPORT_C TInt ChangeBURState(const TBackupState& aState) const;
+
+private:
+
+    // 2nd phase constructor
+    /**
+     * CJavaRegistryBackupSupport::ConstructL method
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     */
+    void ConstructL();
+
+private: // Data
+
+    /**
+     * CJavaRegistryBackupSupport::iJavaRegSession member, the client class
+     * to the JavaRegistry Server.
+     *
+     * @since S60 v3.2
+     */
+    Java::Manager::Registry::RJavaRegSession* iJavaRegSession;
+
+};
+
+}// namespace Registry
+}// namespace Manager
+}// namespace Java
+
+#endif // JAVAREGISTRYBACKUPSUPPORT_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/inc/javaregistrypropertyids.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javaregistrypropertyids definition
+*
+*/
+
+#include <e32base.h>
+
+#ifndef JAVAREGISTRYPROPERTYIDS_H
+#define JAVAREGISTRYPROPERTYIDS_H
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+/**
+ * Common Id's of properties processed by
+ * CWriteableJavaRegistryEntry class.
+ *
+ * @since S60 v3.2
+ */
+enum TEntryIDs
+{
+    EPropType = 0,
+    EPropName,
+    EPropCertificateChains,
+    EPropDrive,
+    EPropDrmContentId
+};
+
+/**
+ * General package specific Id's of properties processed by
+ * CWriteableJavaRegistryPackageEntry class.
+ *
+ * @since S60 v3.2
+ */
+enum TPackageEntryIDs
+{
+    EPropVersion = 100,
+    EPropVendor,
+    EPropUninstallable,
+    EPropApplicationUids,
+    EPropDownloadPlugin,
+    EPropInstallPlugin,
+    EPropSize,
+    EPropSerializedAttributes
+};
+
+/**
+ * Application specific Id's of properties processed by
+ * CWriteableJavaRegistryApplicationEntry class.
+ *
+ * @since S60 v3.2
+ */
+enum TApplicationEntryIDs
+{
+    EPropStartable = 200,
+    EPropVisible,
+    EPropResident,
+    EPropGroupName,
+    EPropInstallPackage
+};
+
+/*
+ * MIDP Registry ID ranges
+ */
+const TInt KMidletSuiteRangeStart = 300;
+const TInt KMidletRangeStart = 400;
+
+/*
+ * OSGi Registry ID ranges
+ */
+const TInt KDPRangeStart = 500;
+const TInt KOAMSuiteRangeStart = 600;
+const TInt KOAMRangeStart = 700;
+const TInt KERCPRangeStart = 800;
+
+}// namespace Registry
+}// namespace Manager
+}// namespace Java
+
+
+#endif // JAVAREGISTRYPROPERTYIDS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/inc/writeablejavaregistry.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,326 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  writeablejavaregistry definition
+*
+*/
+
+
+#ifndef WRITEABLEJAVAREGISTRY_H
+#define WRITEABLEJAVAREGISTRY_H
+
+// INCLUDES
+#include <e32base.h>
+#include "javaregistryentrytype.h"
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+
+// FORWARD DECLARATION
+class CWriteableJavaRegistryEntry;
+class CJavaProperty;
+class CJavaPropertyArray;
+class RJavaRegSession;
+
+// CLASS DECLARATION
+/**
+ * This class provides the Internal API for JavaRegistry.
+ * It allows for trusted clients to retrieve and set properties of
+ * Java install packages, applications, services etc.
+ *
+ * @lib javaregistryclient.lib
+ * @since S60 v3.2
+ */
+class CWriteableJavaRegistry :
+        public CBase
+{
+public:
+
+    // constructors
+    /**
+     * CWriteableJavaRegistry::NewL method creates a
+     * CWriteableJavaRegistry object.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUseIntegrity ETrue if Integrity Server must be used during
+     *                      the lifetime of this object, EFalse if it's
+     *                      not required.
+     * @return A pointer to a CWriteableJavaRegistry object. Caller takes
+     *         over the ownership of the object being transferred.
+     */
+    IMPORT_C static CWriteableJavaRegistry* NewL(TBool aUseIntegrity);
+
+    /**
+     * CWriteableJavaRegistry::NewLC method creates a
+     * CWriteableJavaRegistry object.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUseIntegrity ETrue if Integrity Server must be used during
+     *                      the lifetime of this object, EFalse if it's
+     *                      not required.
+     * @return A pointer to a CWriteableJavaRegistry object. Caller takes
+     *         over the ownership of the object being transferred.
+     */
+    IMPORT_C static CWriteableJavaRegistry* NewLC(TBool aUseIntegrity);
+
+    /**
+     * CWriteableJavaRegistry::NewL method creates a
+     * CWriteableJavaRegistry object.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aIntegritySessionId A transaction Id, identifying an
+     *                              integrity session, the registry
+     *                               has to connect to.
+     * @return A pointer to a CWriteableJavaRegistry object. Caller takes
+     *         over the ownership of the object being transferred.
+     */
+    IMPORT_C static CWriteableJavaRegistry*
+    NewL(TInt64 aIntegritySessionId);
+
+    /**
+     * CWriteableJavaRegistry::NewLC method creates a
+     * CWriteableJavaRegistry object.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aIntegritySessionId A transaction Id, identifying an
+     *                              integrity session, the registry
+     *                               has to connect to.
+     * @return A pointer to a CWriteableJavaRegistry object. Caller takes
+     *         over the ownership of the object being transferred.
+     */
+    IMPORT_C static CWriteableJavaRegistry*
+    NewLC(TInt64 aIntegritySessionId);
+
+    // destructor
+    /**
+     * CWriteableJavaRegistry::~CWriteableJavaRegistry destructor
+     *
+     * @since S60 v3.2
+     */
+    IMPORT_C ~CWriteableJavaRegistry();
+
+    // general methods
+    /**
+     * CWriteableJavaRegistry::GenerateUidL method allocates some uids for
+     * registry entries, specified the count in aNumber param, and returns
+     * the uids in the aUids param.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUids [out] Return the generated Uids.
+     * @param aNumber The number of the Uids to be created.
+     */
+    IMPORT_C void GenerateUidsL(RArray<TUid>& aUids, TInt aNumber) const;
+
+
+    /**
+     * CWriteableJavaRegistry::RegistryEntryExistsL method returns whether
+     * registry entry with the specified Uid exists.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid to be checked.
+     * @return ETrue if the registry entry exists, EFalse otherwise.
+     */
+    IMPORT_C TBool RegistryEntryExistsL(const TUid& aUid) const;
+
+
+    /**
+     * CWriteableJavaRegistry::GetRegistryEntryUidsL method returns
+     * an array of Uids of the registry entries, that are installed to
+     * the phone, or to the mmc drive currently plugged in.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUids [out] Uids of the registry entries.
+     */
+    IMPORT_C void GetRegistryEntryUidsL(RArray<TUid>& aUids) const;
+
+
+    /**
+     * CWriteableJavaRegistry::GetRegistryEntryUidsL method returns
+     * an array of Uids of the registry entries, that are installed to
+     * the phone, or to the mmc drive currently plugged in.
+     * Entries are searched by the specified type.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aType Type of registry entries whose Uids are to be returned.
+     * @param aUids [out] Uids of the matching registry entries.
+     * @param aAllEntries means, that method give all entries including
+     *          entries, which regards with midlets stored in not presented
+     *          media. EFalse means entries with regarding not presented
+     *          media will not return.
+     */
+    IMPORT_C void GetRegistryEntryUidsL(TJavaRegistryEntryType aType,
+                                        RArray<TUid>& aUids,
+                                        TBool aAllEntries = EFalse) const;
+
+
+    /**
+     * CWriteableJavaRegistry::GetRegistryEntryUidsL method returns
+     * an array of Uids of the registry entries, that are installed to
+     * the phone, or to the mmc drive currently plugged in.
+     * Entries are searched to match the specified properties.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aProperties The properties, to the returned entries have to
+     *          match.
+     * @param aUids [out] Uids of the matching registry entries, .
+     * @param aAllEntries means, that method give all entries including
+     *          entries, which regards with midlets stored in not presented
+     *          media. EFalse means entries with regarding not presented
+     *          media will not return.
+     */
+    IMPORT_C void GetRegistryEntryUidsL(
+        const RPointerArray<CJavaProperty>& aProperties,
+        RArray<TUid>& aUids,
+        TBool aAllEntries = EFalse) const;
+
+
+    /**
+     * CWriteableJavaRegistry::RegistryEntryL method returns the
+     * corresponding registry entry for a given Uid.
+     * The returned entry can be casted to the appropriate subclass
+     * according to the type property. If type is in the package range
+     * ( EGeneralPackage <= entryType < EGeneralApplication ), it can
+     * be casted to CWriteableJavaRegistryPackageEntry, and if type is
+     * in the application range ( EGeneralApplication <= entryType ),
+     * it can be casted to CWriteableJavaRegistryApplicationEntry.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of the entry to be retrieved.
+     * @return The returned registry entry or null if registry entry not
+     *         found. Caller takes over the ownership of the object being
+     *         transferred.
+     */
+    IMPORT_C CWriteableJavaRegistryEntry* RegistryEntryL(
+        const TUid& aUid,
+        TBool aAllEntries = EFalse) const;
+
+
+    /**
+     * CWriteableJavaRegistry::SetRegistryEntryL method creates, or updates
+     * the given registry entry in the registry.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aEntry The registry entry to be stored in the registry.
+     */
+    IMPORT_C void SetRegistryEntryL(CWriteableJavaRegistryEntry& aEntry) const;
+
+
+    /**
+     * CWriteableJavaRegistry::RemoveRegistryEntryL method removes the
+     * specified registry entry, and its embedded entries if requested.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of the entry to be removed.
+     * @param aEmbeddedEntries If aUid identifies a packageentry, this
+     *                         parameter indicates to remove its
+     *                         embedded entries as well.
+     * @param aAllEntries means, that method give all entries including
+     *          entries, which regards with midlets stored in not presented
+     *          media. EFalse means entries with regarding not presented
+     *          media will not return.
+     */
+    IMPORT_C void RemoveRegistryEntryL(
+        const TUid& aUid,
+        TBool aEmbeddedEntries = EFalse,
+        TBool aAllEntries = EFalse) const;
+
+protected:
+
+    // constructor
+    /**
+     * CWriteableJavaRegistry::CWriteableJavaRegistry constructor
+     *
+     * @since S60 v3.2
+     */
+    IMPORT_C CWriteableJavaRegistry();
+
+    // 2nd phase constructors
+    /**
+     * CWriteableJavaRegistry::ConstructL method
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUseIntegrity ETrue if Integrity Server must be used during
+     *                      the lifetime of this object, EFalse if it's
+     *                      not required.
+     * @param aLegacy Indicates, that the registry is used in legacy
+     *                mode.
+     */
+    IMPORT_C void ConstructL(TBool aUseIntegrity, TBool aLegacy = EFalse);
+
+
+    /**
+     * CWriteableJavaRegistry::ConstructL method
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aIntegritySessionId A transaction Id, identifying an
+     *                              integrity session, the registry
+     *                               has to connect to.
+     */
+    IMPORT_C void ConstructL(TInt64 aIntegritySessionId);
+
+    // general methods
+    /**
+     * CWriteableJavaRegistry::DecideEntryTypeAndCreateL method decides
+     * wich subclass of CWriteableJavaRegistryEntry represent the given
+     * array of properties, and creates it.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of the entry to be created with.
+     * @param aPropArray The method chooses wich subclass to create
+     *                      according to these properties.
+     * @return A pointer to a subclass of CWriteableJavaRegistryEntry,
+     *           or NULL if can't decide type. Caller takes over the
+     *         ownership of the object being transferred.
+     */
+    IMPORT_C virtual CWriteableJavaRegistryEntry* DecideEntryTypeAndCreateL
+    (const TUid& aUid,
+     CJavaPropertyArray* aPropArray) const;
+
+protected: // Data
+
+    /**
+     * CWriteableJavaRegistry::iJavaRegSession member, the client class
+     * to the javaregistry server.
+     *
+     * @since S60 v3.2
+     */
+    Java::Manager::Registry::RJavaRegSession* iJavaRegSession;
+
+};
+
+}// namespace Registry
+}// namespace Manager
+}// namespace Java
+
+#endif // WRITEABLEJAVAREGISTRY_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/inc/writeablejavaregistryapplicationentry.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,281 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  writeablejavaregistryapplicationentry definition
+*
+*/
+
+
+#ifndef WRITEABLEJAVAREGISTRYAPPLICATIONENTRY_H
+#define WRITEABLEJAVAREGISTRYAPPLICATIONENTRY_H
+
+// INCLUDES
+#include <e32cmn.h>
+#include "writeablejavaregistryentry.h"
+#include "javaattributes.h"
+
+using namespace Java;
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+
+// FORWARD DECLARATION
+class CWriteableJavaRegistry;
+class CWriteableJavaRegistryPackageEntry;
+
+
+// CLASS DECLARATION
+/**
+ * This subclass of CWriteableJavaRegistryEntry supports attributes
+ * for single applications, that can't contain embedded entries.
+ *
+ * @lib javaregistryclient.lib
+ * @since S60 v3.2
+ */
+class CWriteableJavaRegistryApplicationEntry :
+        public CWriteableJavaRegistryEntry
+{
+public:
+
+    // constructors
+
+    /**
+     * CWriteableJavaRegistryApplicationEntry::NewL method creates a
+     * CWriteableJavaRegistryApplicationEntry object. This constructor
+     * sets the type-property to EGeneralApplication.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of this entry.
+     * @return A pointer to a CWriteableJavaRegistryApplicationEntry
+     *         object. Caller takes over the ownership of the object being
+     *         transferred.
+     */
+    IMPORT_C static CWriteableJavaRegistryApplicationEntry*
+    NewL(const TUid& aUid);
+
+    /**
+     * CWriteableJavaRegistryApplicationEntry::NewLC method creates a
+     * CWriteableJavaRegistryApplicationEntry object. This constructor
+     * sets the type-property to EGeneralApplication.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of this entry.
+     * @return A pointer to a CWriteableJavaRegistryApplicationEntry
+     *         object. Caller takes over the ownership of the object being
+     *         transferred.
+     */
+    IMPORT_C static CWriteableJavaRegistryApplicationEntry*
+    NewLC(const TUid& aUid);
+
+    // destructor
+    /**
+     * CWriteableJavaRegistryApplicationEntry::~CWriteableJavaRegistryApplicationEntry destructor
+     *
+     * @since S60 v3.2
+     */
+    IMPORT_C ~CWriteableJavaRegistryApplicationEntry();
+
+    // general methods
+    /**
+     * Tells if this application is startable.
+     *
+     * @since S60 v3.2
+     * @return ETrue if the application is startable, EFalse otherwise.
+     *         Default value if not set: ETrue.
+     */
+    IMPORT_C TBool IsStartable() const;
+
+
+    /**
+     * Tells if this application must be shown in Application Shell or
+     * it must rather be hidden.
+     *
+     * @since S60 v3.2
+     * @return ETrue if the application is shown in Application Shell,
+     *         EFalse otherwise.
+     *         Default value if not set: ETrue.
+     */
+    IMPORT_C TBool IsVisible() const;
+
+
+    /**
+     * Tells if this application is resident.
+     *
+     * @since S60 v3.2
+     * @return ETrue if the application is resident, EFalse otherwise.
+     *         Default value if not set: EFalse.
+     */
+    IMPORT_C TBool IsResident() const;
+
+
+    /**
+     * CWriteableJavaRegistryApplicationEntry::GroupName method gets
+     * the group name of this application. This property tells in what
+     * folder should this application to be put.
+     *
+     * @since S60 v3.2
+     * @return Group name of this application.
+     *         Default value if not set: "Installed".
+     */
+    IMPORT_C const TDesC& GroupName() const;
+
+
+    /**
+     * CWriteableJavaRegistryApplicationEntry::InstallPackageUid method
+     * gets the Uid of the install package entry, which is the parent
+     * of this application.
+     *
+     * @since S60 v3.2
+     * @return The Uid of the parent package.
+     *         Default value if not set: TUid( 0 ).
+     */
+    IMPORT_C TUid InstallPackageUid() const;
+
+
+    /**
+     * Clients can set startability of an application, i.e. whether
+     * this application is startable or not.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aStartable ETrue if the application shall be startable,
+     *                   EFalse otherwise.
+     */
+    IMPORT_C void SetStartableL(TBool aStartable);
+
+
+    /**
+     * Clients can specify if this application is visible in Application
+     * Shell or not.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aVisible ETrue if the application shall be shown in
+     *                 Application Shell, EFalse otherwise.
+     */
+    IMPORT_C void SetVisibleL(TBool aVisible);
+
+
+    /**
+     * Clients can specify whether this application shall be resident or
+     * not.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aResident ETrue if the application shall be resident,
+     *                  EFalse otherwise.
+     */
+    IMPORT_C void SetResidentL(TBool aResident);
+
+
+    /**
+     * CWriteableJavaRegistryApplicationEntry::SetGroupNameL method sets
+     * the group name of this application. This property tells in what
+     * folder should this application to be put.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aGroupName Group name of this application.
+     */
+    IMPORT_C void SetGroupNameL(const TDesC& aGroupName);
+
+
+    /**
+     * CWriteableJavaRegistryApplicationEntry::SetInstallPackageL method
+     * sets the Uid of the install package entry, which is the parent
+     * of this application.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aInstallPackage The Uid of the parent package.
+     */
+    IMPORT_C void SetInstallPackageUidL(const TUid& aInstallPackage);
+
+    /**
+     * CWriteableJavaRegistryApplicationEntry::SetPropertyL method sets
+     * a new, or updtates a stored property if already exists.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aProperty Property to be setted. Pointer ownership taken.
+     */
+    IMPORT_C virtual void SetPropertyL(CJavaProperty* aProperty);
+
+
+    /**
+     * CWriteableJavaRegistryApplicationEntry::PackageEntryL method
+     * gets a reference to the install package entry, which is the parent
+     * of this application.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @return A pointer to a CJavaRegistryEntry object. Caller takes
+     *         over the ownership of the object being transferred.
+     */
+    IMPORT_C CWriteableJavaRegistryPackageEntry* PackageEntryL() const;
+
+    /**
+     * CWriteableJavaRegistryAplicationEntry::AttributeL method gets the
+     * additional attribute.
+     *
+     * @since S60 v5.0
+     * @param aName The name of the searched attribute.
+     * @return MJavaAttribute poiter to instance, which contain attribute.
+     * If attribute doesn't exist return NULL.
+     */
+    IMPORT_C virtual const MJavaAttribute* AttributeL(const TDesC& aName) const;
+
+    /**
+     * CWriteableJavaRegistryApplicationEntry::AttributesL method gets the
+     * additional attributes array.
+     *
+     * @since S60 v5.0
+     * @return RPointerArray& with all additional attributes.
+     */
+    IMPORT_C virtual const RPointerArray<MJavaAttribute>& AttributesL() const;
+
+
+
+protected:
+
+    // constructor
+    /**
+     * CWriteableJavaRegistryApplicationEntry::
+     *             CWriteableJavaRegistryApplicationEntry constructor
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of this entry.
+     */
+    IMPORT_C CWriteableJavaRegistryApplicationEntry(const TUid& aUid);
+
+private: // Data
+
+    CWriteableJavaRegistryPackageEntry* iWriteablePackage;
+
+    RPointerArray<MJavaAttribute> iAttributes;
+
+};
+
+}// namespace Registry
+}// namespace Manager
+}// namespace Java
+
+#endif // WRITEABLEJAVAREGISTRYAPPLICATIONENTRY_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/inc/writeablejavaregistryentry.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,421 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  writeablejavaregistryentry definition
+*
+*/
+
+
+#ifndef WRITEABLEJAVAREGISTRYENTRY_H
+#define WRITEABLEJAVAREGISTRYENTRY_H
+
+// INCLUDES
+#include <e32base.h>
+#include <f32file.h>
+#include "javaregistryentrytype.h"
+#include "javaattributes.h"
+
+using namespace Java;
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+// FORWARD DECLARATION
+class CJavaProperty;
+
+// CLASS DECLARATION
+/**
+ * This class provides the Internal API for entries in JavaRegistry.
+ * It supports common attributes only.
+ *
+ * @lib javaregistryclient.lib
+ * @since S60 v3.2
+ */
+class CWriteableJavaRegistryEntry :
+        public CBase
+{
+public:
+
+    // destructor
+    /**
+     * CWriteableJavaRegistryEntry::~CWriteableJavaRegistryEntry destructor
+     *
+     * @since S60 v3.2
+     */
+    IMPORT_C virtual ~CWriteableJavaRegistryEntry();
+
+    // general methods
+    /**
+     * CWriteableJavaRegistryEntry::Properties method returns all the
+     * properties the entry has.
+     *
+     * @since S60 v3.2
+     * @return The properties stored in RPointerArray<CJavaProperty>.
+     *         The ownership of objects is NOT subject to change.
+     */
+    const RPointerArray<CJavaProperty>& Properties() const;
+
+
+    /**
+     * CWriteableJavaRegistryEntry::Uid method gets the Uid of
+     * this registry entry.
+     *
+     * @since S60 v3.2
+     * @return A TUid object.
+     */
+    IMPORT_C TUid Uid() const;
+
+
+    /**
+     * Gets the name of the entity (midlet, suite, etc.) this entry
+     * represents.
+     *
+     * @since S60 v3.2
+     * @return Name of the entity this entry represents.
+     *         Default value if not set: KNullDesC.
+     */
+    IMPORT_C const TDesC& Name() const;
+
+
+    /**
+     * CWriteableJavaRegistryEntry::Type method gets the type of this
+     * registry entry. Enumeration TJavaRegistryEntryType defines
+     * the currently possible options. Mandatory property.
+     *
+     * @since S60 v3.2
+     * @return Type of this registry entry.
+     */
+    IMPORT_C TJavaRegistryEntryType Type() const;
+
+
+    /**
+     * CWriteableJavaRegistryEntry::Drive method gets the letter
+     * of drive where the install package has been installed.
+     *
+     * @since S60 v3.2
+     * @return Letter of drive where the install package has been
+     *         installed.
+     *         Default value if not set: EDriveC.
+     */
+    IMPORT_C TDriveNumber Drive() const;
+
+
+    /**
+     * CWriteableJavaRegistryEntry::NumberOfCertificateChains method
+     * returns the number of certificate chains of this Java application.
+     *
+     * @since S60 v3.2
+     * @return Number of certificate chains.
+     */
+    IMPORT_C TInt NumberOfCertificateChains() const;
+
+
+    /**
+     * CWriteableJavaRegistryEntry::CertificateChain method returns the
+     * n-th certificate chain of this Java application.
+     *
+     * @since S60 v3.2
+     * @param aIndex Index of the certificate chain to be retrieved.
+     * @return N-th certificate chain
+     *         Default value if not set: KNullDesC.
+     */
+    IMPORT_C const TDesC8& CertificateChain(TInt aIndex) const;
+
+
+    /**
+     * Returns the content id of the entity this entry represents.
+     * The content id can be used to check if a DRM protected entity
+     * has enough right to be launched or not.
+     * The method can also be used to check if the entity is DRM
+     * protected or not.
+     *
+     * @since S60 v3.2
+     * @return Content id of the entity this entry represent or
+     *          KNullDesC if the entity is not DRM protected.
+     */
+    IMPORT_C const TDesC& DrmContentId() const;
+
+
+    /**
+     * CWriteableJavaRegistryEntry::SetNameL method sets the name of
+     * this registry entry.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aName The name to be setted.
+     */
+    IMPORT_C void SetNameL(const TDesC& aName);
+
+    /**
+     * CWriteableJavaRegistryEntry::SetTypeL method sets the type of this
+     * registry entry. Enumeration TJavaRegistryEntryType defines
+     * the currently possible options.
+     * The function may leave with one of the system-wide error codes.
+     *
+     *
+     * @since S60 v3.2
+     * @param aType The type to be setted.
+     */
+    IMPORT_C void SetTypeL(TJavaRegistryEntryType aType);
+
+    /**
+     * CWriteableJavaRegistryEntry::SetDriveL method sets the letter
+     * of drive where the install package has been installed.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aDrive Letter of drive where the install package has been
+     *                  installed.
+     */
+    IMPORT_C void SetDriveL(const TDriveNumber& aDrive);
+
+
+    /**
+     * CWriteableJavaRegistryEntry::AddCertificateChainL method adds
+     * a certificate chain to this Java application.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aChain The new certificate chain.
+     */
+    IMPORT_C void AddCertificateChainL(const TDesC8& aChain);
+
+
+    /**
+     * CWriteableJavaRegistryEntry::SetDrmContentIdL sets DRM content
+     * id of this entry. If the entity represented by this entry is
+     * not DRM protected this content id should not be set
+     *
+     * @since S60 v3.2
+     * @param aDrmContentId DRM content id to be set
+     */
+    IMPORT_C void SetDrmContentIdL(const TDesC& aDrmContentId);
+
+
+    /**
+     * CWriteableJavaRegistryEntry::PropertyL method gets a property,
+     * specified by the Id parameter.
+     *
+     * @since S60 v3.2
+     * @param aId The Id of the property to be returned.
+     * @return The pointer of the property specified by the Id parameter,
+     *         or NULL if it is not set.
+     *         The ownership of the object being transferred is NOT
+     *         subject to change.
+     */
+    IMPORT_C const CJavaProperty* Property(TInt32 aId) const;
+
+
+    /**
+     * CWriteableJavaRegistryEntry::SetPropertyL method sets a new, or
+     * updtates a stored property if already exists.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aProperty Property to be setted. Pointer ownership taken.
+     */
+    IMPORT_C virtual void SetPropertyL(CJavaProperty* aProperty);
+
+
+    /**
+     * CWriteableJavaRegistryEntry::SetPropertyL method sets a new, or
+     * updtates a stored property if already exists.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aId The Id of the Property.
+     * @param aValue Value for the Property.
+     */
+    IMPORT_C void SetPropertyL(TInt32 aId, const TDesC& aValue);
+
+    /**
+     * CWriteableJavaRegistryEntry::Attribute method gets the
+     * additional attribute.
+     *
+     * @since S60 v5.0
+     * @param aName The name the searched attribute.
+     * @return MJavaAttribute poiter to instance, which contain attribute.
+     * If attribute doesn't exist return NULL.
+     */
+    IMPORT_C virtual const MJavaAttribute* AttributeL(const TDesC& aName) const;
+
+    /**
+     * CWriteableJavaRegistryEntry::Attributes method gets the
+     * additional attributes array.
+     *
+     * @since S60 v5.0
+     * @return RPointerArray& with all additional attributes.
+     */
+    IMPORT_C virtual const RPointerArray< MJavaAttribute >& AttributesL() const;
+
+    /**
+     * CWriteableJavaRegistryEntry::SerializeAttributes method gets the
+     * streamed attributes and store stream to CJavaProperty as
+     * special ESerializedAttribute
+     * If don't exists any attribute method do nothing
+     *
+     * @since S60 v5.0
+     *
+     */
+    IMPORT_C virtual void SerializeAttributesL();
+
+
+
+protected:
+
+    // constructors
+
+    /**
+     * CWriteableJavaRegistryEntry::CWriteableJavaRegistryEntry constructor
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of this entry.
+     */
+    IMPORT_C CWriteableJavaRegistryEntry(const TUid& aUid);
+
+    /**
+     * 2nd phase constructor. Used by the subclasses.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aType The type to be setted.
+     */
+    IMPORT_C void ConstructL(TJavaRegistryEntryType aType);
+
+    // general methods
+
+    /**
+     * CWriteableJavaRegistryEntry::IntegerProperty method gets an
+     * integer propertyvalue, specified by the Id parameter.
+     *
+     * @since S60 v3.2
+     * @param aId The Id of the property to be returned.
+     * @param aDefault The value to be returned if aValue does'nt
+     *                 contain valid data.
+     * @return The integer value of the property.
+     */
+    IMPORT_C TInt32 IntegerProperty(TInt32 aId, TInt32 aDefault) const;
+
+    /**
+     * CWriteableJavaRegistryEntry::BooleanProperty method gets a
+     * boolean propertyvalue, specified by the Id parameter.
+     *
+     * @since S60 v3.2
+     * @param aId The Id of the property to be returned.
+     * @param aDefault The value to be returned if aValue does'nt
+     *                 contain valid data.
+     * @return The boolean value of the property.
+     */
+    IMPORT_C TBool BooleanProperty(TInt32 aId, TBool aDefault) const;
+
+
+    /**
+     * CWriteableJavaRegistryEntry::SetBooleanPropertyL method sets a new,
+     * or updtates a stored boolean property if already exists.
+     * Used by some specialized boolean property setter methods.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aId The Id of the Property.
+     * @param aBoolValue Boolean value for the Property.
+     */
+    IMPORT_C void SetBooleanPropertyL(TInt32 aId, TBool aBoolValue);
+
+    /**
+     * CWriteableJavaRegistryEntry::SetDescriptorPropertyL method sets
+     * a new, or updtates a stored descriptor property if already exists.
+     * Used by some specialized descriptor property setter methods.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aId The Id of the Property.
+     * @param aDescValue Descriptor value for the Property.
+     */
+    IMPORT_C void SetDescriptorPropertyL(TInt32 aId,
+                                         const TDesC& aDescValue);
+
+    /**
+     * CWriteableJavaRegistryEntry::SetIntegerPropertyL method sets a new,
+     * or updtates a stored integer property if already exists.
+     * Used by some specialized integer/Uid property setter methods.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aId The Id of the Property.
+     * @param aIntValue Value for the Property.
+     */
+    IMPORT_C void SetIntegerPropertyL(TInt32 aId, TInt32 aIntValue);
+
+    /**
+     * CWriteableJavaRegistryEntry::DeleteProperty method deletes
+     * a property, specified by the index parameter.
+     *
+     * @since S60 v3.2
+     * @param aIndex The index of the property to be deleted.
+     * @return
+     */
+    IMPORT_C void DeleteProperty(TInt aIndex);
+
+    /**
+     * CWriteableJavaRegistryEntry::GetPropertyIndex method gets the
+     * index of the property specified by the Id.
+     *
+     * @since S60 v3.2
+     * @param aId The id of the searched property.
+     * @return The index of the searched property. If not found, -1 is
+     *         returned.
+     */
+    IMPORT_C TInt GetPropertyIndex(TInt32 aId) const;
+
+
+
+protected: // Data
+
+
+    /**
+     * CWriteableJavaRegistryEntry::iProperties member stores all the
+     * properties, whether processed here or in subclasses.
+     */
+    RPointerArray<CJavaProperty> iProperties;
+
+    /**
+     * CWriteableJavaRegistryEntry::iCertificates member stores the
+     * certificate chains. The certificate chains are also stored in the
+     * iProperties, and are synchronised at every modification.
+     */
+    RPointerArray<HBufC8> iCertificates;
+
+
+
+private: // Data
+    /**
+     * CWriteableJavaRegistryEntry::iUid member, representing the Uid
+     * of this entry.
+     */
+    TUid iUid;
+
+    RPointerArray<MJavaAttribute> iAttributes;
+
+};
+
+}// namespace Registry
+}// namespace Manager
+}// namespace Java
+
+
+#endif // WRITEABLEJAVAREGISTRYENTRY_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/inc/writeablejavaregistrypackageentry.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,421 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  writeablejavaregistrypackageentry definition
+*
+*/
+
+
+#ifndef WRITEABLEJAVAREGISTRYPACKAGEENTRY_H
+#define WRITEABLEJAVAREGISTRYPACKAGEENTRY_H
+
+// INCLUDES
+#include "writeablejavaregistryentry.h"
+#include "javaattributes.h"
+
+using namespace Java;
+
+// FORWARD DECLARATION
+class TAppVersion;
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+
+// CLASS DECLARATION
+/**
+ * This subclass of CWriteableJavaRegistryEntry supports attributes
+ * for packages, that can contain embedded entries.
+ *
+ * @lib javaregistryclient.lib
+ * @since S60 v3.2
+ */
+class CWriteableJavaRegistryPackageEntry :
+        public CWriteableJavaRegistryEntry
+{
+public:
+
+    // constructors
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::NewL method creates a
+     * CWriteableJavaRegistryPackageEntry object. This constructor
+     * sets the type-property to EGeneralPackage.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of this entry.
+     * @return A pointer to a CWriteableJavaRegistryPackageEntry
+     *         object. Caller takes over the ownership of the object
+     *         being transferred.
+     */
+    IMPORT_C static CWriteableJavaRegistryPackageEntry*
+    NewL(const TUid& aUid);
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::NewLC method creates a
+     * CWriteableJavaRegistryPackageEntry object. This constructor
+     * sets the type-property to EGeneralPackage.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of this entry.
+     * @return A pointer to a CWriteableJavaRegistryPackageEntry
+     *         object. Caller takes over the ownership of the object being
+     *         transferred.
+     */
+    IMPORT_C static CWriteableJavaRegistryPackageEntry*
+    NewLC(const TUid& aUid);
+
+    // destructor
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::
+     *                              ~CWriteableJavaRegistryPackageEntry
+     * Destructor
+     *
+     * @since S60 v3.2
+     */
+    IMPORT_C ~CWriteableJavaRegistryPackageEntry();
+
+    // general methods
+    /**
+     * CWriteableJavaRegistryPackageEntry::VersionL method gets the
+     * version of this install package suite.
+     *
+     * @since S60 v3.2
+     * @return A TAppVersion object that represents the version
+     *         of this install package suite.
+     *         Default value if not set: TAppVersion( 0, 0, 0 ).
+     */
+    IMPORT_C TAppVersion Version() const;
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::Vendor method gets the
+     * vendor name of this install package suite.
+     *
+     * @since S60 v3.2
+     * @return Vendor name of the installation package.
+     *         Default value if not set: KNullDesC.
+     */
+    IMPORT_C const TDesC& Vendor() const;
+
+
+    /**
+     * Tells if this package is uninstallable.
+     *
+     * @since S60 v3.2
+     * @return ETrue if the package is uninstallable, EFalse otherwise.
+     *         Default value if not set: ETrue.
+     */
+    IMPORT_C TBool IsUninstallable() const;
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::GetEmbeddedEntries method
+     * returns an array of Uids associated with this install package.
+     * E.g. if this entry represents a MIDlet suite this method returns
+     * an array of MIDlet Uids.
+     *
+     * @since S60 v3.2
+     * @param aUids [out] Returns Uids of the embedded entries in this
+     *                    install package.
+     */
+    IMPORT_C void GetEmbeddedEntries(RArray<TUid>& aUids) const;
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::DownloadPlugin method gets
+     * the downloadplugin of this package.
+     *
+     * @since S60 v3.2
+     * @return Descriptor identifying the downloadplugin of this package.
+     *         Default value if not set: KNullDesC8.
+     */
+    IMPORT_C const TDesC8& DownloadPlugin() const;
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::InstallPlugin method gets
+     * the installplugin of this package.
+     *
+     * @since S60 v3.2
+     * @return Descriptor identifying the installplugin of this package.
+     *         Default value if not set: KNullDesC8.
+     */
+    IMPORT_C const TDesC8& InstallPlugin() const;
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::Size method gets the size of
+     * this package.
+     *
+     * @since S60 v3.2
+     * @return The size of this package.
+     *         Default value if not set: 0.
+     */
+    IMPORT_C TInt Size() const;
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::SetVersionL method sets the
+     * version of this install package suite.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aVersion the version of this install package suite.
+     */
+    IMPORT_C void SetVersionL(const TAppVersion& aVersion);
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::SetVendorL method sets the
+     * vendor name of this install package suite.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aVendor Vendor name of the installation package.
+     */
+    IMPORT_C void SetVendorL(const TDesC& aVendor);
+
+
+    /**
+     * Tells if this package is uninstallable.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUninstallable ETrue if the package is uninstallable,
+     *                       EFalse otherwise.
+     */
+    IMPORT_C void SetUninstallableL(TBool aUninstallable);
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::SetDownloadPluginL method sets
+     * the downloadplugin of this package.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aDownloadPlugin Descriptor identifying the downloadplugin of
+     *          this package.
+     */
+    IMPORT_C void SetDownloadPluginL(const TDesC8& aDownloadPlugin);
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::SetInstallPluginL method sets
+     * the installplugin of this package.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aInstallPlugin Descriptor identifying the installplugin of
+     *           this package.
+     */
+    IMPORT_C void SetInstallPluginL(const TDesC8& aInstallPlugin);
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::SetSizeL method sets the size of
+     * this package.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aSize The size of this package.
+     */
+    IMPORT_C void SetSizeL(TInt aSize);
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::AddEmbeddedEntryL method adds
+     * the given Uid to the embedded entries.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid Adds the given Uid to the embedded entries.
+     */
+    IMPORT_C void AddEmbeddedEntryL(const TUid& aUid);
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::NumberOfEmbeddedEntries method
+     * Gets the number of embedded entries in this install package.
+     *
+     * @since S60 v3.2
+     * @return The number of embedded entries.
+     */
+    IMPORT_C TInt NumberOfEmbeddedEntries() const;
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::RemoveEmbeddedEntryL method
+     * removes the embedded entry specified by the given Uid.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of the embedded entry to be removed.
+     */
+    IMPORT_C void RemoveEmbeddedEntryL(const TUid& aUid);
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::EmbeddedEntryByUidL method
+     * Returns the corresponding embedded entry for the given Uid.
+     * The returned entry can be casted to the appropriate subclass
+     * according to the type property. If type is in the package range
+     * ( EGeneralPackage <= entryType < EGeneralApplication ), it can
+     * be casted to CWriteableJavaRegistryPackageEntry, and if type is
+     * in the application range ( EGeneralApplication <= entryType ),
+     * it can be casted to CWriteableJavaRegistryApplicationEntry.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aEntryUid The Uid of the embedded entry to be retrieved.
+     * @return The returned embedded entry or null if entry is not found.
+     *         Caller takes over the ownership of the object being
+     *         transferred.
+     */
+    IMPORT_C CWriteableJavaRegistryEntry* EmbeddedEntryByUidL(
+        const TUid& aEntryUid) const;
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::EmbeddedEntryByNumberL method
+     * Returns the corresponding embedded entry for the given application
+     * number.
+     * The returned entry can be casted to the appropriate subclass
+     * according to the type property. If type is in the package range
+     * ( EGeneralPackage <= entryType < EGeneralApplication ), it can
+     * be casted to CWriteableJavaRegistryPackageEntry, and if type is
+     * in the application range ( EGeneralApplication <= entryType ),
+     * it can be casted to CWriteableJavaRegistryApplicationEntry.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aEntryNum Number of the embedded entry to be retrieved
+     *                  ( NOTE: Starting from 0 )
+     * @return The returned embedded entry or null if entry is not found.
+     *         Caller takes over the ownership of the object being
+     *         transferred.
+     */
+    IMPORT_C CWriteableJavaRegistryEntry* EmbeddedEntryByNumberL(
+        TInt aEntryNum) const;
+    /**
+     * CWriteableJavaRegistryPackageEntry::SetPropertyL method sets a new,
+     * or updtates a stored property if already exists.
+     * This is a temporary overload of
+     * CWriteableJavaRegistryEntry::SetPropertyL
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aProperty Property to be setted. Pointer ownership taken.
+     */
+    IMPORT_C virtual void SetPropertyL(CJavaProperty* aProperty);
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::SetAttribute method sets a new,
+     * or updtates a stored attribute if already exists.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v5.0
+     * @param aProperty Property to be setted. Pointer ownership taken.
+     */
+    IMPORT_C void SetAttributeL(const TDesC& aName, const TDesC& aValue, TBool aTrusted);
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::Attribute method gets the
+     * additional attribute.
+     *
+     * @since S60 v5.0
+     * @param aName The name the searched attribute.
+     * @return MJavaAttribute poiter to instance, which contain attribute.
+     * If attribute doesn't exist return NULL.
+     */
+    IMPORT_C virtual const MJavaAttribute* AttributeL(const TDesC& aName) const;
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::Attributes method gets the
+     * additional attributes array.
+     *
+     * @since S60 v5.0
+     * @return RPointerArray& with all additional attributes.
+     */
+    IMPORT_C virtual const RPointerArray<MJavaAttribute>& AttributesL() const;
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::SerializeAttributes method gets the
+     * streamed attributes and store stream to CJavaProperty as
+     * special ESerializedAttribute
+     * If don't exists any attribute method do nothing
+     *
+     * @since S60 v5.0
+     *
+     */
+    IMPORT_C virtual void SerializeAttributesL();
+
+
+
+protected:
+
+    // constructor
+    /**
+     * CWriteableJavaRegistryPackageEntry::
+     *                        CWriteableJavaRegistryPackageEntry constructor
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of this entry.
+     */
+    IMPORT_C CWriteableJavaRegistryPackageEntry(const TUid& aUid);
+
+    /**
+    * CWriteableJavaRegistryEntry::iAttributes member stores the
+    * additional attributes. The addtional attributes is also stored in the
+    * iProperties as BLOB, and are synchronised at every modification.
+    */
+    CJavaAttributes* iAttributes;
+
+private: // Data
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::iDownloadPlugin member
+     * stores the 8bit descriptor represented downloadplugin
+     * property. This property is stored also in the
+     * iProperties, and are synchronised at every modification.
+     *
+     * @since S60 v3.2
+     */
+    HBufC8* iDownloadPlugin;
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::iInstallPlugin member
+     * stores the 8bit descriptor represented installplugin
+     * property. This property is stored also in the
+     * iProperties, and are synchronised at every modification.
+     *
+     * @since S60 v3.2
+     */
+    HBufC8* iInstallPlugin;
+
+    RPointerArray<MJavaAttribute> iAttrib;
+
+
+};
+
+}// namespace Registry
+}// namespace Manager
+}// namespace Java
+
+#endif // WRITEABLEJAVAREGISTRYPACKAGEENTRY_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/src/javaregconverter.cpp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,164 @@
+/*
+* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javaregconverter implementation
+*              : (__JAVA_EXCLUDED VERSION)
+*
+*/
+
+
+// INCLUDES
+#include "javaregconverter.h"
+#include <appversion.h>
+
+using namespace Java::Manager::Registry;
+
+// ============================ MEMBER FUNCTIONS ==============================
+
+// ---------------------------------------------------------------------------
+// JavaRegConverter::GetTAppVersion
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TAppVersion JavaRegConverter::
+GetTAppVersion(const TDesC& /* aValue */,
+               TAppVersion /* aDefault */)
+{
+    return TAppVersion();
+}
+
+// ---------------------------------------------------------------------------
+// JavaRegConverter::GetTAppVersionL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TAppVersion JavaRegConverter::
+GetTAppVersionL(const TDesC& /* aValue */)
+{
+    User::Leave(KErrNotSupported);
+    return TAppVersion();
+}
+
+// ---------------------------------------------------------------------------
+// JavaRegConverter::StoreTAppVersionL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void JavaRegConverter::
+StoreTAppVersionL(const TAppVersion& /* aValue */,
+                  HBufC*& /* aDes */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// JavaRegConverter::GetTInt
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt32 JavaRegConverter::
+GetTInt(const TDesC& /* aValue */, TInt32 /* aDefault */)
+{
+    return 0;
+}
+
+// ---------------------------------------------------------------------------
+// JavaRegConverter::GetTIntL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt32 JavaRegConverter::GetTIntL(const TDesC& /* aValue */)
+{
+    User::Leave(KErrNotSupported);
+    return 0;
+}
+
+// ---------------------------------------------------------------------------
+// JavaRegConverter::StoreTIntL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void JavaRegConverter::
+StoreTIntL(const TInt32 /* aValue */, HBufC*& /* aDes */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// JavaRegConverter::GetTBool
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool JavaRegConverter::
+GetTBool(const TDesC& /* aValue */, TBool /* aDefault */)
+{
+    return EFalse;
+}
+
+// ---------------------------------------------------------------------------
+// JavaRegConverter::GetTBoolL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool JavaRegConverter::
+GetTBoolL(const TDesC& /* aValue */)
+{
+    User::Leave(KErrNotSupported);
+    return EFalse;
+}
+
+// ---------------------------------------------------------------------------
+// JavaRegConverter::StoreTBoolL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void JavaRegConverter::
+StoreTBoolL(const TBool /* aValue */, HBufC*& /* aDes */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// JavaRegConverter::GetCertificateChainsL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void JavaRegConverter::
+GetCertificateChainsL(const TDesC& /* aValue */,
+                      RPointerArray<HBufC8>& /* aCertChains */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// JavaRegConverter::StoreCertificateChainsL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void JavaRegConverter::StoreCertificateChainsL(
+    const RPointerArray<HBufC8>& /* aValue */,
+    HBufC*& /* aDes */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// JavaRegConverter::GetUnicodeDescriptorsL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void JavaRegConverter::GetUnicodeDescriptorsL(
+    const TDesC& /* aValue */,
+    RPointerArray<HBufC>& /* aDescriptors */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// JavaRegConverter::StoreUnicodeDescriptorsL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void JavaRegConverter::StoreUnicodeDescriptorsL(
+    const RPointerArray<HBufC>& /* aValue */,
+    HBufC*& /* aDes */)
+{
+    User::Leave(KErrNotSupported);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/src/javaregistry.cpp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,100 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javaregistry implementation
+*
+*/
+
+
+#include "javaregistry.h"
+
+using namespace Java;
+using namespace Java::Manager::Registry;
+
+// ============================ MEMBER FUNCTIONS ==============================
+
+// ---------------------------------------------------------------------------
+// CJavaRegistry::NewL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CJavaRegistry* CJavaRegistry::NewL()
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistry::NewLC
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CJavaRegistry* CJavaRegistry::NewLC()
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistry::RegistryEntryExistsL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CJavaRegistry::RegistryEntryExistsL(const TUid& /*aUid*/) const
+{
+    User::Leave(KErrNotSupported);
+    return EFalse;
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistry::GetRegistryEntryUidsL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CJavaRegistry::GetRegistryEntryUidsL(RArray<TUid>& /*aUids*/) const
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistry::GetRegistryEntryUidsL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CJavaRegistry::GetRegistryEntryUidsL
+(TJavaRegistryEntryType /*aType*/, RArray<TUid>& /*aUids*/) const
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistry::RegistryEntryL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CJavaRegistryEntry* CJavaRegistry::
+RegistryEntryL(const TUid& /*aUid*/) const
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistry::~CJavaRegistry
+// ---------------------------------------------------------------------------
+//
+CJavaRegistry::~CJavaRegistry()
+{
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistry::CJavaRegistry
+// ---------------------------------------------------------------------------
+//
+CJavaRegistry::CJavaRegistry()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/src/javaregistryapplicationentry.cpp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,88 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javaregistryapplicationentry implementation
+*
+*/
+
+
+#include "javaregistrypackageentry.h"
+#include "javaregistryapplicationentry.h"
+#include "writeablejavaregistryapplicationentry.h"
+
+using namespace Java;
+using namespace Java::Manager::Registry;
+
+// ============================ MEMBER FUNCTIONS ==============================
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryApplicationEntry::CJavaRegistryApplicationEntry
+// ---------------------------------------------------------------------------
+//
+CJavaRegistryApplicationEntry::CJavaRegistryApplicationEntry
+(CWriteableJavaRegistryApplicationEntry* aWritableEntry) :
+        CJavaRegistryEntry(aWritableEntry)
+{
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryApplicationEntry::IsStartable
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CJavaRegistryApplicationEntry::IsStartable() const
+{
+    return ETrue;
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryApplicationEntry::IsVisible
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CJavaRegistryApplicationEntry::IsVisible() const
+{
+    return ETrue;
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryApplicationEntry::IsResident
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CJavaRegistryApplicationEntry::IsResident() const
+{
+    return EFalse;
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryApplicationEntry::GroupName
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CJavaRegistryApplicationEntry::GroupName() const
+{
+    return KNullDesC;
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryApplicationEntry::PackageEntryL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CJavaRegistryPackageEntry* CJavaRegistryApplicationEntry::
+PackageEntryL() const
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/src/javaregistrybackupsupport.cpp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,74 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javaregistrybackupsupport implementation
+*              : (__JAVA_EXCLUDED VERSION)
+*
+*/
+
+
+// INCLUDES
+#include "javaregistrybackupsupport.h"
+
+using namespace Java::Manager::Registry;
+
+// ============================ MEMBER FUNCTIONS ==============================
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryBackupSupport::NewL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CJavaRegistryBackupSupport* CJavaRegistryBackupSupport::NewL()
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryBackupSupport::NewLC
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CJavaRegistryBackupSupport* CJavaRegistryBackupSupport::NewLC()
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryBackupSupport::~CJavaRegistryBackupSupport
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CJavaRegistryBackupSupport::~CJavaRegistryBackupSupport()
+{
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryBackupSupport::EntriesExistForDriveL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CJavaRegistryBackupSupport::
+EntriesExistForDriveL(const TDriveNumber& /* aDrive */) const
+{
+    User::Leave(KErrNotSupported);
+    return EFalse;
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryBackupSupport::ChangeBURState
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CJavaRegistryBackupSupport::
+ChangeBURState(const TBackupState& /* aState */) const
+{
+    return KErrNotSupported;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/src/javaregistryentry.cpp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,139 @@
+/*
+* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javaregistryentry implementation
+*
+*/
+
+
+#include "javaregistryentry.h"
+#include "writeablejavaregistryentry.h"
+#include "javaattributes.h"
+
+using namespace Java;
+using namespace Java::Manager::Registry;
+
+// ============================ MEMBER FUNCTIONS ==============================
+// ---------------------------------------------------------------------------
+// CJavaRegistryEntry::CJavaRegistryEntry
+// ---------------------------------------------------------------------------
+//
+CJavaRegistryEntry::CJavaRegistryEntry
+(CWriteableJavaRegistryEntry* /* aWritableEntry */)
+{
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryEntry::Uid
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TUid CJavaRegistryEntry::Uid() const
+{
+    return TUid::Null();
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryEntry::Name
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CJavaRegistryEntry::Name() const
+{
+    return KNullDesC;
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryEntry::Type
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TJavaRegistryEntryType CJavaRegistryEntry::Type() const
+{
+    return EGeneralApplication;
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryEntry::DriveL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TDriveNumber CJavaRegistryEntry::Drive() const
+{
+    return EDriveC;
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryEntry::NumberOfCertificateChains
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CJavaRegistryEntry::NumberOfCertificateChains() const
+{
+    return 0;
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryEntry::CertificateChain
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC8& CJavaRegistryEntry::
+CertificateChain(TInt /* aChain */) const
+{
+    return KNullDesC8;
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryEntry::DrmContentId
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CJavaRegistryEntry::DrmContentId() const
+{
+    return KNullDesC;
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryEntry::~CJavaRegistryEntry
+// ---------------------------------------------------------------------------
+//
+CJavaRegistryEntry::~CJavaRegistryEntry()
+{
+}
+// ---------------------------------------------------------------------------
+// CJavaRegistryEntry::WritableEntry
+// ---------------------------------------------------------------------------
+//
+CWriteableJavaRegistryEntry* CJavaRegistryEntry::WritableEntry() const
+{
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryEntry::AttributeL
+// ---------------------------------------------------------------------------
+//
+
+EXPORT_C const MJavaAttribute* CJavaRegistryEntry::AttributeL(const TDesC& /*aName*/) const
+{
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryEntry::AttributesL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const RPointerArray<MJavaAttribute>& CJavaRegistryEntry::AttributesL() const
+{
+    return iAttributes;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/src/javaregistrypackageentry.cpp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,121 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javaregistrypackageentry implementation
+*
+*/
+
+
+#include "javaregistrypackageentry.h"
+#include "javaregistryapplicationentry.h"
+#include "writeablejavaregistrypackageentry.h"
+#include <appversion.h>
+
+
+using namespace Java;
+using namespace Java::Manager::Registry;
+
+// ============================ MEMBER FUNCTIONS ==============================
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryPackageEntry::CJavaRegistryPackageEntry
+// ---------------------------------------------------------------------------
+//
+CJavaRegistryPackageEntry::CJavaRegistryPackageEntry
+(CWriteableJavaRegistryPackageEntry* aWritableEntry) :
+        CJavaRegistryEntry(aWritableEntry)
+{
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryPackageEntry::Version
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TAppVersion CJavaRegistryPackageEntry::Version() const
+{
+    return TAppVersion(0, 0, 0);
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryPackageEntry::Vendor
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CJavaRegistryPackageEntry::Vendor() const
+{
+    return KNullDesC;
+}
+
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryPackageEntry::IsUninstallable
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CJavaRegistryPackageEntry::IsUninstallable() const
+{
+    return ETrue;
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryPackageEntry::GetEmbeddedEntries
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CJavaRegistryPackageEntry::GetEmbeddedEntries
+(RArray<TUid>& /*aUids*/) const
+{
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryPackageEntry::NumberOfEmbeddedEntries
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CJavaRegistryPackageEntry::NumberOfEmbeddedEntries() const
+{
+    return 0;
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryPackageEntry::EmbeddedEntryByUidL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CJavaRegistryEntry* CJavaRegistryPackageEntry::
+EmbeddedEntryByUidL(const TUid& /*aEntryUid*/) const
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryPackageEntry::EmbeddedEntryByNumberL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CJavaRegistryEntry* CJavaRegistryPackageEntry::
+EmbeddedEntryByNumberL(TInt /*aEntryNum*/) const
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CJavaRegistryPackageEntry::UsedUserDiskSpace
+// ---------------------------------------------------------------------------
+EXPORT_C TInt64 CJavaRegistryPackageEntry::UsedUserDiskSpace() const
+{
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/src/writeablejavaregistry.cpp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,209 @@
+/*
+* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  writeablejavaregistry implementation
+*              : (__JAVA_EXCLUDED VERSION)
+*
+*/
+
+
+// INCLUDES
+#include "writeablejavaregistry.h"
+
+using namespace Java::Manager::Registry;
+
+// ============================ MEMBER FUNCTIONS ==============================
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::NewL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistry* CWriteableJavaRegistry::
+NewL(TBool /* aUseIntegrity */)
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::NewLC
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistry* CWriteableJavaRegistry::
+NewLC(TBool /* aUseIntegrity */)
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::NewL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistry* CWriteableJavaRegistry::
+NewL(TInt64 /* aIntegritySessionId */)
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::NewLC
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistry* CWriteableJavaRegistry::
+NewLC(TInt64 /* aIntegritySessionId */)
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::~CWriteableJavaRegistry
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistry::~CWriteableJavaRegistry()
+{
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::GenerateUidL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistry::GenerateUidsL(
+    RArray<TUid>& /* aUids */,
+    TInt /* aNumber */) const
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::RegistryEntryExistsL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CWriteableJavaRegistry::
+RegistryEntryExistsL(const TUid& /* aUid */) const
+{
+    User::Leave(KErrNotSupported);
+    return EFalse;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::GetRegistryEntryUidsL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistry::
+GetRegistryEntryUidsL(RArray<TUid>& /* aUids */) const
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::GetRegistryEntryUidsL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistry::
+GetRegistryEntryUidsL(TJavaRegistryEntryType /* aType */,
+                      RArray<TUid>& /* aUids */,
+                      TBool /*aAllEntries*/) const
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::GetRegistryEntryUidsL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistry::GetRegistryEntryUidsL(
+    const RPointerArray<CJavaProperty>& /* aProperties */,
+    RArray<TUid>& /* aUids */, TBool /*aAllEntries*/) const
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::RegistryEntryL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistryEntry* CWriteableJavaRegistry::
+RegistryEntryL(const TUid& /* aUid */,
+               TBool /*aAllEntries*/) const
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::SetRegistryEntryL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistry::
+SetRegistryEntryL(CWriteableJavaRegistryEntry& /* aEntry */) const
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::RemoveRegistryEntryL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistry::
+RemoveRegistryEntryL(const TUid& /* aUid */,
+                     TBool /* aEmbeddedEntries */,
+                     TBool /* aAllEntries */) const
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::CWriteableJavaRegistry
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistry::CWriteableJavaRegistry()
+{
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::ConstructL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistry::
+ConstructL(TBool /* aUseIntegrity */,
+           TBool /* aLegacy */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::ConstructL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistry::
+ConstructL(TInt64 /* aIntegritySessionId */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistry::DecideEntryTypeAndCreateL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistryEntry*
+CWriteableJavaRegistry::DecideEntryTypeAndCreateL
+(const TUid& /* aUid */,
+ CJavaPropertyArray* /* aPropArray */) const
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/src/writeablejavaregistryapplicationentry.cpp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,207 @@
+/*
+* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  writeablejavaregistryapplicationentry implementation
+*              : (__JAVA_EXCLUDED VERSION)
+*
+*/
+
+
+// INCLUDES
+#include "writeablejavaregistryapplicationentry.h"
+#include "javaattributes.h"
+
+using namespace Java;
+using namespace Java::Manager::Registry;
+
+// ============================ MEMBER FUNCTIONS =============================
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::~CWriteableJavaRegistryApplicationEntry
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistryApplicationEntry::~CWriteableJavaRegistryApplicationEntry()
+{
+}
+// CWriteableJavaRegistryApplicationEntry::NewL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistryApplicationEntry*
+CWriteableJavaRegistryApplicationEntry::NewL(const TUid& /* aUid */)
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::NewLC
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistryApplicationEntry*
+CWriteableJavaRegistryApplicationEntry::NewLC(const TUid& /* aUid */)
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::IsStartable
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CWriteableJavaRegistryApplicationEntry::IsStartable() const
+{
+    return EFalse; // ETrue ? regarding to the header file
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::IsVisible
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CWriteableJavaRegistryApplicationEntry::IsVisible() const
+{
+    return EFalse; // ETrue ? regarding to the header file
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::IsResident
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CWriteableJavaRegistryApplicationEntry::IsResident() const
+{
+    return EFalse;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::GroupName
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CWriteableJavaRegistryApplicationEntry::
+GroupName() const
+{
+    return KNullDesC;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::InstallPackageUid
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TUid CWriteableJavaRegistryApplicationEntry::InstallPackageUid() const
+{
+    return TUid::Null();
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::SetStartableL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryApplicationEntry::
+SetStartableL(TBool /* aStartable */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::SetVisibleL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryApplicationEntry::
+SetVisibleL(TBool /* aVisible */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::SetResidentL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryApplicationEntry::
+SetResidentL(TBool /* aResident */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::SetGroupNameL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryApplicationEntry::
+SetGroupNameL(const TDesC& /* aGroupName */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::SetInstallPackageUidL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryApplicationEntry::
+SetInstallPackageUidL(const TUid& /* aInstallPackage */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::SetPropertyL
+// Takes ownership of aProperty
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryApplicationEntry::
+SetPropertyL(CJavaProperty* /*aProperty*/)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::PackageEntryL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistryPackageEntry*
+CWriteableJavaRegistryApplicationEntry::PackageEntryL() const
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::
+//                                     CWriteableJavaRegistryApplicationEntry
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistryApplicationEntry::
+CWriteableJavaRegistryApplicationEntry(const TUid& /* aUid */)
+        : CWriteableJavaRegistryEntry(TUid::Null())
+{
+
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::AttributeL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const MJavaAttribute* CWriteableJavaRegistryApplicationEntry::
+AttributeL(const TDesC& /* aName */) const
+{
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryApplicationEntry::AttributesL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const RPointerArray<MJavaAttribute>&
+CWriteableJavaRegistryApplicationEntry::AttributesL() const
+{
+    User::Leave(KErrNotSupported);
+    return iAttributes;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/src/writeablejavaregistryentry.cpp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,296 @@
+/*
+* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  writeablejavaregistryentry implementation
+*              : (__JAVA_EXCLUDED VERSION)
+*
+*/
+
+
+// INCLUDES
+#include "writeablejavaregistryentry.h"
+
+using namespace Java;
+using namespace Java::Manager::Registry;
+
+// ============================ MEMBER FUNCTIONS =============================
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::~CWriteableJavaRegistryEntry
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistryEntry::~CWriteableJavaRegistryEntry()
+{
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::Uid
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TUid CWriteableJavaRegistryEntry::Uid() const
+{
+    return TUid::Null();
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::Name
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CWriteableJavaRegistryEntry::Name() const
+{
+    return KNullDesC;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::Type
+// ---------------------------------------------------------------------------
+//
+EXPORT_C Java::TJavaRegistryEntryType CWriteableJavaRegistryEntry::
+Type() const
+{
+    return Java::TJavaRegistryEntryType();
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::Drive
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TDriveNumber CWriteableJavaRegistryEntry::Drive() const
+{
+    return EDriveC;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::NumberOfCertificateChains
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CWriteableJavaRegistryEntry::NumberOfCertificateChains() const
+{
+    return 0;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::CertificateChain
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC8& CWriteableJavaRegistryEntry::
+CertificateChain(TInt /* aIndex */) const
+{
+    return KNullDesC8;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::DrmContentId
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CWriteableJavaRegistryEntry::DrmContentId() const
+{
+    return KNullDesC;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::SetNameL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryEntry::SetNameL(const TDesC& /* aName */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::SetTypeL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryEntry::
+SetTypeL(Java::TJavaRegistryEntryType /* aType */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::SetDriveL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryEntry::
+SetDriveL(const TDriveNumber& /* aDrive */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::AddCertificateChainL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryEntry::
+AddCertificateChainL(const TDesC8& /* aChain */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::SetDrmContentIdL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryEntry::
+SetDrmContentIdL(const TDesC& /* aDrmConte ntId */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::Property
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const CJavaProperty* CWriteableJavaRegistryEntry::
+Property(TInt32 /* aId */) const
+{
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::SetPropertyL
+// Takes ownership of aProperty
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryEntry::
+SetPropertyL(CJavaProperty* /* aProperty */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::SetPropertyL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryEntry::
+SetPropertyL(TInt32 /* aId */, const TDesC& /* aValue */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::CWriteableJavaRegistryEntry
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistryEntry::
+CWriteableJavaRegistryEntry(const TUid& /* aUid */)
+{
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::ConstructL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryEntry::
+ConstructL(Java::TJavaRegistryEntryType /* aType */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::IntegerProperty
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt32 CWriteableJavaRegistryEntry::
+IntegerProperty(TInt32 /* aId */, TInt32 /* aDefault */) const
+{
+    return 0;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::BooleanProperty
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CWriteableJavaRegistryEntry::
+BooleanProperty(TInt32 /* aId */, TBool /* aDefault */) const
+{
+    return EFalse;
+}
+
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::SetBooleanPropertyL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryEntry::
+SetBooleanPropertyL(TInt32 /* aId */, TBool /* aBoolValue */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::SetDescriptorPropertyL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryEntry::
+SetDescriptorPropertyL(TInt32 /* aId */, const TDesC& /* aDescValue */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::SetIntegerPropertyL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryEntry::
+SetIntegerPropertyL(TInt32 /* aId */, TInt32 /* aIntValue */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::DeleteProperty
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryEntry::DeleteProperty(TInt /* aIndex */)
+{
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::GetPropertyIndex
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CWriteableJavaRegistryEntry::
+GetPropertyIndex(TInt32 /* aId */) const
+{
+    return -1;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::AttributeL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const MJavaAttribute* CWriteableJavaRegistryEntry::
+AttributeL(const TDesC& /* aName */) const
+{
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::AttributesL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const RPointerArray<MJavaAttribute>&
+CWriteableJavaRegistryEntry::AttributesL() const
+{
+    return iAttributes;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryEntry::SerializeAttributesL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryEntry::SerializeAttributesL()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/src/writeablejavaregistrypackageentry.cpp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,303 @@
+/*
+* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  writeablejavaregistrypackageentry implementation
+*              : (__JAVA_EXCLUDED VERSION)
+*
+*/
+
+
+// INCLUDES
+#include "writeablejavaregistrypackageentry.h"
+#include "javaattributes.h"
+#include <appversion.h>
+
+using namespace Java;
+using namespace Java::Manager::Registry;
+
+// ============================ MEMBER FUNCTIONS ==============================
+
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::NewL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistryPackageEntry*
+CWriteableJavaRegistryPackageEntry::NewL(const TUid& /* aUid */)
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::NewLC
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistryPackageEntry*
+CWriteableJavaRegistryPackageEntry::NewLC(const TUid& /* aUid */)
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::~CWriteableJavaRegistryPackageEntry
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistryPackageEntry::
+~CWriteableJavaRegistryPackageEntry()
+{
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::Version
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TAppVersion CWriteableJavaRegistryPackageEntry::Version() const
+{
+    return TAppVersion(0, 0, 0);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::Vendor
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CWriteableJavaRegistryPackageEntry::Vendor() const
+{
+    return KNullDesC;
+}
+
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::IsUninstallable
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CWriteableJavaRegistryPackageEntry::IsUninstallable() const
+{
+    return ETrue;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::GetEmbeddedEntries
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryPackageEntry::
+GetEmbeddedEntries(RArray<TUid>& /* aUids */) const
+{
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::DownloadPlugin
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC8& CWriteableJavaRegistryPackageEntry::
+DownloadPlugin() const
+{
+    return KNullDesC8;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::InstallPlugin
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC8& CWriteableJavaRegistryPackageEntry::
+InstallPlugin() const
+{
+    return KNullDesC8;
+}
+
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::Size
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CWriteableJavaRegistryPackageEntry::Size() const
+{
+    return 0;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::SetVersionL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryPackageEntry::
+SetVersionL(const TAppVersion& /* aVersion */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::SetVendorL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryPackageEntry::
+SetVendorL(const TDesC& /* aVendor */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::SetUninstallableL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryPackageEntry::
+SetUninstallableL(TBool /* aUninstallable */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::SetDownloadPluginL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryPackageEntry::
+SetDownloadPluginL(const TDesC8& /* aDownloadPlugin */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::SetInstallPluginL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryPackageEntry::
+SetInstallPluginL(const TDesC8& /* aInstallPlugin */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::SetSize
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryPackageEntry::SetSizeL(TInt /* aSize */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::AddEmbeddedEntryL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryPackageEntry::
+AddEmbeddedEntryL(const TUid& /* aUid */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::NumberOfEmbeddedEntries
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CWriteableJavaRegistryPackageEntry::
+NumberOfEmbeddedEntries() const
+{
+    return 0;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::RemoveEmbeddedEntryL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryPackageEntry::
+RemoveEmbeddedEntryL(const TUid& /* aUid */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::EmbeddedEntryByUidL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistryEntry*
+CWriteableJavaRegistryPackageEntry::
+EmbeddedEntryByUidL(const TUid& /* aEntryUid */) const
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::EmbeddedEntryByNumberL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistryEntry*
+CWriteableJavaRegistryPackageEntry::
+EmbeddedEntryByNumberL(TInt /* aEntryNum */) const
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::SetPropertyL
+// Takes ownership of aProperty
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryPackageEntry::
+SetPropertyL(CJavaProperty* /* aProperty */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::CWriteableJavaRegistryPackageEntry
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CWriteableJavaRegistryPackageEntry::
+CWriteableJavaRegistryPackageEntry(const TUid& aUid) :
+        CWriteableJavaRegistryEntry(aUid),
+        iDownloadPlugin(NULL),
+        iInstallPlugin(NULL)
+{
+}
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::SetAttribute
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryPackageEntry::
+SetAttributeL(const TDesC& /* aName */, const TDesC& /* aValue */, TBool /* aTrusted */)
+{
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::AttributeL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const MJavaAttribute* CWriteableJavaRegistryPackageEntry::
+AttributeL(const TDesC& /* aName */) const
+{
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::AttributesL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const RPointerArray<MJavaAttribute>&
+CWriteableJavaRegistryPackageEntry::AttributesL() const
+{
+    return iAttrib;
+}
+
+
+// ---------------------------------------------------------------------------
+// CWriteableJavaRegistryPackageEntry::SerializeAttributesL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CWriteableJavaRegistryPackageEntry::
+SerializeAttributesL()
+{
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/common/inc/javapropertyarray.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,208 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javapropertyarray definition
+*
+*/
+
+
+#ifndef __JAVA_PROPERTY_ARRAY_H
+#define __JAVA_PROPERTY_ARRAY_H
+
+#include <e32base.h>
+#include <s32strm.h>
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+
+class CJavaProperty;
+
+/**
+ * This class is a container of CJavaProperty objects references.
+ * The class can externalize and internalize the contained CJavaProperty
+ * objects.
+ *
+ * @since S60 v3.2
+ */
+class CJavaPropertyArray :
+        public CBase
+{
+
+public:
+
+    /**
+     * Static method creates a new object of this class.
+     *
+     * @since S60 v3.2
+     * @return a new object of this class.
+     */
+    static CJavaPropertyArray*  NewL();
+
+    /**
+     * Static method creates a new object of this class and
+     * leaves it on cleanup stack.
+     *
+     * @since S60 v3.2
+     * @return a new object of this class.
+     */
+    static CJavaPropertyArray*  NewLC();
+
+    /**
+     * Static method creates a new object of this class and initialize it
+     * by creating JavaProperty objects. For initialization of this class
+     * is used the buffer obtained by serialization of another object of
+     * this class. This object will be a clone of the other object from
+     * which the buffer is obtained. The created JavaProperty objects are
+     * owned by the CJavaPropertyArray object.
+     *
+     * @since S60 v3.2
+     * @see SerializedPropertiesL()
+     * @param aBuffer buffer obtained on serialization of another object
+     *          of this class,
+     */
+    static CJavaPropertyArray*  NewL(TDesC8* aBuffer);
+
+    /**
+     * Static method creates a new object of this class and initialize it
+     * by creating JavaProperty objects. For initialization of this class
+     * is used the buffer obtained by serialization of another object of
+     * this class. This object will be a clone of the other object from
+     * which the buffer is obtained. The created JavaProperty objects are
+     * owned by the CJavaPropertyArray object.
+     *
+     * @since S60 v3.2
+     * @see SerializedPropertiesL()
+     * @param aBuffer buffer obtained on serialization of another object
+     *          of this class,
+     */
+    static CJavaPropertyArray*  NewLC(TDesC8* aBuffer);
+
+    /**
+     * Appends a property object reference.
+     * The appended property object are not owned by this object.
+     *
+     * @since S60 v3.2
+     * @param aProperty property object reference to be appended to this
+     *          container
+     * @return error code of the operation
+     */
+    TInt Append(CJavaProperty* aProperty);
+
+    /**
+     * Returns the number of contained property object references.
+     *
+     * @since S60 v3.2
+     * @return number of contained property references
+     */
+    TInt Count();
+
+    /**
+     * Returns the property object reference located at a specified position.
+     *
+     * @since S60 v3.2
+     * @param aIndex the position of the property object reference
+     * @return the reference of property object at position aIndex
+     */
+    CJavaProperty*  At(TInt aIndex);
+
+    /**
+     * Internalizes the property objects. It is used by ">>" operator.
+     *
+     * @since S60 v3.2
+     * @param aStream internalization happens from this stream
+     */
+    virtual void InternalizeL(RReadStream& aStream);
+
+    /**
+     * Externalizes the property objects. It is used by "<<" operator.
+     *
+     * @since S60 v3.2
+     * @param aStream externalization happens in this stream
+     */
+    virtual void ExternalizeL(RWriteStream& aStream) const;
+
+    /**
+     * Serializes the property objects in a descriptor buffer. This buffer
+     * will be used to reconstruct a new JavaPropertArray object together
+     * with its JavaProperty objects.
+     *
+     * @since S60 v3.2
+     * @see NewL( TDesC8* aBuffer )
+     * @return a buffer containing the property objects in a serialized form
+     */
+    HBufC8* SerializedPropertiesL() const;
+
+    /**
+     * Returns the size needed for serialization.
+     *
+     * @since S60 v3.2
+     * @return size needed for serialization
+     * @see SerializedPropertiesL
+     */
+    TInt Size() const;
+
+    /**
+     * Checks if the given property are contained by the property array.
+     *
+     * @since S60 v3.2
+     * @return true if property array contains the given property
+     */
+    TBool Contains(CJavaProperty& aProperty) const;
+
+    /**
+     * Finds and returns the position of property with the given id.
+     *
+     * @since S60 v3.2
+     * @return the position of the property with the given id or
+     *              KErrNotFound if property does not exists
+     */
+    TInt Find(TInt32 aPropertyId);
+
+    /**
+     * Destructor
+     *
+     * @since S60 v3.2
+     */
+    ~CJavaPropertyArray();
+
+private:
+
+    void ConstructL(TDesC8* aBuffer);
+
+    /**
+     * Deletes the contained java property objects
+     * and remove them from the container.
+     *
+     * @since S60 v3.2
+     */
+    void DeleteProperties();
+
+private:    //members
+
+    // contains the java property refernces
+    RPointerArray<CJavaProperty> iProperties;
+
+    // indicates if the properties are owned or not by the property array
+    TBool iPropertiesOwned;
+};
+
+}//namespace Registry
+}//namespace Manager
+}//namespace Java
+
+#endif //__JAVA_PROPERTY_ARRAY_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/common/inc/javaregburstates.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,41 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javaregburstates definition
+*
+*/
+
+
+#ifndef JAVAREGBURSTATES_H
+#define JAVAREGBURSTATES_H
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+
+// Backup states
+enum TBackupState
+{
+    ENoBackup,
+    EBackuping,
+    ERestoring
+};
+
+}//namespace Registry
+}//namespace Manager
+}//namespace Java
+
+#endif //JAVAREGBURSTATES_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/common/inc/javaregdef.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javaregdef definition
+*
+*/
+
+
+#ifndef JAVAREGDEF_H
+#define JAVAREGDEF_H
+
+#include <e32std.h>
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+
+// name of java registry server
+_LIT(KJavaRegServerName, "!javaregistry");
+
+// the executable name of java registry server
+_LIT(KJavaRegServerExeName, "javaregistry.exe");
+
+// Function ids of client requests
+enum TRequests
+{
+    EInitializeServerUseIntegr,
+    EEntryExists,
+    EGetEntryUids,
+    EGetEntry,
+    EGetEntryFromAll,
+    EFindEntries,
+    EFindAllEntries,
+    EInitializeServerTransId,
+    ESetEntry,
+    ERemoveEntry,
+    ERemoveEntryFromAll,
+    EAllocateUids,
+    ESetBackupState
+};
+
+}//namespace Registry
+}//namespace Manager
+}//namespace Java
+
+#endif //JAVAREGDEF_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/common/inc/javaregproperty.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,126 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javaregproperty definition
+*
+*/
+
+
+#ifndef __JAVAREGPROPERTY_H
+#define __JAVAREGPROPERTY_H
+
+#include <e32base.h>
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+
+/**
+ * CJavaProperty class contains a property ID and a property
+ * value and makes possible to set and get these fields.
+ * The property value is represented as a 16 bit descriptor.
+ *
+ * @since S60 v3.2
+ */
+class CJavaProperty :
+        public CBase
+{
+
+public:
+
+    /**
+     * Constructs a new property object using the given property
+     * ID and value.
+     *
+     * @since S60 v3.2
+     * @param aId java property ID
+     * @param aValue java property value
+     * @return a new java property object
+     */
+    IMPORT_C static CJavaProperty*  NewL(TInt32 aId,
+                                         const TDesC& aValue);
+
+    /**
+     * Constructs a new property object using the given property
+     * ID and value
+     * and leaves the object on the cleanup stack.
+     *
+     * @since S60 v3.2
+     * @param aId java property ID
+     * @param aValue java property value
+     * @return a new java property object
+     */
+    IMPORT_C static CJavaProperty*  NewLC(TInt32 aId,
+                                          const TDesC& aValue);
+
+    /**
+     * Destructs property object.
+     *
+     * @since S60 v3.2
+     */
+    IMPORT_C ~CJavaProperty();
+
+    /**
+     * Returns the property Id.
+     *
+     * @since S60 v3.2
+     * @return the property ID
+     */
+    IMPORT_C TInt32 Id() const;
+
+    /**
+     * Returns the property value.
+     *
+     * @since S60 v3.2
+     * @return the property value
+     */
+    IMPORT_C const TDesC& Value() const;
+
+    /**
+     * Compares two objects of this type and returns true if
+     * they are identical.
+     *
+     * @since S60 v3.2
+     * @return true if the two objects are identical
+     */
+    IMPORT_C TBool operator==(const CJavaProperty& aProp);
+
+private:
+
+    /**
+     * ConstructL
+     *
+     * @since S60 v3.2
+     * @param aId java property ID
+     * @param aValue java property value
+     */
+    void ConstructL(TInt32 aId, const TDesC& aValue);
+
+private:    //members
+
+    // property ID
+    TInt32 iId;
+
+    // property value
+    HBufC*  iValue;
+};
+
+}//namespace Registry
+}//namespace Manager
+}//namespace Java
+
+#endif //__JAVAREGPROPERTY_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/common/inc/javareguidarrayconv.h	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,88 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javareguidarrayconv definition
+*
+*/
+
+
+#ifndef JAVAREGUIDARRAYCONVERTER_H
+#define JAVAREGUIDARRAYCONVERTER_H
+
+// INCLUDES
+#include <e32std.h>
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+
+// CLASS DECLARATION
+/**
+ * This class has only static methods, that help to store uids
+ * in descriptors, and to retrieve them. It is mainly used
+ * by the javaregistry internal API.
+ *
+ * @lib javaregistryclient.lib
+ * @since S60 v3.2
+ */
+class JavaRegUidArrayConverter
+{
+public:
+
+    /**
+     * JavaRegUidArrayConverter::GetTUids method converts the descriptor
+     * parameter to a RArray<TUid> storing entry uids.
+     *
+     * @since S60 v3.2
+     * @param aValue A descriptor storing certificate chains.
+     * @param aUids [out] Returning entry uids.
+     * @return One of the system-wide error codes.
+     */
+    static TInt GetTUids(const TDesC& aValue, RArray<TUid>& aUids);
+
+    /**
+     * JavaRegUidArrayConverter::GetTUidsL method converts the descriptor
+     * parameter to a RArray<TUid> storing entry uids.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aValue A descriptor storing certificate chains.
+     * @param aUids [out] Returning entry uids.
+     */
+    static void GetTUidsL(const TDesC& aValue, RArray<TUid>& aUids);
+
+    /**
+     * JavaRegUidArrayConverter::StoreTUidsL method stores the
+     * entry uids ( given in the first parameter ),
+     * into the descriptor paramameter, that is instantiated by
+     * this method.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aValue The uids to be stored.
+     * @param aDes [out] Descriptor parameter, storing, and the returning
+     *        the uids.
+     */
+    static void StoreTUidsL(const RArray<TUid>& aValue, HBufC*& aDes);
+};
+
+}//namespace Registry
+}//namespace Manager
+}//namespace Java
+
+#endif // JAVAREGUIDARRAYCONVERTER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/common/src/javapropertyarray.cpp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javapropertyarray implementation
+*              : (__JAVA_EXCLUDED VERSION)
+*
+*/
+
+
+#include "javapropertyarray.h"
+
+using namespace Java::Manager::Registry;
+
+// ---------------------------------------------------------------------------
+// CJavaPropertyArray::~CJavaPropertyArray
+// ---------------------------------------------------------------------------
+CJavaPropertyArray::~CJavaPropertyArray()
+{
+}
+
+// ---------------------------------------------------------------------------
+// CJavaPropertyArray::InternalizeL
+// ---------------------------------------------------------------------------
+void CJavaPropertyArray::InternalizeL(RReadStream&  /* aStream */)
+{
+    User::Leave(KErrNotSupported);
+}
+
+// ---------------------------------------------------------------------------
+// CJavaPropertyArray::ExternalizeL
+// ---------------------------------------------------------------------------
+void CJavaPropertyArray::ExternalizeL(RWriteStream&  /* aStream */) const
+{
+    User::Leave(KErrNotSupported);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/common/src/javaregproperty.cpp	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,76 @@
+/*
+* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  javaregproperty implementation
+*              : (__JAVA_EXCLUDED VERSION)
+*
+*/
+
+
+#include "javaregproperty.h"
+
+using namespace Java::Manager::Registry;
+
+// ============================ MEMBER FUNCTIONS ==============================
+
+// ---------------------------------------------------------------------------
+// CJavaProperty::NewL
+// ---------------------------------------------------------------------------
+
+EXPORT_C CJavaProperty* CJavaProperty::NewL(TInt32 /* aId */,
+        const TDesC&  /* aValue */)
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CJavaProperty::NewLC
+// ---------------------------------------------------------------------------
+EXPORT_C CJavaProperty* CJavaProperty::NewLC(TInt32 /* aId */,
+        const TDesC& /* aValue */)
+{
+    User::Leave(KErrNotSupported);
+    return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// CJavaProperty::~CJavaProperty
+// ---------------------------------------------------------------------------
+EXPORT_C CJavaProperty::~CJavaProperty()
+{
+}
+
+// ---------------------------------------------------------------------------
+// CJavaProperty::Id
+// ---------------------------------------------------------------------------
+EXPORT_C TInt32 CJavaProperty::Id() const
+{
+    return 0;
+}
+
+// ---------------------------------------------------------------------------
+// CJavaProperty::Value
+// ---------------------------------------------------------------------------
+EXPORT_C const TDesC& CJavaProperty::Value() const
+{
+    return KNullDesC;
+}
+
+// ---------------------------------------------------------------------------
+// operator==
+// ---------------------------------------------------------------------------
+EXPORT_C TBool CJavaProperty::operator==(const CJavaProperty& /* aProp */)
+{
+    return EFalse;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/rom/javastubs.iby	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+*
+*/
+
+
+#ifndef __JAVASTUBS_IBY__
+#define __JAVASTUBS_IBY__
+
+file=ABI_DIR\BUILD_DIR\javaenvinfo.dll              \SHARED_LIB_DIR\javaenvinfo.dll
+file=ABI_DIR\BUILD_DIR\javaregistryclient.dll       \SHARED_LIB_DIR\javaregistryclient.dll
+file=ABI_DIR\BUILD_DIR\javadrmutils.dll             \SHARED_LIB_DIR\javadrmutils.dll
+file=ABI_DIR\BUILD_DIR\javadebugapi.dll             \SHARED_LIB_DIR\javadebugapi.dll
+
+#endif //  __JAVASTUBS_IBY__
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/layers.sysdef.xml	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_4_0.dtd" [
+  <!ENTITY layer_real_source_path "sf/app/java" >
+]>
+
+<SystemDefinition name="java" schema="1.4.0">
+  <systemModel>
+    <layer name="app_layer">
+      <module name="java">
+        <unit unitID="java.java" mrp="" bldFile="&layer_real_source_path;/group"
+        filter="!sf_build" name="java" />
+      </module>
+      <module name="java">
+        <unit unitID="java.java.java_plat" mrp="" bldFile="&layer_real_source_path;/java_plat/group"
+        filter="sf_build" name="java_java_plat" />
+      </module>
+      <module name="java">
+        <unit unitID="java.java.java_stubs" mrp="" bldFile="&layer_real_source_path;/java_stubs/group"
+        filter="sf_build" name="java_java_stubs" />
+      </module>
+    </layer>
+  </systemModel>
+</SystemDefinition>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/package_definition.xml	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<SystemDefinition schema="3.0.0">
+  <package id="java" name="Java" levels="framework util generic rt">
+    <collection id="java_stubs" name="Java Stubs" level="util">
+      <component id="javadrmutils" name="Java DRM Utils" filter="s60">
+       <unit bldFile="java_stubs/javadrmutils/group"/>
+     </component>
+      <component id="javaenvinfo" name="Java Environment Info" filter="s60">
+       <unit bldFile="java_stubs/javaenvinfo/group"/>
+     </component>
+      <component id="javaregistry" filter="s60" name="Java Registry">
+        <unit bldFile="java_stubs/javaregistry/clientserver/client/group"/>
+      </component>
+      <component id="java_stubs_build" filter="s60" name="Java Stubs Build">
+		<!-- can this be split up into the other components? Otherwise, remove the #includes and rename Java ROM-->
+        <unit bldFile="java_stubs/group"/>
+      </component>
+    </collection>
+    <collection id="java_info" name="Java Info" level="rt">
+      <component id="java_plat" filter="s60" name="Java Platform Interfaces" class="api">
+        <unit bldFile="java_plat/group"/>
+      </component>
+    </collection>
+  </package>
+</SystemDefinition>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysdef_1_4_0.dtd	Thu Jan 07 16:18:57 2010 +0200
@@ -0,0 +1,86 @@
+ <!ELEMENT SystemDefinition (systemModel?, build?)>
+ <!ATTLIST SystemDefinition
+  name CDATA #REQUIRED
+  schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (logicalset* | module*)*>
+ <!ATTLIST layer
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED
+  span CDATA #IMPLIED>
+ <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalset name CDATA #REQUIRED>
+ <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalsubset name CDATA #REQUIRED>
+ <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
+ <!ATTLIST module
+  name CDATA #REQUIRED
+  level CDATA #IMPLIED>
+ <!ELEMENT component (unit* | package* | prebuilt*)*>
+ <!ATTLIST component name CDATA #REQUIRED>
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+  unitID ID #REQUIRED
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  bldFile CDATA #REQUIRED
+  priority CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT package EMPTY>
+ <!ATTLIST package
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT prebuilt EMPTY>
+ <!ATTLIST prebuilt
+  name CDATA #REQUIRED
+  version CDATA #REQUIRED
+  late (Y|N) #IMPLIED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
+ <!ELEMENT unitList (unitRef+)>
+ <!ATTLIST unitList
+  name ID #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT unitRef EMPTY>
+ <!ATTLIST unitRef unit IDREF #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+  name ID #REQUIRED
+  abldTarget CDATA #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+  name ID #REQUIRED
+  abldOption CDATA #REQUIRED
+  description CDATA #REQUIRED
+  enable (Y | N | y | n) #REQUIRED>
+ <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
+ <!ATTLIST configuration
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  filter CDATA #REQUIRED>
+ <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT unitListRef EMPTY>
+ <!ATTLIST unitListRef unitList IDREF #REQUIRED>
+ <!ELEMENT layerRef EMPTY>
+ <!ATTLIST layerRef layerName CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+  command CDATA #REQUIRED
+  targetList IDREFS #IMPLIED
+  unitParallel (Y | N | y | n) #REQUIRED
+  targetParallel (Y | N | y | n) #IMPLIED>
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+  name CDATA #REQUIRED
+  cwd CDATA #REQUIRED
+  command CDATA #REQUIRED>